evaluation to an upload’s features array.
The JSON response includes candidate, institution, and qualification details alongside the
evaluated results. You do not need to call /extraction first.
Integration flow
- Submit documents with
POST /casesand retain the returnedcaseIdanduploadId. For a case an operator created in TruEnroll, use its case ID or case number fromGET /cases. - Arrange for an operator to evaluate the case in TruEnroll.
- Poll
GET /cases/{id}/evaluation, or usecase.evaluation.completedas a prompt to fetch the current results. Keep polling as a fallback because this event is best-effort. - Download a credential report once its evaluation row has
status: "completed". - Poll
GET /cases/{id}/evaluation/combinedfor the combined equivalency. Combined readiness is separate from the JSON evaluation status, so/evaluationcan readcompletedwhile the combined equivalency is stillprocessing. - Download a combined report once that endpoint reports
completed.
https://api.truenroll.com/partner/v1.
Get evaluation results
string
required
TruEnroll case ID, or the case number. See Addressing a case.
string
Limit the response to credentials produced by this upload. Available immediately after upload.
string
Limit the response to one credential in this case. Discover credential IDs from the case
summary or evaluation response after classification.
400.
Both identifiers must be 24-character hexadecimal strings; hex digits are accepted in either
case. A missing upload or credential, including a deleted credential, returns 404.
Status and targets
data.status aggregates the credentials that can be evaluated: those past extraction and not
uncategorized. This is the same rule case.evaluation.completed uses, so the webhook never
arrives while this endpoint still reads processing. Every credential is still listed.
queuedwhen none of them has been evaluated yet. A credential still being extracted, or an upload still being classified, keeps the casequeued, because evaluation work is still coming.completedwhen every one of them has a completed evaluation.processingotherwise. A credential withevaluations: []counts as still waiting and holds the aggregate atprocessing.
evaluations array. An unfinished row contains only
evaluationId, status, completedAt: null, and targetInstitute. Completed rows also
contain equivalency, courses, and note. Reopening an evaluation returns it to
processing and hides the completed output until it is completed again.
targetInstitute is always present. null identifies the general evaluation. When target
institutes are configured, additional rows contain { "id": "...", "name": "..." }.
Find the general row by targetInstitute === null; do not rely on array order. Before an
operator initiates evaluation, the array can be empty.
A credential can have more than one evaluation for the same target. Every endpoint returns the
same one: a completed evaluation if there is one, otherwise the first.
Completed response
Response fields
Course grades, points, and credits are evaluated output. Use extraction results
if you also need the transcript’s original values. This response does not include accreditation
findings, grade scales, or course codes. Combined equivalency has
its own endpoint.
Download a credential report
Both IDs are 24-character hexadecimal strings and hex digits are accepted in either case.
Sending neither or both returns
400. An evaluation not in the case returns 404. An
existing unfinished evaluation returns 409.
application/pdf; XLSX responses use
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.
TruEnroll names the file in the Content-Disposition header
(attachment; filename="...", with spaces replaced by underscores). Read the filename from
that header rather than deriving one from the request.
Get combined equivalency as JSON
string
Select a target institute from an evaluation row’s
targetInstitute.id. Omit for the general
combined equivalency. This is an institute ID, not an evaluation ID./evaluation already carries
them. An unknown target institute returns 404.
How this differs from /evaluation
combinedEquivalencies[].credentialIds names the credentials a statement was derived from. It
is empty when an operator wrote the statement by hand, because a manual edit does not record
its sources. The combined report has the same gap, so treat a populated array as a bonus rather
than a guarantee.
Poll this, not the report
A target is
completed only when every credential that can be evaluated has a completed
evaluation for it and its combined equivalency has been produced. While it is queued or
processing, pendingCredentialIds lists the credentials still waiting on an evaluation. It is
[] once they are all evaluated.
This endpoint returns 200 with a status rather than the 409 the report routes return, which
gives you something to poll. Reading it never triggers combined equivalency generation, so
polling it has no side effects.
/evaluation and /evaluation/combined can disagree, and both are right: every credential can
be completed while the combined equivalency for a target is still processing. Check this
endpoint before downloading a combined report.
Download a combined report
string
Select a target institute from an evaluation row’s
targetInstitute.id. Omit this
parameter for the general combined report. This is an institute ID, not an evaluation ID.completed:
There is no webhook for a failed combined equivalency, so watch for
failed on the JSON
endpoint. An unknown target institute returns 404. The response is a binary PDF or XLSX
attachment, named in the Content-Disposition header as above.
Poll the combined equivalency JSON rather than retrying
these routes to find out when a target is ready.
Poll the JSON endpoint for progress. Each PDF request generates a fresh report with a new
report ID and QR verification link. Repeated downloads can produce separately verifiable
documents. Request reports when you need a download.
Errors
Both JSON endpoints return
200 with a current status rather than refusing an unfinished
result; only the report downloads return 409. An evaluation has no failed status and there is
no case.evaluation.failed event. If operator work cannot be completed, the evaluation remains
processing. Only the combined equivalency can be failed.