POST
Submit a document for classification
Request · Response · Guide: Split & classify
One endpoint covers both modes; the mode is selected by the payload (not a separate endpoint):
  • no options -> normal (open) classification: the engine proposes document types
  • schemas -> custom (closed-set) classification against the supplied candidate document types Classification supports no free-text prompt or instruction.
Always returns 202 Accepted with a job_id; results are retrieved via GET /v1/jobs/ (result.document_class carries the primary classification) or delivered to callback_url when the job settles.Supported input types: application/pdf, image/png, image/jpeg, image/tiff. Any other content type is rejected with 415.

Authorizations

x-api-key
string
header
required

API key for authentication

Body

multipart/form-data
file
file
required

The document. Must be application/pdf, image/png, image/jpeg, or image/tiff.

schemas
string

Optional candidate document types as a JSON string: a non-empty array of objects each with document_type (required) and optional summary / tags, e.g. '[{"document_type":"invoice"},{"document_type":"packing_list"}]'. Selects custom (closed-set) classification; omit for normal (open) classification.

callback_url
string

Optional HTTPS URL to receive the extraction.job.settled webhook when the job settles. A blank value is treated as omitted.

client_ref
string

Opaque caller-supplied reference, echoed on the job and webhook payload.

Maximum string length: 256

Response

Job accepted and queued.

job_id
string
required
Example:

"job_01J9ZK3V6Q8W"

status
enum<string>
required
Available options:
queued
Example:

"queued"

created_at
string<date-time>
required
poll_url
string<uri-reference>
required

URL of GET /v1/jobs/{job_id}.