Error Codes
Response Errors (HTTP 200)
Some errors are returned with a 200 OK HTTP status but with "success": false in the body. The code field reflects the real HTTP status code. Always check success — do not rely on message for conditional logic.
Common message values for these errors:
| Message | Cause |
|---|---|
apikey is not correct | The API key in the x-api-key header is invalid or does not exist |
number of calls per day has been exceeded | You have exhausted your 500 daily ?refresh=true requests |
this route does not exist | The endpoint path is incorrect |
wrong param given | A query parameter has an invalid value |
Example:
{
"success": false,
"message": "apikey is not correct",
"code": 200
}
HTTP Status Codes
| Code | Meaning | Common Cause |
|---|---|---|
200 | OK (may still be a logical error) | Check the success field |
304 | Not Modified | ETag match — your cached copy is current |
400 | Bad Request | Invalid query parameters |
401 | Unauthorized | Missing or invalid x-api-key header |
403 | Forbidden | Account blocked or insufficient permissions |
404 | Not Found | Endpoint path wrong, or requested resource does not exist |
405 | Method Not Allowed | Wrong HTTP method for this route |
429 | Too Many Requests | Daily quota exceeded, or global scrape rate limit hit |
500 | Internal Server Error | An unexpected error on the server |
503 | Service Unavailable | API in maintenance mode, or database temporarily unavailable |
For guidance on handling these errors in your code, see Troubleshooting.
For how the quota works and what triggers a 429, see Rate Limits & Quota.