Skip to main content

Errors

The API uses standard HTTP status codes and returns a consistent JSON error format.

Error response format

All error responses follow this structure:
FieldTypeDescription
successfalseAlways false for errors
error.codestringMachine-readable error code
error.messagestringHuman-readable description

Status codes

StatusCodeMeaning
400BAD_REQUESTInvalid request parameters or body
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENValid key but insufficient scopes
404NOT_FOUNDResource doesn’t exist or isn’t accessible
429RATE_LIMITEDToo many requests — see Rate Limiting
500INTERNAL_ERRORUnexpected server error
For security, requesting a resource that exists but belongs to another organization returns 404 (not 403). This prevents ID enumeration attacks.

Handling errors

Tips

  • Always check success in the response body, not just the HTTP status
  • Log the full error response in production for debugging
  • Implement retries for 429 and 5xx errors with exponential backoff
  • Don’t retry 400, 401, 403, or 404 errors — they require code or configuration changes