Errors and rate limits
Error shape
All API errors follow:
json
{
"error": {
"code": "validation_error",
"message": "Validation failed",
"details": {}
}
}
Common status codes
200: accepted (typically idempotent replay)201: created400: parameter missing / malformed request401: missing or invalid bearer token409: conflict (for example identifier conflict)422: validation error429: rate limited
Rate limits
Requests are throttled per IP and per token. If you receive 429, retry with exponential backoff.
Recommended strategy:
- Retry after a short delay
- Back off progressively
- Keep using
external_idfor idempotent retries