Skip to main content
POST
Submit an evidence package and start analysis
Submit an authorized evidence package to start or recover one saved case. The endpoint below uses the canonical Ultiwrite OpenAPI contract. Save the returned caseId immediately: a 202 response means processing is still pending. Preserve filenames, bytes and the forensic choice when retrying the same package. Use POST for a returned continuation; status reads alone do not advance work. Choose the correct upload path, follow the case workflow, and check usage before submitting evidence.

Authorizations

Authorization
string
header
required

Create a key at /settings/api after an administrator approves your account. The key is shown once, can be revoked, and shares the account request allowance with other keys and partner OAuth grants. Send only in Authorization. These keys are not accepted by MCP or the legacy provisioned routes.

Body

multipart/form-data

One or more "files" parts and an optional documentForensics field.

files
file[]
required

1 to 6 files, each at most 8388608 bytes and 12582912 bytes together. Accepted formats are PDF, DOCX, XLSX/XLS/XLSM, CSV/TSV, JSON, TXT/MD, PNG/JPG/JPEG/TIF/TIFF/WEBP/GIF and ZIP evidence packages; HTML/XML markup, gzip, tar, 7z and RAR are refused. The engine classifies every file.

Required array length: 1 - 6 elements
documentForensics
enum<string>

Optional. Omit to let the engine infer relevance from supported contents; false disables document forensics. Frozen for the case.

Available options:
true,
false

Response

This exact package was already submitted; the existing case is returned with no additional analysis credit. The admitted API request still counts.

state
enum<string>
required

persisted: this request created the case. already_persisted: the same package or case already existed.

Available options:
persisted,
already_persisted
caseId
string
required
Required string length: 1 - 80
Pattern: ^[A-Za-z0-9_-]+$
status
enum<string>
required

complete only when a report was saved. Not a conclusion.

Available options:
processing,
action_required,
complete,
failed
reportId
string | null
required
reportStatus
string | null
required
analysisRunId
string | null
required
documentForensics
boolean | null
required

The frozen document-forensics choice for this case.

artifactCount
integer
required
recordCount
integer
required
comprehensiveExecution
boolean
required
coverage
object
required
usage
object | null
required

Allowance after this request, when the account is metered.

nextAction
string
required
conclusion
null
required
meaning
string
required
processing
object