Platform
Errors & rate limits
Consistent, typed errors across every endpoint and SDK.
Error shape
json
{
"success": false,
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 4s.",
"status": 429,
"retry_after": 4
}
}Status codes
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | Malformed request or invalid parameters. |
| 401 | unauthorized | Missing or invalid API key. |
| 402 | budget_exceeded | Monthly budget cap reached for this key. |
| 404 | not_found | The target URL or resource could not be reached. |
| 422 | unprocessable | The page could not be parsed into the requested format. |
| 429 | rate_limited | Too many requests — back off and retry. |
| 500 | server_error | Unexpected error on our side. Safe to retry. |
| 504 | timeout | The target site took too long to respond. |
Rate limits
Limits scale with your plan — from 30 req/min on Free to 600 req/min on Growth. Each response includes X-RateLimit-Remaining and X-RateLimit-Reset headers.
✓
The official SDKs handle
429 and 5xx for you with exponential backoff. Only failures after maxRetriessurface as exceptions — and none of them consume credits.