Skip to main content
Every error response uses the same JSON envelope, so you can handle failures with one code path.

Error response format

  • status — always "error" for a failed request.
  • status_code — mirrors the HTTP status code.
  • detail — a message string, or, for validation failures, an object keyed by the invalid field.
A validation error looks like this:

Status codes

No data is never billed

A “not found” result — an enrichment, email, or phone lookup that returns no match — is not charged. Any credits reserved for the call are released automatically, so treat a not-found response as a normal, free outcome rather than a billing event. See Pay-as-you-go.

Handling retries

429 and 5xx responses are transient. Retry them with exponential backoff (for example 1s, 2s, 4s, 8s) instead of retrying immediately in a tight loop.
Real-time operations can legitimately take up to a minute. Set client timeouts to match the recommended timeouts before treating a slow response as a failure.
A 4xx response (other than 429) means the request itself needs to change — fix the input and resend; retrying the same request unchanged will return the same error.