> ## 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 QE warnings for selected job parts

> Returns AI-generated quality estimation warnings for the selected job parts. Only call this after the async evaluation job started by POST /api2/v1/qualityProfiles/evaluate has completed (asyncResponse != null on GET /api2/v1/async/{asyncRequest.id}). Calling before completion returns empty segmentWarnings — this is not a clean result, it means the evaluation is still running. Each response covers up to 100 segments (fewer if the end of the scan range is reached). Pagination is cursor-based: omit `initialSegmentId` on the first request to start from the first segment; on subsequent requests, pass the last `segmentId` from the previous response's `segmentWarnings`. `endReached=true` signals there are no further segments. All job parts must belong to the same project and workflow step.



## OpenAPI

````yaml /openapi/phrase-tms-latest.json post /api2/v1/qualityProfiles/qeWarnings
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: Latest
  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/qualityProfiles/qeWarnings:
    post:
      tags:
        - Quality Profile
      summary: Get QE warnings for selected job parts
      description: >-
        Returns AI-generated quality estimation warnings for the selected job
        parts. Only call this after the async evaluation job started by POST
        /api2/v1/qualityProfiles/evaluate has completed (asyncResponse != null
        on GET /api2/v1/async/{asyncRequest.id}). Calling before completion
        returns empty segmentWarnings — this is not a clean result, it means the
        evaluation is still running. Each response covers up to 100 segments
        (fewer if the end of the scan range is reached). Pagination is
        cursor-based: omit `initialSegmentId` on the first request to start from
        the first segment; on subsequent requests, pass the last `segmentId`
        from the previous response's `segmentWarnings`. `endReached=true`
        signals there are no further segments. All job parts must belong to the
        same project and workflow step.
      operationId: getQeWarnings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QeWarningsRequestDtoV1'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QeWarningsResponseDtoV1'
        '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:
    QeWarningsRequestDtoV1:
      type: object
      required:
        - jobParts
      properties:
        initialSegmentId:
          type: string
          description: >-
            Segment id to resume pagination from. Omit (or send null) on the
            first request to start from the first segment; for subsequent pages,
            pass the last `segmentId` returned in the previous response's
            `segmentWarnings`.
        jobParts:
          type: array
          description: >-
            Job parts to fetch warnings for. Must all belong to the same project
            and the same workflow step. 1–100 entries.
          items:
            $ref: '#/components/schemas/UidReference'
          maxItems: 100
          minItems: 1
    QeWarningsResponseDtoV1:
      type: object
      properties:
        endReached:
          type: boolean
          description: >-
            True when there are no further segments to fetch beyond this
            response.
        segmentWarnings:
          type: array
          description: >-
            Warnings grouped by segment, in segment order starting at the
            requested initialSegmentId. Each response covers AI-generated
            quality estimation warningsfor up to 100 segments.
          items:
            $ref: '#/components/schemas/QeSegmentWarningDtoV1'
    UidReference:
      type: object
      required:
        - uid
      properties:
        uid:
          type: string
    QeSegmentWarningDtoV1:
      type: object
      properties:
        jobPartUid:
          type: string
          description: >-
            UID of the job part this segment belongs to. Useful when the request
            contains multiple job parts and the caller needs to map each segment
            back to its source job part.
        segmentId:
          type: string
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/QeWarningDtoV1'
    QeWarningDtoV1:
      type: object
      properties:
        message:
          type: string
        qeId:
          type: string
          description: Identifier of the QE rule that produced the warning.
        type:
          type: string
          description: Category of the warning (e.g. quality issue type).
  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: {}

````