Errors
Every error code the API returns.
Errors are JSON with a stable code and a message you can show to people. Use the code in your own logic, because messages can change.
{ "error": { "code": "unsupported_file", "message": "Send a PDF, PNG, JPEG, WebP, TIFF or HEIC." } }
A job that was accepted and then failed is reported on the job, not as an error like this. See When a job fails.
| Status | Code | When |
|---|---|---|
400 | bad_mode | mode isn't table or text. |
400 | missing_file | The request had no file, or no form field named file. |
401 | unauthorized | The key is invalid or has been revoked. On GET /v1/usage, it's also missing. |
402 | payment_required | Today's free conversions are used. See Pay per use. |
402 | payment_error | A payment couldn't be processed. |
402 | credits_used | The credit key has no pages left. Send the request without a key to buy more. |
404 | not_found | There's no such job, it has expired, or the path doesn't exist. |
409 | not_ready | A result was requested before the job finished, or for a failed job. |
410 | expired | The result has been deleted. |
413 | file_too_large | The file is over 25 MB. |
415 | unsupported_file | The file isn't a PDF, PNG, JPEG, WebP, TIFF or HEIC. |
429 | quota_exceeded | The account has used its pages for the period. |
429 | free_limit_reached | Today's free conversions are used and pay per use isn't on. |
500 | internal_error | Something broke on our side. Try again in a minute. |
Errors from the MCP server are listed there.