Skip to main content
POST
/
parse-async
Parse Async
curl --request POST \
  --url https://{base_url}/parse-async \
  --header 'Content-Type: multipart/form-data' \
  --header 'X-API-Key: <api-key>' \
  --form 'files=<string>' \
  --form 'page_ranges=[{"start":1,"end":3},{"start":5,"end":5}]' \
  --form 'password=<string>' \
  --form mode=LITE \
  --form force_url=false \
  --form 'webhook=<string>' \
  --form files.0='@example-file'
{
  "id": "<string>",
  "status": "IN_QUEUE"
}

Authorizations

X-API-Key
string
header
required

API key for authentication

Body

multipart/form-data

Request body for asynchronous document parsing.

Content-Type: multipart/form-data

Important: Complex objects (page_ranges, webhook) must be sent as JSON-stringified values in form fields.

files
required

Document source (file upload, URL, or file ID with id:// prefix)

page_ranges
string

JSON-stringified array of page ranges to process specific pages. Example: '[{"start":1,"end":3},{"start":5,"end":5}]'

Example:

"[{\"start\":1,\"end\":3},{\"start\":5,\"end\":5}]"

password
string

Password for encrypted/protected PDF files

mode
enum<string>
default:LITE

Parsing quality mode:

  • LITE: Fast parsing with basic layout detection
  • PLUS: Standard parsing with improved layout analysis
  • PRO: Highest quality parsing with maximum accuracy
Available options:
LITE,
PLUS,
PRO
force_url
enum<string>
default:false

Force output delivery via presigned URL instead of inline JSON (useful for large documents). Send as string 'true' or 'false'

Available options:
true,
false
webhook
string

JSON-stringified WebhookConfig object. Example - '{"url":"https://example.com/webhook","metadata":{"order_id":"123"}}'

Response

200 - application/json

Job queued for processing

id
string

Job identifier for status tracking

status
enum<string>

Initial job status

Available options:
IN_QUEUE,
IN_PROGRESS