Error Codes
All errors use RFC 7807 (application/problem+json):
{
"type": "https://erased.ink/errors/rate-limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Free tier limit reached: 100/hour for visible. Retry after the indicated interval.",
"retry_after": 3600
}| Status | type | When it fires | Suggested client action |
|---|---|---|---|
| 400 | .../validation | Request body fails schema validation. | Fix the JSON body and retry. |
| 400 | .../unsupported-format | content_type is not in the supported list. | Convert or re-encode to a supported MIME type. |
| 400 | .../too-large | size exceeds 10 MB. | Downscale or recompress before upload. |
| 401 | .../unauthorized | API key missing or invalid on a Pro endpoint. | Check the Authorization: Bearer header against your account. |
| 402 | .../upgrade-required | Feature requires a paid plan. | Upgrade at /en/pricing, or downgrade the requested mode. |
| 402 | .../insufficient-credits | Credit Pack balance is not enough for the requested mode (1 credit per light, 10 per heavy). | Top up a Credit Pack or wait for the monthly quota reset. |
| 404 | .../not-found | Job id is unknown or expired (records live ~30 minutes). | Re-submit the job. |
| 405 | .../method-not-allowed | Wrong HTTP method on a known route. | Use the method documented on the API reference page. |
| 429 | .../rate-limited | Hourly or monthly quota hit. | Honour Retry-After (seconds), or sign in / upgrade for higher caps. |
| 500 | .../server-error | Unhandled internal error. | Retry with backoff; if persistent, file an issue. |
| 502 | .../upstream | An upstream service returned an error. | Retry; the quota will already have been refunded. |
| 504 | .../upstream-timeout | An upstream service exceeded its deadline. | Retry; consider visible/metadata instead of all if the source is non-GPU. |