Reference
Errors & limits
Errors use conventional HTTP status codes and a consistent JSON body.
Error body
Every error response contains a machine-readable code and a human-readable message. Validation errors include details.
{ "error": { "code": "validation_error", "message": "Enter a valid domain such as example.com", "details": [ ... ] } }Status codes
400 bad request · 401 unauthorized (missing, invalid, revoked or expired key) · 402 payment_required (plan limit or credits) · 403 forbidden (read-only key or insufficient role) · 404 not_found · 405 method_not_allowed · 422 validation_error · 429 rate_limited (honor the Retry-After header) · 500 internal_error.
Rate limits
Each key may make 120 requests per minute (60 for MCP) with a daily cap determined by your plan: Free 500, Auto SEO 5,000, Full SEO 50,000. Every response carries an X-Request-Id header — include it when contacting support.