Skip to main content
Errors returned before streaming starts use a JSON envelope:
param and request_id are omitted when they are not available. A request ID may also appear in the X-Request-Id response header.

HTTP status codes

The API intentionally redacts upstream response bodies, internal request IDs, and implementation details. Not every status applies to every endpoint. In particular, Credit balance can return 401, 403, 500, or 503; it does not reserve credits and therefore does not return search billing or idempotency errors. Contact Search returns errors before writing a success body. Upstream and response-protocol details are redacted, and a successful JSON result is not returned until billing settlement succeeds.

Errors inside an SSE stream

Once the stream starts, later errors are delivered as an SSE error object while the HTTP status remains 200. See Streaming events.

Retry guidance

Log the HTTP status, error type, request_id, X-Request-Id, and leads_search_id. Never log the API key or the full request if it contains sensitive search criteria.