Enrich companies
/v1/enrichment-requests/companiesNo “Try it” here: every call is real and consumes enrichment credits. Run the code samples from your own backend.
Submits 1 to 100 companies, identified by domain or website URL, for enrichment. Values that reduce to the same domain are merged into one item. A value that is not a valid domain does not fail the request: its item comes back with status failed.
Knock answers 202 Accepted with an enrichRequestId and enriches the items in the background. Poll GET /v1/enrichment-requests/{enrichRequestId} with that ID until the request is finished. There are no webhooks.
Send Content-Type: application/json. Unknown fields are ignored. If any item is invalid, the whole request is rejected with 400 and nothing is submitted.
Enrichment uses credits from your Knock account. There is no idempotency key: sending the same body again creates a new enrichment request.
ApiKeyAuthx-api-key<token>Your Knock API key. Ask your Knock account team for one: a key with the Enrichment API role for enrichment, or the Viewer role for chats and meetings.
application/json- body
companies*array<>The companies to enrich, 1 to 100. Values that reduce to the same domain are merged into one item.
1 <= items <= 100Knock accepted the request and is enriching its items.
application/json- response
An enrichment request Knock accepted.
enrichRequestId*stringID of the new enrichment request. Store it: you need it to read the results, and there is no endpoint that lists your requests.
uuidstatus*stringStatus right after submission. Usually pending, but items Knock has already enriched, or recently failed to match, are final at once.
"pending""in_progress""completed""partially_completed""failed"curl -X POST 'https://app.knock-ai.com/v1/enrichment-requests/companies' \ -H 'x-api-key: <YOUR_API_KEY>' \ -H 'Content-Type: application/json' \ -d '{ "companies": [ { "domain": "acme.com" } ]}'{ "enrichRequestId": "7d0f4f1e-2c3b-4a8e-9a51-0e6f3b8c2d14", "status": "pending"}