API reference
Errors
Every error is an RFC 9457 problem document with a stable code. Branch on the code; the wording may change.
The shape
Errors come as application/problem+json with type, title, status, code, detail and request_id. type links to the code's row below. Quote the request_id — also sent as X-Request-Id — if you ask us about a request. See RFC 9457.
Codes
Counted means the request used one of your month's requests.
| Code | Status | Meaning | Counted |
|---|---|---|---|
| bad_request | 400 | The request is malformed, e.g. not multipart/form-data. | Yes |
| unauthorized | 401 | No API key was sent. | No |
| invalid_api_key | 401 | The key is malformed or unknown. | No |
| key_revoked | 401 | The key was revoked. Create a new one in the dashboard. | No |
| account_suspended | 403 | The account is suspended. | No |
| not_found | 404 | No such endpoint. | No |
| method_not_allowed | 405 | Wrong method, e.g. GET on /v1/check. The Allow header says which. | No |
| length_required | 411 | The Content-Length header is missing. | No |
| file_too_large | 413 | The file is over 50 MB. | No |
| unsupported_file_type | 415 | The file is not .xlsx, .docx or .pptx. | Yes |
| missing_file | 422 | No multipart field named file. | Yes |
| empty_file | 422 | The file has no bytes. | Yes |
| archive_too_large | 422 | The file expands to more than 250 MB unpacked. | Yes |
| too_many_entries | 422 | The archive holds too many parts to be a real document. | Yes |
| encrypted_package | 422 | Password-protected. /v1/check answers unsupported instead. | Yes |
| legacy_binary_format | 422 | A pre-2007 file with a new extension. /v1/check answers unsupported. | Yes |
| empty_package | 422 | The archive holds no parts. /v1/check answers unsupported. | Yes |
| container_unreadable | 422 | There is no Office package inside to recover. | Yes |
| openxml_validation_failed | 422 | The repaired file still failed validation, so none was returned. | Yes |
| rate_limited | 429 | Too many requests this minute. Wait for Retry-After. | No |
| quota_exceeded | 429 | This month's quota is used up. Retry-After is the reset. | No |
| daily_limit | 429 | A daily limit was reached. Try again tomorrow. | No |
| internal_error | 500 | Something failed on our side. Retry; quote the request_id if it persists. | No |
| upstream_unavailable | 502 | The repair service is unavailable. Retry shortly. | No |
| validator_unavailable | 503 | The validation engine is down, so repaired files are withheld. Retry shortly. | No |
| at_capacity | 503 | The service is busy. Wait for Retry-After. | No |
| upstream_timeout | 504 | The file took too long to process. Retry once. | No |