Skip to main content

Features

The Partner API exposes three features you can request per case. Features must be enabled for your organization before they can be used. Requesting an unavailable feature fails synchronously with 403, before any files are stored or processed. Only the features you request run. A credential whose extraction you did not request waits in TruEnroll as Ready for Processing until an operator starts it. An operator can start any feature from TruEnroll. Once it has run, its results and webhooks reach you as if you had requested it. Submitting classify: false with an empty features array returns 400.

Extraction

Available to request for every case. When you omit features, TruEnroll requests extraction, forensics, and translation by default. AI-powered extraction includes:
  • Candidate identity (name, date of birth)
  • Institution (name, country, state, accreditation)
  • Qualification (degree, major, year of admission/completion)
  • Courses (number, title, credits, grade, marks)
  • CGPA and total credits
Extraction results are available via GET /cases/{id}/extraction once case.extraction.completed is received. Organization requirement: Always available. No special provisioning needed.

Forensics

Runs in parallel with extraction. Checks the original uploaded file for tampering, manipulation, metadata anomalies, and internal inconsistencies. See Forensics & verification for details. Organization requirement: Your organization must have the forensics feature provisioned. Contact your TruEnroll account manager. Webhook: case.forensics.completed / case.forensics.failed

Translation

Produces a page-structured, readable representation of each uploaded document. Results are returned per source file, preserving page order and file identity. Multi-file cases get one translation output per file. Organization requirement: Your organization must have either the standard translation or translation_on_demand feature provisioned. With on-demand translation only, requesting translation on an upload counts as the request, so your upload is translated. Webhook: case.translation.completed / case.translation.failed

Evaluation results

An operator runs evaluation in the TruEnroll UI. You can retrieve self-contained evaluation JSON and download credential or combined reports as PDF or XLSX. Evaluation is not one of the three upload features and does not require a separate partner feature gate. Do not include evaluation in features. Webhook: case.evaluation.completed, a best-effort case-level completion notification. There is no evaluation failure event. Poll the JSON endpoint as a fallback and use 409 from report endpoints to detect reports that are not ready. See Evaluation results for selectors and response fields.

Upload limits

ZIP archives are accepted and counted as a single file toward the 20-file limit. Files inside a ZIP that are not of a supported type will appear in the upload’s files[] list but will not be processed.
Need higher limits? Contact us to discuss increased file sizes or per-request limits for your organization.

Limit errors


Feature validation timing

Feature checks happen before any files are stored or processed. This means:
  1. TruEnroll receives the request and reads your features array.
  2. It loads your organization’s feature configuration.
  3. If any requested feature is not available, it returns 403 immediately.
  4. No files are persisted, no case or upload is created, and no processing is started.
This prevents documents from being stored or work from being kicked off when a feature is misconfigured. (The multipart request body is still received before the check runs, so the 403 does not save upload bandwidth; it prevents storage and processing.)

Rate limits

Specific rate limits are configured per organization based on your contract. Contact your TruEnroll account manager for your organization’s limits. When a rate limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header.