API Platform
Error Codes
Error codes returned by the API and what they mean.
All errors return a JSON object with a human-readable message and an uppercase error code.
{
"error": "Rate limit exceeded",
"code": "RATE_LIMIT_EXCEEDED"
}Error codes
| Code | HTTP | Meaning |
|---|---|---|
INVALID_REQUEST | 400 | Request body is malformed or missing required fields |
KEYWORD_REQUIRED | 400 | The keyword field is empty or missing |
URL_REQUIRED | 400 | The url field is empty or missing |
INVALID_URL | 400 | The url does not start with http:// or https:// |
INVALID_FORMAT | 400 | The format field is not "json" or "raw" |
INVALID_MATCH_TYPE | 400 | Invalid match_type. Allowed: broad, phrase_match, exact_match, related |
INVALID_CREDENTIALS | 401 | Invalid username or password |
INVALID_API_KEY | 401 | Authentication failed |
CREDENTIALS_EXPIRED | 401 | API user credentials have expired |
INSUFFICIENT_CREDITS | 402 | Your account does not have enough credits |
IP_NOT_WHITELISTED | 403 | Your IP address is not whitelisted |
RATE_LIMIT_EXCEEDED | 429 | Rate limit exceeded |
INTERNAL_ERROR | 500 | An internal server error occurred |
SERP_FAILED | 502 | Failed to fetch search results |
WORKER_FAILED | 502 | Failed to fetch data from the worker |
SCRAPE_FAILED | 502 | Failed to scrape the target page |
AUDIT_FAILED | 502 | The audit could not be completed |
TARGET_UNREACHABLE | 502 | The target site could not be reached |
TARGET_BLOCKED | 502 | The target site blocked the request |
TIMEOUT | 504 | The request timed out — see the note below |
TARGET_REQUIRED | 400 | The target field is empty or missing |
INVALID_TARGET | 400 | The target is not a valid domain or URL |
INVALID_TYPE | 400 | Unknown report type |
TYPE_UNAVAILABLE | 400 | That report type is not available yet |
INVALID_FILTER | 400 | Unknown filter field, wrong operator, or too many conditions |
INVALID_ORDER_BY | 400 | Unknown sort field, or more than 3 sort rules |
INVALID_DATE_RANGE | 400 | date_from is after date_to, or the dates are unparseable |
INVALID_CURSOR | 400 | The pagination cursor is unknown or expired |
SERVICE_NOT_ENABLED | 403 | This service is not enabled for your account |
REQUEST_IN_PROGRESS | 409 | A request with the same idempotency_key is already running |
REQUEST_TOO_LARGE | 413 | The request body exceeds the size limit |
REQUEST_FAILED | 502 | The request could not be completed |
EMPTY_RESULTS | 200 | No results found for this query |
Timeout duration
The timeout differs per endpoint: 10 minutes for SERP, Keyword Data and Google Images, 2 minutes for Technical SEO.
EMPTY_RESULTS
EMPTY_RESULTS is not an error — the request succeeded (200), there were simply no
results for the query.
Last updated: 2026-08-21
