Appearance
companies
14 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /companies | List Companies |
POST | /companies | Create Company |
DELETE | /companies/{company_id} | Delete Company |
GET | /companies/{company_id} | Get Company |
PATCH | /companies/{company_id} | Update Company |
POST | /companies/{company_id}/enrich | Enrich Company |
GET | /companies/{company_id}/members | List Members |
POST | /companies/{company_id}/members | Add Member |
DELETE | /companies/{company_id}/members/{member_username} | Remove Member |
PATCH | /companies/{company_id}/members/{member_username} | Change Member Role |
POST | /companies/{company_id}/validate-vat | Validate Company Vat |
POST | /companies/discover-from-contacts | Discover From Contacts |
GET | /companies/kvk/{kvk_number} | Kvk Profile |
GET | /companies/kvk/search | Kvk Search |
companies
Kvk Search
Kvk Profile
List Companies
Create Company
POST
/companies
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "name": "string", "website": "string", "industry": "string", "size": "string", "description": "string", "address": "string", "email": "string", "vat_number": "string", "kvk_number": "string", "iban": "string", "billing_address": { "street": "string", "postal_code": "string", "city": "string", "country": "string" }, "notes_md": "string", "tag_ids": [ "string" ]
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Company
Delete Company
Update Company
PATCH
/companies/{company_id}
Parameters
Header Parameters
authorization
Path Parameters
company_id*
Type
Requiredstring
Request Body
application/json
JSON "name": "string", "website": "string", "industry": "string", "size": "string", "description": "string", "address": "string", "email": "string", "vat_number": "string", "kvk_number": "string", "iban": "string", "billing_address": { "street": "string", "postal_code": "string", "city": "string", "country": "string" }, "notes_md": "string", "tag_ids": [ "string" ], "custom_fields": { "additionalProperties": "string" }
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Enrich Company
POST
/companies/{company_id}/enrich
Ask DeepSeek to describe this company. Writes nothing.
Returns the proposal alongside the current values so the SPA can show them
side by side; the user applies what they want via the normal PATCH. Scope
is descriptive only (industry / size / description) — legal and billing
identifiers come from KVK and VIES, never from a language model, because
they are snapshotted onto invoices.
Parameters
Header Parameters
authorization
Path Parameters
company_id*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Validate Company Vat
POST
/companies/{company_id}/validate-vat
Validate the company's VAT number against VIES and cache the result.
A definitive valid/invalid answer is stored as such. If VIES (or the
member state's system) is unreachable, we store an error status and
still return 200 — the UI shows a "couldn't verify, try again" state
rather than treating it as an invalid number.
Parameters
Header Parameters
authorization
Path Parameters
company_id*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Discover From Contacts
POST
/companies/discover-from-contacts
Scan every contact's parsed.organization and bootstrap.
For each non-empty org string:
- get-or-create a Company by that name
- get-or-create a
works_atedge from the contact to the company
Returns counts so the SPA can show a summary. Safe to re-run; both
sides dedupe.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Members
Add Member
Remove Member
Change Member Role
PATCH
/companies/{company_id}/members/{member_username}
Parameters
Header Parameters
authorization
Path Parameters
company_id*
Type
Requiredstring
member_username*
Type
Requiredstring
Request Body
application/json
JSON "role": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}