Skip to main content
POST
/
cases
Create a case or add an upload
curl --request POST \
  --url https://eval-api.trential.dev/partner/v1/cases \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form 'files=<string>' \
  --form 'externalId=<string>' \
  --form classify=true \
  --form 'features=["extraction","forensics","translation"]' \
  --form 'metadata={"cycle":"2025-fall"}' \
  --form files.items='@example-file'
{
  "success": true,
  "message": "Upload accepted",
  "data": {
    "caseId": "6850abc123def456ghi789",
    "externalId": "applicant-9876",
    "upload": {
      "uploadId": "6850def456ghi789abc123",
      "status": "queued",
      "classify": true,
      "features": [
        "extraction",
        "forensics",
        "translation"
      ],
      "files": [
        {
          "fileId": "file_abc",
          "fileName": "transcript.pdf"
        }
      ],
      "createdAt": "2025-06-22T10:00:00Z",
      "updatedAt": "2025-06-22T10:00:00Z"
    }
  }
}

Authorizations

x-api-key
string
header
required

Partner API key. Also accepted as Authorization: Bearer <key>.

Body

multipart/form-data
files
file[]
required

One or more document files. Accepted formats: PDF, PNG, JPG, JPEG, WebP, ZIP. Max 20 files, 30 MB each, 40 MB total.

externalId
string
required

Your reference for this case. Unique per organization — subsequent submissions with the same externalId append to the existing case.

Required string length: 1 - 128
classify
boolean
default:true

Run AI document classification. Required when forensics is enabled.

features
string

JSON array of features to run. Defaults to all three. Example: ["extraction","forensics"]

Example:

"[\"extraction\",\"forensics\",\"translation\"]"

metadata
string

JSON object of key-value pairs (string, number, or boolean values).

Example:

"{\"cycle\":\"2025-fall\"}"

Response

Upload accepted.

success
boolean
required
Example:

true

message
string
required
data
object
required