2xx HTTP status and a JSON body with a single error object. The code is a stable, machine-readable identifier; branch on it rather than on the human-readable message.
Error envelope
string
A stable error code from the table below. The set of possible codes is also enumerated in your OpenAPI spec.
string
A human-readable description. May change between releases - do not match on it programmatically.
string
The request id, matching the
X-Request-Id header. Quote it in support requests.object[]
Present only for validation failures (
invalid_params). Each entry has a path (prefixed path., query., or body. to show where the invalid value was) and a message.Error codes
A
not_found (no matching company) is never billed. Neither is any request that fails before it reaches the data source - including validation, rate-limit, and entitlement errors.Retrying
429 and the 5xx service-availability codes (auth_unavailable, entitlement_unavailable, upstream_timeout, and transient upstream_error) are safe to retry. When a Retry-After header is present, wait at least that many seconds; otherwise use exponential backoff. 4xx codes other than 429 indicate a problem with the request or plan and won’t succeed on retry.