/v2/company accepted a single catch-all datapoint called companyProfile and onboarding ran on its own /v2/onboarding endpoint. That model hid what you were actually buying (one companyProfile meant different things in different countries) and forced onboarding and verification down two separate code paths.
The Data Product Model replaces companyProfile with explicit, named datapoints and folds /v2/onboarding into /v2/company as a mode. You now ask for exactly the sections you need, the billing and response shape match what you requested, and both retrieval modes share the same endpoint.
Both legacy shapes still work. This guide shows you how to move over.
The datapoints
A request toPOST /v2/company takes a dataPoints array. Each entry is one of the values below. Availability varies by country (see each country guide).
company, legalRepresentatives, otherKeyPersons, and establishments are the datapoints introduced by the Data Product Model. shareholders, ultimateBeneficialOwners, availableDocuments, and graph pre-date it and have always been callable by name.What companyProfile means
companyProfile is a legacy alias. It stands for company + legalRepresentatives + otherKeyPersons + establishments, on a best-effort basis.
Best-effort means: each of the four expanded datapoints is included only if the country has a block covering it in the mode you requested. If a datapoint has no compatible block, it is silently dropped from the expansion. You are never billed for datapoints the country cannot deliver.
Concretely:
The same rule applies in onboarding mode: the expansion is filtered against the country’s fast block. For Italy this means
companyProfile in onboarding mode includes otherKeyPersons (the fast block covers it) but establishments is still dropped.
Billing is one block per resolved bundle. Expansion never adds a separate catalog item.
Replace companyProfile
Swap companyProfile for the datapoints you actually need.
companyalone if you only need the registration record.company+legalRepresentativesfor the classic KYB pair.- Add
otherKeyPersonswhen your compliance checks cover auditors or board members without signing authority. - Add
establishmentswhen you need branch offices. - Add
shareholders/ultimateBeneficialOwnersfor ownership checks.
Do not mix legacy and new names
Within one request, you must pick one vocabulary:- Legal:
["companyProfile"],["companyProfile", "shareholders"],["companyProfile", "ultimateBeneficialOwners", "availableDocuments"] - Legal:
["company", "legalRepresentatives"],["company", "shareholders", "ultimateBeneficialOwners"] - Rejected with HTTP 400:
["companyProfile", "company"],["companyProfile", "legalRepresentatives"],["companyProfile", "otherKeyPersons"],["companyProfile", "establishments"]
companyProfile cannot appear alongside any of the four new names (company, legalRepresentatives, otherKeyPersons, establishments). Shared datapoints (shareholders, ultimateBeneficialOwners, availableDocuments, graph) can be combined with either vocabulary.
The response echoes your vocabulary
dataStatus.dataPoints uses the exact keys you sent. Send companyProfile, get companyProfile back. Send company + legalRepresentatives, get them back separately. The internal best-effort expansion is not visible in dataStatus.
companyProfile request returns company, legalRepresentatives, otherKeyPersons, and establishments fields in the body. Request them explicitly (new vocabulary) to make that shape obvious in your code.
Replace /v2/onboarding
/v2/onboarding is deprecated. Use /v2/company with mode: "onboarding" instead.
- You pick the datapoints. The old endpoint only ever returned the equivalent of
company+legalRepresentatives. On/v2/companyyou can addshareholders,ultimateBeneficialOwners, or anything else and still run in onboarding mode. - One codebase, one response shape. Verification and onboarding share the endpoint, the DTO, and the
dataStatusformat. Read Verification vs Onboarding Mode for the source-selection and deadline behavior.
Onboarding mode enforces a hard 10-second deadline per datapoint and only uses fast sources. Datapoints that have no fast source fail with
fast_source_unavailable. See Verification vs Onboarding Mode.Compatibility summary
New integrations should start with the new vocabulary and
/v2/company. Existing integrations can stay on companyProfile and /v2/onboarding as long as needed, and migrate opportunistically.
Next steps
Company Data
Full
/v2/company request and response reference.Verification vs Onboarding Mode
Source selection, deadlines, and
authoritative flag.KYB Onboarding
End-to-end flow combining search, onboarding mode, and verification.
Pricing & Caching
How datapoints map to billable blocks and the 24-hour dedup window.