New to the API? Start with Quickstart API. This page is a detailed reference for production-grade integrations.
Base URL
Use the stage/cell-specific base URL for your tenant.- Stage and cell mapping: see Concepts
- Token URL mapping: see Getting an access token
Step 1 — Create a submission
POST /v2/submission
Creates a new submission record and returns:
- a unique
submission_id - a presigned
upload_urlfor uploading the file bytes
Request headers
Request body (optional)
Pipeline configuration values
This enum selects a single pipeline. If you need multiple outputs, retrieve them from the corresponding endpoint(s) or use an agreed configuration provided during provisioning.
Response — 200 OK
Step 2 — Upload the document bytes
Upload the original file bytes to the presignedupload_url using HTTP PUT.
Upload request
Upload rules
- Method must be
PUT Content-Typemust beapplication/octet-stream- Upload the original bytes (do not base64 encode or re-render)
- The presigned URL expires — upload promptly after creating the submission
Step 3 — Submit submission characteristics (optional)
PUT /v2/submission/{submission_id}/characteristics
If you created the submission with enable_submission_characteristics: true, you must submit characteristics before analysis proceeds.
This page does not document the full schema (it is extensive and evolves). See:
Response — 204 No Content
Characteristics accepted — analysis will proceed.Step 4 — Fetch analysis results
Results are returned asynchronously. Fetch them by calling the relevant endpoint(s) for your pipeline and feature configuration.Polling semantics (important)
A
404 can mean “result not ready yet” or “not found” (e.g., wrong stage/cell, wrong submission_id). If 404 persists, verify you’re using the correct base URL for the same stage/cell where the submission was created.Fraud analysis
GET /v2/submission/{submission_id}/fraud
Returns fraud indicators and an overall risk score.
Query parameters
Response (example)
NORMAL, TRUSTED, WARNING, HIGH_RISKStatus values:
SUCCESS, SKIPPED, INVALID_INPUT, FAILED
Quality analysis
GET /v2/submission/{submission_id}/quality
Returns document image/scan quality assessment.
Quality score values: HIGH_QUALITY, LOW_QUALITY, NOT_RELEVANT_DOCUMENT
Document classification
GET /v2/submission/{submission_id}/classification
Returns the detected document type.
Classification score values: CLASSIFIED, NOT_CLASSIFIED, DOCUMENT_MISSING
Adaptive Decision (customisable layer)
GET /v2/submission/{submission_id}/decision
Returns a tenant-specific decision. Available only when enable_decision: true and Adaptive Decision is configured for your tenant by Resistant AI team.
Query parameters
Content extraction (limited access)
GET /v2/submission/{submission_id}/content
Returns extracted text/structured content. This endpoint applies only to selected document types from Czechia.
Downloadable PDF report
GET /v2/submission/{submission_id}/report
Returns a download URL for a human-readable PDF fraud analysis report.
Query parameters
Returns
409 Conflict if fraud analysis or adaptive decision was not completed successfully or was skipped.Feedback
PUT /v2/submission/{submission_id}/feedbackStores analyst feedback for the submission.
GET /v2/submission/{submission_id}/feedbackRetrieves previously stored feedback.
Delete a submission
DELETE /v2/submission/{submission_id}
Permanently deletes the submission and associated data before the configured retention period.
Returns
409 Conflict if the submission is still being processed.