Guide

Errors

Failures always use the same envelope as success, with success: false and an error object. Branch on error.code rather than on the message, and treat 5xx codes as retryable with exponential backoff.

Uploads are processed asynchronously. The upload request itself fails for problems with the request: authentication, invalid input, size, an unsupported file type (415), paid API processing being off with the free allowance used up (402), an idempotency conflict or full capacity. Problems found while a file is processed, such as too many pages or an unreadable PDF, are reported as the job's error with the same codes; the status column then indicates the kind of failure rather than an HTTP response you receive.

Error envelope
{
  "success": false,
  "error": {
    "code": "invalid_api_key",
    "message": "The provided API key is not valid."
  }
}

Error codes

CodeStatusMeaning
billing_verification_required402The first 10 documents are free without verification. The workspace owner verifies once with Smart-ID, ID-card or Mobile-ID in Billing; paused documents then resume automatically.
queue_full429Upload or processing queue capacity is full. Retry after 30 seconds with the same Idempotency-Key.
request_too_large413Upload requests must not exceed 100 MB in total. Split the batch.
idempotency_conflict409This Idempotency-Key was already used for different files or options.
billing_details_required402Add invoice details in Billing to process more than 10 documents this month. Paused documents resume automatically once they are saved.
quota_exceeded402This document was stopped by an earlier billing limit. Check Billing, then retry.
api_billing_required402The free API allowance has been used. The workspace owner can enable paid API processing in Billing.
api_custom_plan_required402Contact us to agree a custom price before processing more than 250,000 paid API documents this month.
missing_api_key401Provide an API key via X-API-Key or Authorization: Bearer.
invalid_api_key401The provided API key is not valid.
invalid_request400The request is invalid. Check the documented parameters and upload format.
unsupported_media_type415Upload PDF, PNG, JPEG, WEBP, TIFF, or BMP.
file_too_large413Files must not exceed 25 MB each.
input_too_large413The document has too many or too large pages to process in one request. Split it into smaller files.
job_cancelled409The job was cancelled before it produced a document.
job_not_cancellable409The job already produced a document. Delete the document instead.
job_not_retryable409Only failed jobs whose original file is still retained can be retried. Upload the file again otherwise.
too_many_pages422Documents must not exceed 10 pages. Split the document before uploading.
pdf_unreadable422The PDF could not be read. Upload a valid PDF or page image.
pdf_password_required422Remove the PDF password before uploading.
not_found404The requested resource was not found.
file_not_available404The original file is not stored for this document. Documents processed before original files were kept have only their result.
rate_limited429Too many requests. Wait before retrying.
service_unavailable503Document processing is temporarily unavailable. Please retry later.
processing_failed502The document could not be processed. Retry, or contact support if the problem continues.
internal_error500An unexpected error occurred. Please retry or contact support.
Capacity limits are reported as 429 queue_full, including the limit of 2 uploads in progress per workspace. The API does not rate-limit requests per key; rate_limited only appears on a job when an upstream processing limit persists after automatic retries. Retry after the response's Retry-After with the same Idempotency-Key rather than immediately. Reusing a key with different files or options returns 409 (idempotency_conflict).