HTTP status codes
Error response format
All errors return a JSON body with adetail field:
Authentication error (401)
Credit limit (429)
Timeout (408)
The AI provider did not respond within thetimeout window. Increase timeout (up to 600 seconds) or retry with bypass_cache=true.
Job not found (404)
Common error types
Authentication errors (401)
Credit / rate limit (429)
Server errors (500 / 503 / 504)
These are transient errors - it is always safe to retry.Retry logic
Implement exponential backoff for408, 429, 500, 503, and 504 errors:
Async jobs are automatically retried server-side up to 3 times before
being marked
failed. Credits are restored if all attempts fail.Async job errors
When an async job reachesfailed status, the error message is in the error field:
failed job can be resubmitted by making a new request. Credits from the failed job are restored automatically.
Troubleshooting
401 Unauthorized
- Verify the
X-API-Keyheader is present and correctly spelled - Check the key is valid and hasn’t been revoked in the dashboard
- Confirm your account has remaining credits
429 Too Many Requests
- Check your credit balance in the dashboard
- If the queue is full, implement retry with exponential backoff
- Consider using async job mode to avoid holding connections
500 / 503 / 504
These are almost always transient. Retry immediately or after a brief delay. If the error persists for more than a few minutes, contact [email protected] with yourjob_id.
Amazon Rufus 500
If Rufus returns no products for a very vague query, the endpoint returns500 with "Scraper returned an empty result." - retry with a more specific shopping query. Credits are restored automatically.