> ## 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.

# List of Language AI engine categories

> Per-org catalogue of available MT engine types, grouped by category. An empty PREDEFINED/PREDEFINED_CUSTOMIZABLE (native, fully managed) category means the organization is not entitled to native engines, not that engines are missing/deleted.



## OpenAPI

````yaml /openapi/phrase-tms-v2.json get /api2/v2/memsourceTranslateProfiles/categories
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: '2'
  title: Phrase TMS API
servers:
  - url: https://cloud.memsource.com/web
security:
  - ApiToken: []
  - OAuth2: []
tags:
  - name: Analysis
  - name: Bilingual File
  - name: Connector
  - name: Conversations
  - name: Job
  - name: Language AI
  - name: Net Rate Scheme
  - name: Project
  - name: Project Template
  - name: Provider
  - name: Quality Assurance
  - name: Quote
  - name: Reference File
  - name: Term Base
  - name: Translation
  - name: Translation Memory
  - name: User
  - name: Webhook
  - name: Workflow changes
paths:
  /api2/v2/memsourceTranslateProfiles/categories:
    get:
      tags:
        - Language AI
      summary: List of Language AI engine categories
      description: >-
        Per-org catalogue of available MT engine types, grouped by category. An
        empty PREDEFINED/PREDEFINED_CUSTOMIZABLE (native, fully managed)
        category means the organization is not entitled to native engines, not
        that engines are missing/deleted.
      operationId: listMemsourceTranslateCategories
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesDtoV1'
        '400':
          description: Bad request
        '401':
          description: Not authorized
        '403':
          description: Forbidden
        '404':
          description: Resource 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:
    CategoriesDtoV1:
      type: object
      properties:
        categories:
          type: array
          description: Available engine categories and their types for the organization
          items:
            $ref: '#/components/schemas/CategoryDtoV1'
      description: >-
        Per-organization catalogue of available MT engine types, grouped by
        category. Native (fully managed) engine types - category PREDEFINED and
        PREDEFINED_CUSTOMIZABLE - are gated by an org-level entitlement; an
        empty native category is a valid non-defect state for an organization
        not entitled to native engines, not evidence that engines are missing or
        were deleted.
    CategoryDtoV1:
      type: object
      properties:
        category:
          type: string
          example: PREDEFINED
          description: Category identifier
          enum:
            - PREDEFINED
            - PREDEFINED_CUSTOMIZABLE
            - CUSTOMIZABLE
            - PRIVATE
            - PARTNER_PREDEFINED
            - GENERIC
        types:
          type: array
          description: >-
            Engine types available in this category for the organization. An
            empty list for PREDEFINED/PREDEFINED_CUSTOMIZABLE means the
            organization is not entitled to native engines.
          items:
            $ref: '#/components/schemas/TypeDtoV1'
      description: >-
        One MT engine category and the engine types available in it for the
        organization.
    TypeDtoV1:
      type: object
      properties:
        hasSubtypes:
          type: boolean
          description: >-
            Whether this engine type has further subtypes; when true, they are
            also inlined in `subtypes` below - no separate call is needed.
        subtypes:
          type: array
          description: >-
            Subtypes available for this engine type, inlined here so callers do
            not need a separate GET
            /api2/v1/memsourceTranslates/type/{type}/subtypes call. Null when
            hasSubtypes is false; an empty list when hasSubtypes is true but the
            org does not have the subtype feature enabled.
          items:
            $ref: '#/components/schemas/SubTypeDtoV1'
        type:
          type: string
          example: GOOGLE_V3_TRANSLATE
          description: Engine type identifier
      description: One MT engine type available within a category.
    SubTypeDtoV1:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoV1'
        deleted:
          type: boolean
        name:
          type: string
        realTime:
          type: boolean
        subType:
          type: string
    PartnerConnectorDefinitionDtoV1:
      type: object
      required:
        - connection
        - engineName
        - providerName
      properties:
        assistiveText:
          type: string
        connection:
          type: array
          items:
            $ref: '#/components/schemas/PartnerConnectorDefinitionDtoConnection'
        customization:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoCustomization'
        docsUrl:
          type: string
        engineName:
          type: string
        features:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFeatures'
        learnMoreUrl:
          type: string
        localization:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
        logoUrl:
          type: string
        providerName:
          type: string
    PartnerConnectorDefinitionDtoConnection:
      type: object
      required:
        - authentication
        - baseUrl
      properties:
        assistiveText:
          type: string
        authentication:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoAuthentication'
        baseUrl:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoBaseUrl'
    PartnerConnectorDefinitionDtoCustomization:
      type: object
      properties:
        assistiveText:
          type: string
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/PartnerConnectorDefinitionDtoCustomField'
    PartnerConnectorDefinitionDtoFeatures:
      type: object
      properties:
        async:
          type: boolean
        dataRegionPolicy:
          type: array
          items:
            type: string
        glossaries:
          type: boolean
        sync:
          type: boolean
    PartnerConnectorDefinitionDtoAuthentication:
      type: object
      properties:
        header:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoHeader'
        oauth:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoOAuth'
    PartnerConnectorDefinitionDtoBaseUrl:
      type: object
      required:
        - url
      properties:
        helpText:
          type: string
        name:
          type: string
        url:
          type: string
    PartnerConnectorDefinitionDtoCustomField:
      type: object
      required:
        - key
        - type
      properties:
        allowedValues:
          type: array
          items:
            type: string
        defaultValue:
          type: string
        helpText:
          type: string
        hidden:
          type: boolean
        key:
          type: string
        label:
          type: string
        placeholderText:
          type: string
        required:
          type: boolean
        secret:
          type: boolean
        type:
          type: string
          enum:
            - TEXT
            - TEXTAREA
            - DROPDOWN
    PartnerConnectorDefinitionDtoHeader:
      type: object
      required:
        - authHeaderName
        - authHeaderValue
      properties:
        authHeaderName:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig'
        authHeaderValue:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig'
    PartnerConnectorDefinitionDtoOAuth:
      type: object
      required:
        - authUrl
        - clientId
        - clientSecret
      properties:
        authUrl:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig'
        clientId:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig'
        clientSecret:
          $ref: '#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig'
    PartnerConnectorDefinitionDtoFieldConfig:
      type: object
      properties:
        defaultValue:
          type: string
        helpText:
          type: string
        hidden:
          type: boolean
        label:
          type: string
        placeholderText:
          type: string
        required:
          type: boolean
  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: {}

````