Skip to main content

The error envelope

Every non-2xx response has one error object:
Branch on code. It is stable and machine-readable. Never match on message: human-facing copy may change without notice.
Some errors add typed context such as the current wallet, replacement quote or effective limit. Raw provider responses, secrets and callback URLs are never returned in error context.

Codes

Handling confirmation errors

Python

Concurrency and bounded reads

Reads are bounded and cursor-paginated. Resumable drafts and executable jobs have separate controls returned by GET /v1/account; a free estimate does not bypass the active-draft cap. Over executable concurrency, confirmation returns:
Re-polling a finished job and replaying the same Idempotency-Key are safe, so a lost response never requires duplicate confirmation.

Terminal job states

not_found, no_employees, no_people_found, too_large, failed, and cancelled are terminal statuses, not necessarily HTTP errors. Their billing object shows the exact captured and released components; do not infer money from status text.