Mint Companies from your own data, or attach rows to Companies you hold
Imports up to 1000 rows. Each row needs a name, an operating country, at least one activity (ISIC Rev.5, NACE Rev.2.1, or NACE Rev.2 — converted to ISIC at the deepest level the code determines), and at least one identifier or domain. A row whose identifier a held Company already carries joins that Company; `into` joins a named Company; otherwise the row mints a new Company. A shared domain or an identical name and country is reported as `similar` and never decides. The whole batch is refused when any row is invalid, when an identifier belongs to two Companies, or when the batch would exceed the plan's Company allowance; `dryRun` returns the same plan and writes nothing. Free. A Company's Legal entity data is paid for once, inside the first priced request that touches it.
Imports up to 1000 rows. Each row needs a name, an operating country, at least one activity (ISIC Rev.5, NACE Rev.2.1, or NACE Rev.2 — converted to ISIC at the deepest level the code determines), and at least one identifier or domain. A row whose identifier a held Company already carries joins that Company; into joins a named Company; otherwise the row mints a new Company. A shared domain or an identical name and country is reported as similar and never decides. The whole batch is refused when any row is invalid, when an identifier belongs to two Companies, or when the batch would exceed the plan's Company allowance; dryRun returns the same plan and writes nothing.
Free. A Company's Legal entity data is paid for once, inside the first priced request that touches it.
Authorization
bearerAuth In: header
Header Parameters
Required for writes. Reusing this key with the same input replays the original response.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/companies" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "rows": [ { "name": "Coop Eesti Keskühistu", "country": "EE", "activities": [ { "scheme": "nace21", "code": "47.11" } ], "identifiers": [ { "kind": "organization_system", "system": "hubspot", "value": "8842001" } ], "domains": [ { "domain": "https://www.coop.ee" } ] } ], "dryRun": false }'{ "dryRun": false, "created": 1, "matched": 0, "attached": 0, "items": [ { "row": 0, "action": "create", "companyId": "7f9c2a14-3b6e-4d51-9a2f-1c8e5b0d47a3", "matchedBy": null, "similar": [] } ]}Fold one Company into another POST
Folds the absorbed Company into the survivor because both name the same Legal entity, and redirects the absorbed id to the survivor forever. Permitted only when the absorbed Company names no Legal entity or names the survivor's: two Companies bound to different entities are two businesses, and a verified Company absorbed into an unverified one is refused with the direction to merge instead. The absorbed Company's identifiers always move — one qualified value belongs to exactly one Company, so they cannot collide — and its domains and activities move unless the survivor already holds the same value. The survivor keeps its name, its country, and its primaries. `dryRun` reports the same plan and writes nothing. Unlock is untouched: a grant belongs to the Legal entity, not to a Company. There is no split and no undo. Free. A merge never refunds.
Promote a declared current Fact into Company Core POST
Adds each target Company's current Fact for one field declared with `promotes` to its Core, without replacing any existing value or primary. Domain values and qualified Identifier values are normalized before insertion. A registration Identifier must use a scheme the country's Commons publishes; it is verified inline and binds an unbound Company when carried. A Legal entity another Company already names is reported as a conflict, and a different entity than the target already names is reported as a mismatch; promotion never folds or rebinds Companies. Each changed Company's version and updated time move, while the immutable source Fact retains its producer and API-key/user attribution. `dryRun` returns the same per-Company outcomes and writes nothing. Free.