validateDocument
Validate a document against a document type
Check whether a JSON document satisfies the rules of a document type without
running OCR or changing the document type. Send the data you already extracted (for example,
the output of POST /api/convert, or values edited by a reviewer) and get back the
problems found.
Validation runs two layers against the document type:
- JSON Schema — types, required fields, formats, and value constraints.
- Custom business rules — cross-field and domain logic defined for the type.
Results are split into two buckets, each with a count and a list of human-readable
messages:
- errors — blocking problems; the document does not conform.
- warnings — non-blocking issues worth reviewing.
A document is valid when errors.count is 0. The call always returns 200 when it
runs successfully, even if the document has errors — inspect errors.count to decide
whether it passed. valid is the authoritative result and issues contains structured
errors and warnings (field, code, message, severity and source).
To try rules without saving them, send { "data": { ... }, "dslRules": "field.total greaterThan(0)" }.
Both fields are required for this dry-run envelope, and extra control fields are rejected.
The temporary DSL replaces the stored DSL for this call; JSON Schema still runs.
Use null or an empty string to test without DSL. Limit: 64 KiB UTF-8.
Without this envelope, the entire JSON body is the document and the stored rules run.
The root shape containing both data and dslRules is reserved for dry-run.
Access follows the same rules as
GET /api/document-types/{id}.
Authorization
ApiKeyAuth Bearer token for API authentication
In: header
Path Parameters
Document type ID
Request Body
application/json
Extracted document JSON (legacy format); uses the stored rules.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
updateDocumentType PUT
Update an existing document type's schema, name, description, prompt hints, conversion spec, or validation rules. All fields are optional. **Permissions:** - Non-admin users can only update document types they created - Non-admin users cannot set `isPublic` to `true` - `codeType` is immutable and will be ignored if provided When `isDraft` changes, the `status` field is automatically updated. A version snapshot is created with the state before the update.
getIdentificationStatus GET
Check the status and result of an identification started asynchronously