Error Response Format
| Field | Type | Description |
|---|---|---|
success | boolean | Always false for error responses |
message | string | Human-readable description of the error |
moreInfo | string | Additional context when available |
HTTP Status Codes
| Status | Name | When it occurs |
|---|---|---|
200 | OK | Request succeeded |
400 | Bad Request | Request body or parameters failed validation |
401 | Unauthorized | Key is missing, malformed, expired, or revoked |
403 | Forbidden | Key is valid but lacks the required scope |
404 | Not Found | The resource does not exist |
409 | Conflict | Request conflicts with existing state |
422 | Unprocessable Entity | Request is valid but cannot be processed |
429 | Too Many Requests | Rate limit exceeded — see Retry-After header |
500 | Internal Server Error | Unexpected server error |
401 vs 403
A401 means the key could not be authenticated at all — it is missing, expired, or revoked. A 403 means the key authenticated successfully but its scopes do not permit the requested operation.
To resolve a 403, generate a new key with the required scope from the Developer Portal under Settings → API Keys.
Validation Errors
When a400 is returned, the message field identifies the offending field: