code where one is present.
Error body shapes
The API returns three body shapes. Check forcode first, then read message or msg.
HTTP status codes
Successful but asynchronous:
202 means research was accepted. Save requestIds and poll or wait for a webhook.
Error codes
Research poll statuses
Poll statuses arrive in a200 response from GET /contacts/research/poll or GET /companies/research/poll. They are not HTTP errors.
Endpoint-specific errors
Retry rules for agents and SDKs
1
Retry only 429, 500, and 409
Never retry
400, 401, 403, 404, or 422 without changing the request. The same request will fail the same way.2
Respect the reset time
On
429, read X-RateLimit-Reset (epoch seconds) and wait until then.3
Back off on 500
Wait 1, 2, 4, then 8 seconds between attempts, and stop after 5 tries.
4
Don't pay twice
Before re-running research, check the poll status.
duplicate means the data is already in your org for free.