Skip to main content
Errors answer with an HTTP status and a JSON body with a stable code:
  • error.code is stable. Branch on it, not on the message.
  • error.message is for people and may change.
  • error.details, when present, carries extra context such as the fields that failed validation.

Codes

A 404 for a resource that exists in another workspace is deliberate: the API never confirms that an id exists outside your workspace.

Retrying safely

Retry only 429, 5xx and network failures. Use exponential backoff with jitter, and honour Retry-After on a 429.
Creates are not idempotent. Before you retry a POST that timed out, check whether the first attempt succeeded, for example by listing recent items.
Last modified on November 5, 2026