Skip to main content
The TruEnroll Partner API lets you embed academic credential evaluation in your own product. Submit documents, receive webhook events as each processing stage completes, and fetch structured results, all scoped to your organization’s tenant.

What you can do

Submit a case

Upload up to 20 PDF or image files in one request. Choose which features to run (extraction, forensics, translation) and get a caseId back immediately.

Track processing

List and inspect your organization’s cases by your externalId, TruEnroll’s case ID, or the case number. Check overall status and per-feature progress.

Fetch results

Pull structured extraction data, forensics findings, translated representations, and operator-completed evaluations. Download evaluation reports as PDF or XLSX.

React to events

Receive webhooks as stages complete or fail. Deliveries are retried, so handlers should be idempotent. Use JSON polling as a fallback for evaluation completion.

Compliance

TruEnroll is SOC 2, ISO 27001, and ISO 27701 certified. See the Compliance page for details or to request audit documentation.

Base URL

All Partner API routes are mounted under /partner/v1 and are separate from the internal platform API.

Endpoints at a glance

Integration flow

For evaluation results, an operator completes evaluation in the UI after upload. Poll the evaluation JSON endpoint or use case.evaluation.completed as a prompt to fetch results, then download the reports you need. Evaluation is not a requestable upload feature.

Key design decisions

externalId identifies a case. It is unique per organization. Submitting to an externalId that already exists adds a new upload to the existing case. It does not create a new one. Use your candidate ID or application number as the externalId to group all their document submissions under one case. Deliveries are retried, so handlers must be idempotent. A webhook is retried up to 5 times until your endpoint returns 2xx, so the same event can arrive more than once. Design your handler so that processing the same event twice produces the same outcome. Organization feature is checked before upload. If you request a feature your organization isn’t provisioned for, TruEnroll returns 403 synchronously, and no files are transferred. Partner keys only. Partner API routes only accept partner API keys provisioned for your organization. IDs are TruEnroll’s own. The case ID, uploadId, credentialId, and evaluationId the API returns are the IDs TruEnroll uses for the same records, so they match across the API, webhooks, and TruEnroll. The case number is the human-readable case identifier. Every case response carries caseNumber, starting with POST /cases, and every /cases/{id} route accepts it in place of the case ID. It is the number shown in TruEnroll and printed on reports, so it is what people quote in email and support tickets. See Addressing a case. You see your organization’s cases, not only your own. Cases an operator created in the TruEnroll UI are readable and listed too. You can link one to your externalId to add uploads and receive its webhooks. Only cases you created can be deleted through the API.

Authentication

How to provision and send partner API keys.

Cases

Full case lifecycle, request schema, and status transitions.

Webhooks

Every event name, payload, and delivery behavior.

Features & limits

Upload constraints, feature prerequisites, and error codes.

Evaluation results

Operator-completed evaluations, report selectors, and PDF/XLSX downloads.

Postman collection

Every route as an importable collection, with per-environment variables.