Skip to main content
A successful call returns the plain resource or list. A failed call returns an envelope with a stable, machine readable code. Your code should branch on the code instead of the message text, because messages can change while codes don’t.

Field errors

When fields are invalid, the call returns 400, and errors names every invalid field in the order of the request’s parameters. The top level code is the first field’s code.
field is the query parameter or the body property, in camelCase and dotted when nested. Every HTTP response, including an error, has an X-Request-Id header. Include it and the code when you contact support.
The OAuth token and revoke endpoints return errors in the OAuth format instead. See OAuth for apps.

Decide what to retry

Every code

Each endpoint page in the API reference lists the codes that endpoint can return.

Credentials, scopes and plan

Only an app receives AUTHZ-001-002 and AUTHZ-007-001, because its access token works with the permissions of the person who approved it. AUTHZ-007-001 answers a request that reaches every survey (erasing responses, a subscription’s delivery log) when that person’s role reaches selected surveys only. An API key or an AI assistant’s token receives APK-004-005 when the plan doesn’t include API keys, and an app’s token receives APK-004-008 when the plan doesn’t include apps. GEN-429-001 comes from the limit per IP address that applies before any credential is checked. See Rate limits.

Request format

Responses, notes and files

Surveys

Erasure jobs

PUB-004-002 is never returned as an HTTP status. It appears as the job’s error when the job failed after five tries.

Metrics

Webhook subscriptions

Temporary problems