Go to App

Errors

The API uses standard HTTP status codes and returns structured error responses.

Error Response Format

All errors return a JSON object with these fields:

json
{
"status_code": 400,
"error_code": "INVALID_REQUEST",
"detail": "The URL provided is not supported."
}

HTTP Status Codes

CodeMeaning
200Success
201Resource created
204Deleted (no content)
400Bad request - invalid parameters
401Unauthorized - missing or invalid token
403Forbidden - insufficient permissions or expired plan
404Not found
422Validation error
429Rate limit exceeded
500Internal server error

Error Codes

Error CodeStatusDescription
INVALID_REQUEST400The request body or parameters are invalid
INVALID_URL400The provided URL is not supported or malformed
AUTH_HEADER_TOKEN401Missing or invalid X-AUTH-TOKEN header
TOKEN_EXPIRED403The API token has expired
PLAN_EXPIRED403Your subscription has expired
PLATFORM_NOT_ALLOWED403Platform not available on your tier
DAILY_LIMIT_EXCEEDED429Daily request limit exceeded
RATE_LIMIT_EXCEEDED429Per-minute rate limit exceeded
CONCURRENCY_RATE_LIMIT429Too many concurrent exports
QUEUE_LIMIT_EXCEEDED429Too many queued exports
RATE_WINDOW_EXCEEDED429Too many job creations in the sliding window

Rate Limit Error Response

When rate limited, the response includes a seconds_to_wait field:

json
{
"status_code": 429,
"error_code": "RATE_LIMIT_EXCEEDED",
"seconds_to_wait": 60,
"detail": "Rate limit exceeded. Please wait 60 seconds."
}