Browse documentation
Docs / Start
Responses & errors
Every endpoint returns the same JSON envelope, so integrations can handle success and failure consistently.
Success
{
"ok": true,
"data": { ... }
}Failure
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "..."
}
}Error reference
| Code | HTTP | Meaning |
|---|---|---|
| MISSING_KEY | 401 | The Authorization header is missing. |
| INVALID_KEY | 401 | The supplied key cannot be used. |
| INSUFFICIENT_CREDITS | 429 | The key has no credits remaining in its current period. |
| INVALID_INPUT | 400 | A required parameter is absent or a supplied value is invalid. |
| NOT_FOUND | 404 | No endpoint matches the requested versioned path. |
| METHOD_NOT_ALLOWED | 405 | The endpoint does not support that HTTP method. |
| PAYLOAD_TOO_LARGE | 413 | The JSON request body exceeds the accepted size. |
| INTERNAL_ERROR | 500 | An unexpected processing failure occurred. |
Rate-limit headers
Authenticated responses include X-RateLimit-Limit and X-RateLimit-Remaining. Monitor these values and stop sending requests when credits are exhausted. Retry transient 5xx failures with capped exponential backoff; do not automatically retry validation or authentication errors.
