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

# Get LQA Assessment

> Retrieves the Language Quality Assessment (LQA) status and results for a single job. Use this endpoint after a reviewer finishes an LQA workflow step to read the MQM (Multidimensional Quality Metrics)-based score, issue counts by severity, and the pass/fail determination before advancing the job to the next step.

If the requested job is not in an LQA workflow step, the assessment from the nearest successive LQA-enabled step is returned instead.

The caller must have read access to the job's project. Roles without project visibility receive a 403 response (`FORBIDDEN`). To resolve a 403, ensure your API token belongs to a user with at least read access to the project containing this job. To resolve a 404 (`ResourceNotFound`), verify the jobUid is correct and the job has not been deleted or archived.

Note: the example response is abbreviated for readability; the full response includes all fields such as `issueCounts` (with `criticalRepeated`, `majorRepeated`, `minorRepeated`, `neutralRepeated`) and `lqaProfile` (with `errorCategories`, `penaltyPoints`, `passFailThreshold`, `dateCreated`, `organization`).



## OpenAPI

````yaml /openapi/phrase-tms-all.json get /api2/v1/lqa/assessments/{jobUid}
openapi: 3.0.0
info:
  description: |-
    Welcome to Phrase's TMS API documentation. 

     Please visit our [help center](https://support.phrase.com/hc/en-us/sections/5709662083612) for more information about the APIs. 

     If you have any questions, please contact [Support](https://support.phrase.com/hc/requests/new). 

     Please, include the `User-Agent` header with the name of your application or project. It might be a good idea to include some sort of contact information as well, so that we can get in touch if necessary. Examples of excellent `User-Agent` headers:
     > User-Agent: Example mobile app (example@phrase.com) <br/> User-Agent: ACME Inc Java 1.8 Client (http://acmeinc.com/contact)
  version: All
  title: Phrase TMS API
servers:
  - url: https://cloud.memsource.com/web
security:
  - ApiToken: []
  - OAuth2: []
tags:
  - name: Additional Workflow Step
  - name: Analysis
  - name: Async Request
  - name: Authentication
  - name: Automations
  - name: Bilingual File
  - name: Business Unit
  - name: Buyer
  - name: Client
  - name: Connector
  - name: Conversations
  - name: Cost Center
  - name: Custom Fields
  - name: Custom File Type
  - name: Domain
  - name: Due Date Scheme
  - name: Email Template
  - name: File
  - name: Glossary
  - name: Import settings
  - name: Job
  - name: Language AI
  - name: Language Assets
  - name: Language Quality Assessment
  - name: Machine Translation
  - name: Machine Translation Settings
  - name: Mapping
  - name: Net Rate Scheme
  - name: Notifications
  - name: Price List
  - name: Project
  - name: Project Template
  - name: Provider
  - name: Quality Assurance
  - name: Quality Profile
  - name: Quote
  - name: Reference File
  - name: SCIM
  - name: Segment
  - name: Segmentation Rules
  - name: Service
  - name: Spell Check
  - name: SubDomain
  - name: Supported Languages
  - name: Term Base
  - name: Translation
  - name: Translation Memory
  - name: User
  - name: Vendor
  - name: Webhook
  - name: Workflow Step
  - name: Workflow changes
  - name: XML Assistant
paths:
  /api2/v1/lqa/assessments/{jobUid}:
    get:
      tags:
        - Language Quality Assessment
      summary: Get LQA Assessment
      description: >-
        Retrieves the Language Quality Assessment (LQA) status and results for a
        single job. Use this endpoint after a reviewer finishes an LQA workflow
        step to read the MQM (Multidimensional Quality Metrics)-based score,
        issue counts by severity, and the pass/fail determination before
        advancing the job to the next step.


        If the requested job is not in an LQA workflow step, the assessment from
        the nearest successive LQA-enabled step is returned instead.


        The caller must have read access to the job's project. Roles without
        project visibility receive a 403 response (`FORBIDDEN`). To resolve a
        403, ensure your API token belongs to a user with at least read access
        to the project containing this job. To resolve a 404
        (`ResourceNotFound`), verify the jobUid is correct and the job has not
        been deleted or archived.


        Note: the example response is abbreviated for readability; the full
        response includes all fields such as `issueCounts` (with
        `criticalRepeated`, `majorRepeated`, `minorRepeated`, `neutralRepeated`)
        and `lqaProfile` (with `errorCategories`, `penaltyPoints`,
        `passFailThreshold`, `dateCreated`, `organization`).
      operationId: getLqaAssessment
      parameters:
        - name: jobUid
          in: path
          description: >-
            UID of the job to retrieve the LQA assessment for. A base62
            alphanumeric string (case-sensitive) as returned by job creation
            endpoints.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssessmentDetailDtoV1'
        '400':
          description: Bad request
        '401':
          description: Not authorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method not allowed
        '408':
          description: Timeout
        '410':
          description: Gone
        '415':
          description: Unsupported media type
        '429':
          description: Too many requests
        '500':
          description: Internal server error
        '501':
          description: Not implemented
components:
  schemas:
    AssessmentDetailDtoV1:
      type: object
      properties:
        assessmentJobPartUid:
          type: string
          description: >-
            UID of job corresponding to the assessment. Null when assessment not
            found
        assessmentResult:
          $ref: '#/components/schemas/AssessmentResultDtoV1'
        availability:
          type: string
          description: Availability state of LQA for this job.
          enum:
            - NOT_AVAILABLE
            - DISABLED_IN_ALL_WORKFLOW_STEPS
            - DISABLED_IN_CURRENT_WORKFLOW_STEP
            - ENABLED
        editedDate:
          type: string
          format: date-time
          description: When assessment was edited after previous finish (or empty)
        finishedDate:
          type: string
          format: date-time
          description: When assessment was finished (or empty)
        jobPartUid:
          type: string
          description: UID of the corresponding job
        lqaEnabled:
          type: boolean
          description: If LQA is enabled and configured for this job
        lqaProfile:
          $ref: '#/components/schemas/LqaProfileAssessmentDtoV1'
        mode:
          type: string
          description: >-
            What the assessment captures. ISSUES: error issues only.
            ISSUES_AND_SCORE: issues plus an MQM (Multidimensional Quality
            Metrics) score expressed as a percentage.
          enum:
            - ISSUES
            - ISSUES_AND_SCORE
        origin:
          type: string
          description: >-
            Whether the assessment was performed by a human reviewer or an
            automated system.
          enum:
            - HUMAN
            - AI
        overallFeedback:
          type: string
          description: Overall feedback from the LQA reviewer
        reportCanBeDownloaded:
          type: boolean
          description: >-
            If Assessment report/scorecard is ready and can be downloaded,
            user's rights are considered
        requestedJobPartUid:
          type: string
          description: The originally requested job UID
        reviewProvider:
          $ref: '#/components/schemas/ReviewProviderDtoV1'
        startedDate:
          type: string
          format: date-time
          description: When assessment was started (or empty)
        status:
          type: string
          description: >-
            Current lifecycle state of the assessment. NOT_STARTED: no
            assessment exists yet. STARTED: assessment is in progress. FINISHED:
            scorer has submitted results. FINISHED_WITH_EDITING: finished after
            a prior edit. EDITED: reviewer edited the submission after
            finishing.
          enum:
            - NOT_STARTED
            - STARTED
            - FINISHED
            - FINISHED_WITH_EDITING
            - EDITED
        translationProvider:
          $ref: '#/components/schemas/UidReference'
        workflowStep:
          $ref: '#/components/schemas/WorkflowStepDtoV1'
      description: LQA assessment state
    AssessmentResultDtoV1:
      type: object
      required:
        - issueCounts
        - jobPart
        - status
      properties:
        issueCounts:
          $ref: '#/components/schemas/IssueCountsDtoV1'
        jobPart:
          $ref: '#/components/schemas/UidReference'
        score:
          type: number
          format: double
          example: 94.5
          description: LQA score as a percentage between 0 and 100.
        status:
          type: string
          example: PASS
          description: >-
            PASS or FAIL verdict based on the project's configured LQA
            threshold.
          enum:
            - PASS
            - FAIL
      description: >-
        Language Quality Assessment (LQA) result for a single job part,
        including the PASS/FAIL verdict, score, and a breakdown of issue counts
        by severity.
    LqaProfileAssessmentDtoV1:
      type: object
      required:
        - dateCreated
        - errorCategories
        - isDefault
        - name
        - organization
        - passFailThreshold
        - penaltyPoints
        - uid
      properties:
        dateCreated:
          type: string
          format: date-time
          example: '2024-03-15T09:00:00Z'
          description: Date and time when the profile was created (ISO 8601 date-time)
        errorCategories:
          $ref: '#/components/schemas/ErrorCategoriesDto'
        isDefault:
          type: boolean
          description: Whether this profile is set as the default for the organization
        name:
          type: string
          description: Name of the profile
        organization:
          $ref: '#/components/schemas/UidReference'
        passFailThreshold:
          $ref: '#/components/schemas/PassFailThresholdDto'
        penaltyPoints:
          $ref: '#/components/schemas/PenaltyPointsDto'
        uid:
          type: string
          example: LqP8kMckeDcg
          description: Unique identifier (UID) of the profile
      description: >-
        LQA (Language Quality Assessment) profile snapshot applied to an
        assessment
    ReviewProviderDtoV1:
      type: object
      properties:
        organizationUid:
          type: string
          description: >-
            Unique identifier of the review provider's organization. A base62
            alphanumeric string.
          readOnly: true
        uid:
          type: string
          description: >-
            Unique identifier of the review provider user. A base62 alphanumeric
            string.
          readOnly: true
    UidReference:
      type: object
      required:
        - uid
      properties:
        uid:
          type: string
          example: 3HYnHHLkTPJfMxBCDbPXFe
          description: Unique identifier of the referenced object
      description: Reference to an object by its unique identifier
    WorkflowStepDtoV1:
      type: object
      properties:
        abbr:
          type: string
          description: Abbreviation of the workflow step (1–3 characters)
        id:
          type: string
          description: Internal numeric identifier, encoded as a string
        lqaEnabled:
          type: boolean
          description: When true, LQA is enabled for this step
        name:
          type: string
          description: Name of the workflow step
        order:
          type: integer
          format: int32
          description: Display order of the workflow step
        uid:
          type: string
          description: Unique identifier used in API paths
    IssueCountsDtoV1:
      type: object
      required:
        - critical
        - criticalRepeated
        - major
        - majorRepeated
        - minor
        - minorRepeated
        - neutral
        - neutralRepeated
      properties:
        critical:
          type: integer
          format: int32
          example: 0
          description: Number of critical-severity issues found.
        criticalRepeated:
          type: integer
          format: int32
          example: 0
          description: Number of repeated critical-severity issues.
        major:
          type: integer
          format: int32
          example: 1
          description: Number of major-severity issues found.
        majorRepeated:
          type: integer
          format: int32
          example: 0
          description: Number of repeated major-severity issues.
        minor:
          type: integer
          format: int32
          example: 3
          description: Number of minor-severity issues found.
        minorRepeated:
          type: integer
          format: int32
          example: 1
          description: Number of repeated minor-severity issues.
        neutral:
          type: integer
          format: int32
          example: 0
          description: Number of neutral-severity issues found.
        neutralRepeated:
          type: integer
          format: int32
          example: 0
          description: Number of repeated neutral-severity issues.
      description: >-
        Counts of LQA issues found in a job part, grouped by severity level and
        whether each occurrence is a repetition of an earlier issue in the same
        job.
    ErrorCategoriesDto:
      type: object
      properties:
        accuracy:
          $ref: '#/components/schemas/AccuracyWeightsDto'
        design:
          $ref: '#/components/schemas/DesignWeightsDto'
        fluency:
          $ref: '#/components/schemas/FluencyWeightsDto'
        localeConvention:
          $ref: '#/components/schemas/LocaleConventionWeightsDto'
        other:
          $ref: '#/components/schemas/OtherWeightsDto'
        style:
          $ref: '#/components/schemas/StyleWeightsDto'
        terminology:
          $ref: '#/components/schemas/TerminologyWeightsDto'
        verity:
          $ref: '#/components/schemas/VerityWeightsDto'
      description: >-
        Error categories and their importance weight. If not provided, defaults
        will be created.
    PassFailThresholdDto:
      type: object
      required:
        - minScorePercentage
      properties:
        minScorePercentage:
          type: number
          format: double
          example: 99
          description: >-
            Minimum allowed LQA score in percentage in line with MQM scoring (1
            - penalties/word-count)
    PenaltyPointsDto:
      type: object
      properties:
        critical:
          $ref: '#/components/schemas/SeverityDto'
        major:
          $ref: '#/components/schemas/SeverityDto'
        minor:
          $ref: '#/components/schemas/SeverityDto'
        neutral:
          $ref: '#/components/schemas/SeverityDto'
      description: >-
        Penalty points for each severity level. By default neutral is 0, minor
        is 1, major is 5, critical is 10.
    AccuracyWeightsDto:
      type: object
      properties:
        accuracy:
          $ref: '#/components/schemas/ToggleableWeightDto'
        addition:
          $ref: '#/components/schemas/ToggleableWeightDto'
        improperTmMatch:
          $ref: '#/components/schemas/ToggleableWeightDto'
        mistranslation:
          $ref: '#/components/schemas/ToggleableWeightDto'
        omission:
          $ref: '#/components/schemas/ToggleableWeightDto'
        overTranslation:
          $ref: '#/components/schemas/ToggleableWeightDto'
        underTranslation:
          $ref: '#/components/schemas/ToggleableWeightDto'
        untranslated:
          $ref: '#/components/schemas/ToggleableWeightDto'
    DesignWeightsDto:
      type: object
      properties:
        design:
          $ref: '#/components/schemas/ToggleableWeightDto'
        length:
          $ref: '#/components/schemas/ToggleableWeightDto'
        localFormatting:
          $ref: '#/components/schemas/ToggleableWeightDto'
        markup:
          $ref: '#/components/schemas/ToggleableWeightDto'
        missingText:
          $ref: '#/components/schemas/ToggleableWeightDto'
        truncation:
          $ref: '#/components/schemas/ToggleableWeightDto'
    FluencyWeightsDto:
      type: object
      properties:
        characterEncoding:
          $ref: '#/components/schemas/ToggleableWeightDto'
        crossReference:
          $ref: '#/components/schemas/ToggleableWeightDto'
        fluency:
          $ref: '#/components/schemas/ToggleableWeightDto'
        grammar:
          $ref: '#/components/schemas/ToggleableWeightDto'
        grammaticalRegister:
          $ref: '#/components/schemas/ToggleableWeightDto'
        inconsistency:
          $ref: '#/components/schemas/ToggleableWeightDto'
        punctuation:
          $ref: '#/components/schemas/ToggleableWeightDto'
        spelling:
          $ref: '#/components/schemas/ToggleableWeightDto'
    LocaleConventionWeightsDto:
      type: object
      properties:
        addressFormat:
          $ref: '#/components/schemas/ToggleableWeightDto'
        currencyFormat:
          $ref: '#/components/schemas/ToggleableWeightDto'
        dateFormat:
          $ref: '#/components/schemas/ToggleableWeightDto'
        localeConvention:
          $ref: '#/components/schemas/ToggleableWeightDto'
        measurementFormat:
          $ref: '#/components/schemas/ToggleableWeightDto'
        shortcutKey:
          $ref: '#/components/schemas/ToggleableWeightDto'
        telephoneFormat:
          $ref: '#/components/schemas/ToggleableWeightDto'
    OtherWeightsDto:
      type: object
      properties:
        other:
          $ref: '#/components/schemas/ToggleableWeightDto'
    StyleWeightsDto:
      type: object
      properties:
        awkward:
          $ref: '#/components/schemas/ToggleableWeightDto'
        companyStyle:
          $ref: '#/components/schemas/ToggleableWeightDto'
        inconsistentStyle:
          $ref: '#/components/schemas/ToggleableWeightDto'
        style:
          $ref: '#/components/schemas/ToggleableWeightDto'
        thirdPartyStyle:
          $ref: '#/components/schemas/ToggleableWeightDto'
        unidiomatic:
          $ref: '#/components/schemas/ToggleableWeightDto'
    TerminologyWeightsDto:
      type: object
      properties:
        inconsistentUseOfTerminology:
          $ref: '#/components/schemas/ToggleableWeightDto'
        inconsistentWithTb:
          $ref: '#/components/schemas/ToggleableWeightDto'
        terminology:
          $ref: '#/components/schemas/ToggleableWeightDto'
    VerityWeightsDto:
      type: object
      properties:
        cultureSpecificReference:
          $ref: '#/components/schemas/ToggleableWeightDto'
        verity:
          $ref: '#/components/schemas/ToggleableWeightDto'
    SeverityDto:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: Code of the severity category
        value:
          type: number
          format: double
          description: Allowed values 0.0-100,000.0
    ToggleableWeightDto:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: Code of the error category
        enabled:
          type: boolean
          description: If this error category is enabled, default false
        weight:
          type: number
          format: double
          example: 1
          description: Weight of this error category (0.1 - 99.9)
  securitySchemes:
    ApiToken:
      description: >-
        Get a token from `auth/login` [endpoint](#operation/login) and then pass
        it in the `Authorization` HTTP header in every subsequent API call. For
        more information visit our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#token-0-0).
      type: apiKey
      name: Authorization
      in: header
    OAuth2:
      description: >-
        A standard OAuth 2.0 authorization code flow. For more information visit
        our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#oauth-2-0-0-1).
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://cloud.memsource.com/web/oauth/authorize
          tokenUrl: https://cloud.memsource.com/web/oauth/token
          scopes: {}

````