> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truenroll.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get combined equivalency as JSON

> Returns the combined equivalency for one target institute, together with the credentials it was built from. Courses are omitted; use GET /cases/{id}/evaluation when you need them.

Unlike the combined report routes this never returns 409. An unready target answers 200 with status queued, processing, or failed and the pending credential IDs, so this is the endpoint to poll before downloading a report. Reading it never triggers combined equivalency generation, so polling it is free of side effects.



## OpenAPI

````yaml /partner-api/openapi.json get /cases/{id}/evaluation/combined
openapi: 3.0.3
info:
  title: TruEnroll Partner API
  version: 1.0.0
  description: >-
    Submit academic documents and retrieve extraction, forensics, translation,
    and operator-completed evaluation results and reports.
servers:
  - url: https://eval-api.trential.dev/partner/v1
    description: Sandbox
  - url: https://api.truenroll.com/partner/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: Cases
    description: Create and manage processing cases.
  - name: Results
    description: >-
      Fetch extraction, forensics, translation, and operator-completed
      evaluation results and reports.
  - name: Webhooks
    description: Register endpoints that receive case events.
paths:
  /cases/{id}/evaluation/combined:
    get:
      tags:
        - Evaluation
      summary: Get combined equivalency as JSON
      description: >-
        Returns the combined equivalency for one target institute, together with
        the credentials it was built from. Courses are omitted; use GET
        /cases/{id}/evaluation when you need them.


        Unlike the combined report routes this never returns 409. An unready
        target answers 200 with status queued, processing, or failed and the
        pending credential IDs, so this is the endpoint to poll before
        downloading a report. Reading it never triggers combined equivalency
        generation, so polling it is free of side effects.
      operationId: getCombinedEvaluation
      parameters:
        - $ref: '#/components/parameters/CaseRef'
        - name: targetInstituteId
          in: query
          required: false
          schema:
            type: string
          description: >-
            Target institute ID from an evaluation row's targetInstitute.id.
            Omit for the general combined equivalency. This is an institute ID,
            not an evaluation ID.
      responses:
        '200':
          description: Combined evaluation retrieved.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SuccessResponse'
                  - properties:
                      data:
                        $ref: '#/components/schemas/CombinedEvaluationResult'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: API key is inactive or is not a partner key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Case not found, or the target institute is not on this case.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    CaseRef:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: >-
        Identifies the case: its TruEnroll case ID, or the case number (the
        number shown in TruEnroll and printed on reports). Case numbers are
        unique across all organizations and lookups are scoped to your own.
  schemas:
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
        meta:
          type: object
          description: >-
            Optional metadata (e.g. pagination). Empty object when not
            applicable.
        data: {}
      required:
        - success
        - message
        - meta
        - data
    CombinedEvaluationResult:
      type: object
      properties:
        id:
          type: string
        externalId:
          type: string
          nullable: true
          description: >-
            Your reference for the case. null for a case created in the
            TruEnroll UI, which has no partner reference.
        status:
          $ref: '#/components/schemas/CombinedEvaluationStatus'
        caseNumber:
          type: number
          nullable: true
          description: >-
            The case number shown in TruEnroll and printed on reports. Pass it
            as {id} on any case route. null when unavailable.
        targetInstitute:
          $ref: '#/components/schemas/EvaluationTarget'
        candidate:
          $ref: '#/components/schemas/EvaluationCandidate'
        combinedEquivalencies:
          type: array
          items:
            $ref: '#/components/schemas/CombinedEquivalency'
          description: >-
            Empty until the combined equivalency is ready. Operator edits
            replace the generated statements.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/CombinedEvaluationCredential'
        pendingCredentialIds:
          type: array
          items:
            type: string
          description: >-
            Credentials still waiting on a completed evaluation for this target.
            Empty once all are evaluated.
      required:
        - id
        - externalId
        - status
        - pendingCredentialIds
        - caseNumber
        - targetInstitute
        - candidate
        - combinedEquivalencies
        - credentials
      description: >-
        Combined equivalency for one target, with the credentials it was built
        from. status is queued before anything is evaluated, processing while
        the combined equivalency is being produced, and completed when
        combinedEquivalencies can be read.
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
      required:
        - statusCode
        - message
    CombinedEvaluationStatus:
      type: string
      enum:
        - queued
        - processing
        - failed
        - completed
      description: >-
        Combined equivalency readiness for one target. `queued`: no credential
        has a completed evaluation for the target. `processing`: credentials are
        still pending, or the combined equivalency is being produced. `failed`:
        producing the combined equivalency failed; downloading the combined
        report retries it. `completed`: every evaluable credential has a
        completed evaluation for the target and the combined equivalency is
        ready.
    EvaluationTarget:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
      nullable: true
      description: >-
        Null selects the general evaluation. Otherwise identifies a target
        institute.
    EvaluationCandidate:
      type: object
      properties:
        fullName:
          type: string
          nullable: true
        dateOfBirth:
          type: string
          nullable: true
          description: Date of birth in MM/DD/YYYY format.
      required:
        - fullName
        - dateOfBirth
    CombinedEquivalency:
      type: object
      properties:
        equivalency:
          type: string
          description: One combined equivalency statement.
        credentialIds:
          type: array
          items:
            type: string
          description: >-
            The credentials this statement was derived from. Empty when an
            operator wrote the statement by hand, which does not record its
            sources; the combined report has the same gap. Do not assume it is
            populated.
      required:
        - equivalency
        - credentialIds
    CombinedEvaluationCredential:
      type: object
      properties:
        credentialId:
          type: string
        uploadId:
          type: string
          nullable: true
          description: >-
            null for a credential that did not come from a partner upload,
            including every credential on a case created in the TruEnroll UI.
        institution:
          $ref: '#/components/schemas/EvaluationInstitution'
        qualification:
          $ref: '#/components/schemas/EvaluationQualification'
        evaluations:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/CombinedPendingEvaluation'
              - $ref: '#/components/schemas/CombinedCompletedEvaluation'
          description: >-
            At most one row: the evaluation for the selected target. Empty when
            this credential has not been evaluated for it. Rows carry no
            courses, and there is no per-credential candidate; the candidate
            sits on the envelope.
      required:
        - credentialId
        - uploadId
        - institution
        - qualification
        - evaluations
    EvaluationInstitution:
      type: object
      properties:
        name:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
      required:
        - name
        - country
    EvaluationQualification:
      type: object
      properties:
        name:
          type: string
          nullable: true
        educationLevel:
          type: string
          nullable: true
        program:
          type: string
          nullable: true
        programDurationYears:
          anyOf:
            - type: number
              nullable: true
            - type: string
          description: Number when numeric, otherwise source string, or null.
        yearOfAdmission:
          anyOf:
            - type: number
              nullable: true
            - type: string
          description: Number when numeric, otherwise source string, or null.
        yearsOfAttendance:
          type: array
          items:
            type: integer
          uniqueItems: true
          description: Sorted distinct year numbers; empty when unavailable.
        dateOfAward:
          type: string
          nullable: true
          description: >-
            Award date in MM/DD/YYYY format; named dateOfIssue in extraction
            results.
      required:
        - name
        - educationLevel
        - program
        - programDurationYears
        - yearOfAdmission
        - yearsOfAttendance
        - dateOfAward
    CombinedPendingEvaluation:
      type: object
      properties:
        evaluationId:
          type: string
        status:
          type: string
          enum:
            - queued
            - processing
        completedAt:
          type: string
          nullable: true
          enum:
            - null
          description: Always null on unfinished evaluations.
        targetInstitute:
          $ref: '#/components/schemas/EvaluationTarget'
      required:
        - evaluationId
        - status
        - completedAt
        - targetInstitute
    CombinedCompletedEvaluation:
      type: object
      properties:
        evaluationId:
          type: string
        status:
          type: string
          enum:
            - completed
        completedAt:
          type: string
          format: date-time
          nullable: true
          description: Latest completion timestamp, or null when unavailable.
        targetInstitute:
          $ref: '#/components/schemas/EvaluationTarget'
        equivalency:
          $ref: '#/components/schemas/EvaluationEquivalency'
        note:
          type: string
          nullable: true
      required:
        - evaluationId
        - status
        - completedAt
        - targetInstitute
        - equivalency
        - note
      description: >-
        A completed evaluation without courses. Use GET /cases/{id}/evaluation
        for course-level output.
    EvaluationEquivalency:
      type: object
      properties:
        usEquivalency:
          type: string
          nullable: true
        statement:
          type: string
          nullable: true
        fieldOfStudy:
          type: string
          nullable: true
          description: >-
            Normalized field of study, which can differ from extraction
            specialization.
        evaluatedAs:
          type: string
          nullable: true
        gpa:
          type: object
          properties:
            weighted:
              type: string
              nullable: true
            unweighted:
              type: string
              nullable: true
          required:
            - weighted
            - unweighted
        totalCredits:
          type: number
          nullable: true
        creditUnit:
          type: string
          enum:
            - Carnegie Units
            - Semester Credits
        disclaimer:
          type: string
          nullable: true
          description: Organization-specific disclaimer prefixed with **.
      required:
        - usEquivalency
        - statement
        - fieldOfStudy
        - evaluatedAs
        - gpa
        - totalCredits
        - creditUnit
        - disclaimer
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Partner API key. Also accepted as `Authorization: Bearer <key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.