Import Companies
POST /companies/import
Create or update companies from a batch of contacts. SPENDS CREDITS.
Contacts are grouped by email domain: a new domain creates a company, a known one is updated. Every NEW company then triggers the full intelligence pipeline - a site crawl, several model calls and a paid enrichment lookup - and every contact triggers a paid person lookup. One request with 50 domains and 500 contacts is 50 pipelines plus 550 provider calls, so this is the most expensive operation on the company surface.
The body is REQUIRED here. The app declares it optional and then reads
data.contacts unconditionally, so an empty request there is an
AttributeError and a 500; requiring it makes the same request a 422.
Individual rows can fail without failing the call - read the response rather than the status.
Authorizations
Parameters
Header Parameters
Request Body required
Create or update companies from a batch of contacts.
Grouping is by email domain: a new domain creates a company, a known one is updated in place. There is no separate “company” payload.
object
Contacts to import.
One contact in a company import.
Contacts are grouped by email domain, so email decides which company a
row lands on - company_name only names a company that does not exist yet.
object
Email address. Also the company-grouping key.
First name.
Last name.
Where the records came from, recorded on the import.
Responses
202
Successful Response
object
An open envelope for one record, one dashboard or one job receipt.
Open because most of these reads are COMPUTED shapes - an engagement summary, a next-best-step, an intelligence status - that grow with the product, and dropping a field from an advisory read makes it say “nothing to report” rather than “we did not tell you”.
object
object
Whether there are more pages
Items per page
Current page number (1-indexed)
Total number of items
422
Validation Error