Processing and redactions
Start processing jobs on a document, then read and review the redactions
and comments for it. Paths are relative to /api/v1.
Processing jobs
POST/documents/{document_id}/scan-jobs
Scope: processing:write · Idempotency-Key required
Start a scan job for the document. Returns 202 Accepted with the job; the work continues in the background.
POST/documents/{document_id}/ocr-jobs
Scope: processing:write · Idempotency-Key required
Start OCR (text recognition) for the document. Returns 202 Accepted.
POST/documents/{document_id}/detection-jobs
Scope: processing:write · Idempotency-Key required
Start automatic detection of sensitive content in the document. Returns 202 Accepted.
POST/documents/{document_id}/transcription-jobs
Scope: processing:write · Idempotency-Key required
Start transcription for the document. Returns 202 Accepted.
POST/documents/{document_id}/summary-jobs
Scope: processing:write · Idempotency-Key required
Start an AI summary of the document. Returns 202 Accepted.
GET/jobs/{job_id}
Scope: processing:read
Read a job. The response includes kind, status,
result once the job has finished, and error_message
if it failed. Poll this endpoint, or use webhook events, to learn when a
job completes.
GET/documents/{document_id}/jobs
Scope: processing:read · Paginated
List the jobs for a document.
Redactions
GET/documents/{document_id}/redactions
Scope: redactions:read · Paginated
List the redactions on a document.
POST/documents/{document_id}/redactions
Scope: redactions:write · Idempotency-Key required
Create one or more redactions on a document. Returns 201 Created with the created redactions.
| Field | Type | Required | Description |
|---|---|---|---|
redactions | array | Yes | List of redaction objects. Each object has a kind and coordinates. Use GET /api/v1/redaction-types to get the valid kinds. |
GET/redactions/{redaction_id}
Scope: redactions:read
Read one redaction.
PATCH/redactions/{redaction_id}
Scope: redactions:write · Idempotency-Key required
Update a redaction's kind or coordinates. Returns 423 locked while another editor holds the layer.
DELETE/redactions/{redaction_id}
Scope: redactions:write
Delete a redaction. Returns 204 No Content.
POST/documents/{document_id}/review-decisions
Scope: redactions:write · Idempotency-Key required
Record review decisions for redactions on a document. The request body
contains a decisions array; it must be an array, otherwise
the request fails with 400 validation_error.
Comments
GET/documents/{document_id}/comments
Scope: comments:read · Paginated
List the comments on a document.
POST/documents/{document_id}/comments
Scope: comments:write · Idempotency-Key required
Add a comment to a document. Body: text (string, required).
GET/comments/{comment_id}
Scope: comments:read
Read one comment.