Errors
Errors are always JSON with a stable machine-readable code:
{
"error": {
"code": "render_timeout",
"message": "Page did not finish rendering within the time limit…",
"docs": "https://rasterkit.com/docs/errors#render_timeout"
}
} Catalog
| Code | HTTP | Retry? | Meaning |
|---|---|---|---|
invalid_request | 400 | No — fix the request | Validation failed; details[] lists each problem. |
unauthorized | 401 | No — fix the key | Missing or unknown API key (X-Api-Key header or Bearer token). |
signature_invalid | 401 | No | Signed URL signature mismatch. |
signature_expired | 401 | No — re-sign | Signed URL past its expires timestamp. |
quota_exceeded | 402 | After upgrade | Free plan hard stop at 100 renders/month. |
key_suspended | 403 | No — contact support | Key revoked or account suspended. |
template_not_found | 404 | No | No such template on your account. |
job_not_found | 404 | No | Unknown job id (or not yours). |
payload_too_large | 413 | No — shrink the body | Body over 10 MB. |
template_invalid | 422 | No — fix the template | Handlebars compilation failed. |
navigation_failed | 422 | Maybe | Target URL unreachable (DNS, connection, TLS). |
rate_limited | 429 | Yes — with backoff | Plan requests/second exceeded. See Retry-After. |
spend_cap_reached | 429 | After raising cap | Soft overage protection on paid plans (4× included by default). |
url_blocked | 451 | No | URL resolves to a private/reserved address (SSRF protection). |
internal_error | 500 | Yes — once | Our fault. Logged with your request id. |
render_timeout | 504 | Yes — tune waits | Page did not settle within timeout_ms. |
Retry guidance
rate_limited— wait forRetry-After(1 s) and retry; better, add client-side throttling to your plan's req/s.render_timeout— retry once; if persistent, lowerwait_untiltodomcontentloadedor raisetimeout_ms.internal_error— retry once with backoff, then contact support with the request time and endpoint.- Validation errors (
invalid_request) include adetailsarray listing each failing field — fix and resend, don't retry blindly.