Errors
Format
All errors return a JSON body with a single detail field:
{ "detail": "Human-readable error message." }Every response includes an X-Request-ID header. Include it when contacting support.
HTTP status codes
| Code | Name | When |
|---|---|---|
400 | Bad Request | Missing field, invalid value, or malformed input |
401 | Unauthorized | Missing/invalid/revoked API key |
403 | Forbidden | Missing scope or IP not on allowlist |
404 | Not Found | Resource doesn't exist or belongs to another bot |
422 | Unprocessable Entity | Valid request but operation couldn't complete (e.g. URL has no content) |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Unexpected server error |
502 | Bad Gateway | AI provider error or timeout |