Transifex Languages API

Languages objects represent each available language in Transifex.

OpenAPI Specification

transifex-languages-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: support@transifex.com
    name: Transifex Support
  description: "<br/>\n<br/>\n\n# Introduction\n\nThis API is based on **{json:api}**.\n\n{json:api} is a specification that follows shared conventions and standards. This specification enables API discoverability and partial\nself-descriptiveness through conventions. The Json Api specification exposes resources and their relationships representations with\nunique uris and all CRUD operations are performed on those endpoints. With it's simplified approach it assists the API uniformity.\n\nRead more: https://jsonapi.org/\n\nAdditionally, this API is defined using OpenAPI (ex Swagger). This means that you can easily:\n* Generate clients in your preferred: https://swagger.io/tools/swagger-codegen/\n* Download the specification file (see above) and use it in clients like Postman etc\n\n<br />\n<br />\n\n# Pagination\n\nAll list endpoints include pagination to guarantee performant responses. Those endpoints will return `next` and `previous` links in the\nresponse payload (`links` section). The client does not have to construct any pagination specific URLs or headers, just follow those\nlinks.\n\nPage size is fixed to 150 items per page.\n\n<br />\n<br />\n\n# Content Negotiation\n\nThe basic media type for the API is `application/vnd.api+json`. If you want to execute a request that includes data (`POST`, `PATCH`, `DELETE`)\nyou should include this media type in the `Content-Type` header. The only case where a different `Content-Type` header will be accepted is for\nendpoints that can accept file like objects where the media type used should be `multipart/form-data`.\n\nThe base media type this API responds is `application/vnd.api+json`. To retrieve the data in this media type you should include it in the `Accept`\nheader. The only case where the server will return another media type is for endpoint that return file like objects.\nIn this case the media type used should be `*/*` and the server will prioritize the negotiation to the media type dictated from the file.\nNote that `application/vnd.api+json` will be also available for accept header in these cases and will return a JSON serialized representation of the file.\n\nRead more here: https://jsonapi.org/format/#content-negotiation\n\n# File Uploads\n\nThere are three different methods for uploading file content to Transifex:\n* Using Content-Type `application/vnd.api+json` the content must\n    be JSON serializable.\n    - For content that is directly JSON serializable you can dump the content\n    of the file directly and set the `content_encoding` attribute  to `text`.\n    - For any content, even if it's not JSON serializable (eg .xlsx, .idml or .docx file extensions),\n    you can encode the file using the `base64` encoding and set the `content_encoding` attribute to `base64`.\n* Using Content-Type `multipart/form-data` the content can be any raw file, and can\n    be send without further processing.\n\n# Asynchronous Processing\n\nAsynchronous operations are triggered via a POST request. The response status in such cases is 202 Accepted, with a link in the Content-Location header.\nTo check the status of the operation, a client can send a request to the location given earlier.\nAn optional `callback_url` can be provided when the asynchronous operation is triggered. If such url is provided, upon completion\na HTTP POST request is executed containing all information required to identify the specific operation:\n\nExample request:\n```\nPOST callback_url HTTP/1.1\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"type\": resource_strings_async_downloads\",\n    \"id\": \"xxxxxxxxx\",\n    \"attributes\": {\n      \"location\": \"https://rest.api.transifex.com/resource_strings_async_downloads/xxxxxxxxx\",\n      \"status\": \"succeeded\"\n    }\n  }\n}\n```\n\n# Restrictions\n\nThe following Plan based restrictions apply:\n* [Activity Reports](#tag/Activity-Reports) are available to Premium and up\n* [XLIFF export](#tag/Resource-Translations/paths/~1resource_translations_async_downloads/post) is available to Premium and up.\n* [Screenshots](#tag/Context-Screenshots) are available to Premium and up\n\n# Rate Limit\n\nTo maintain optimal performance and availability of the API, we limit the request rate to 500\nrequests/min or 30,000 requests / 5 minutes / IP. Polling endpoints like\n`resource_translations_async_downloads/{resource_translations_async_download_id}` and\n`resource_strings_async_downloads/{resource_strings_async_download_id}` have a rate limit of 1,200 requests/min.\nOnce past the respective limit, requests will be throttled and you will get a 429 Throttled response.\n\n\nExample response:\n```\n{\n  \"errors\": [\n    {\n      \"code\": \"Throttled\",\n      \"detail\": \"Request was throttled. Expected available in 60 seconds.\",\n      \"status\": \"429\",\n      \"title\": \"Throttled\"\n    }\n  ]\n}\n```\n\n# Authentication\n<!-- ReDoc-Inject: <security-definitions> -->\n"
  title: Transifex Activity Reports Languages API
  version: '3.0'
  x-logo:
    altText: Transifex logo
    backgroundColor: '#FFFFFF'
    url: transifex-blue-logo.svg
servers:
- url: https://rest.api.transifex.com
security:
- bearerAuth: []
tags:
- description: Languages objects represent each available language in Transifex.
  name: Languages
paths:
  /languages:
    summary: List languages
    get:
      description: Get information for all the supported languages.
      parameters:
      - description: The code of the language to get details
        example: fr
        in: query
        name: filter[code]
        required: false
        schema:
          pattern: ^[a-z0-9._@-]+$
          type: string
      - description: A list of codes of the languages to get details. This will fetch any available.
        example: en,fr,az@Arab
        in: query
        name: filter[code][any]
        required: false
        schema:
          pattern: ^([a-z0-9._@-]+,?)+$
          type: string
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    description: List of language objects.
                    items:
                      additionalProperties: false
                      properties:
                        attributes:
                          additionalProperties: false
                          description: Language attributes.
                          properties:
                            code:
                              description: The language code as defined in CLDR.
                              example: en
                              type: string
                            name:
                              description: The name of the Language as defined in CLDR.
                              example: English
                              type: string
                            plural_equation:
                              description: The language plural rule equation as defined in CLDR.
                              example: (n != 1)
                              type: string
                            plural_rules:
                              description: Object of plural rules for Language as defined in CLDR.
                              items:
                                type: string
                              type: object
                            rtl:
                              description: If the language is rlt.
                              example: false
                              type: boolean
                          required:
                          - code
                          - name
                          - rtl
                          - plural_rules
                          - plural_equation
                          type: object
                        id:
                          description: Language identifier.
                          example: l:en_US
                          pattern: ^l:[a-zA-Z0-9@_.-]+$
                          type: string
                        links:
                          additionalProperties: false
                          description: Language links.
                          properties:
                            self:
                              description: Language details link.
                              example: /languages/l:en_US
                              type: string
                          required:
                          - self
                          type: object
                        type:
                          enum:
                          - languages
                          type: string
                      required:
                      - type
                      - id
                      - attributes
                      - links
                      type: object
                    type: array
                required:
                - data
                type: object
          description: Get a list of all the languages Transifex supports.
        '401':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: unauthorized
                          type: string
                        detail:
                          example: Please verify your credentials
                          type: string
                        status:
                          example: '401'
                          type: string
                        title:
                          example: Unauthorized
                          type: string
                      type: object
                    type: array
                type: object
          description: Unauthorized
        '403':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          example: forbidden
                          type: string
                        detail:
                          example: You do not have permissions to perform this action
                          type: string
                        status:
                          example: '403'
                          type: string
                        title:
                          example: Operation not allowed
                          type: string
                      type: object
                    type: array
                type: object
          description: Forbidden
        '429':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: Throttled
                          type: string
                        detail:
                          example: Request was throttled. Expected available in 60 seconds.
                          type: string
                        status:
                          example: '429'
                          type: string
                        title:
                          example: Throttled
                          type: string
                      type: object
                    type: array
                type: object
          description: Throttled
        '500':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: server error
                          type: string
                        detail:
                          example: Something went wrong, please try again
                          type: string
                        status:
                          example: '500'
                          type: string
                        title:
                          example: Something went wrong
                          type: string
                      type: object
                    type: array
                type: object
          description: Internal Error
      security:
      - bearerAuth: []
      summary: List languages
      tags:
      - Languages
      x-released: true
  /languages/{language_id}:
    summary: Get language details
    get:
      description: Get information for a specific supported language.
      parameters:
      - description: Format of the language id should be `l:language_code`.
        in: path
        name: language_id
        required: true
        schema:
          description: Language identifier.
          example: l:en_US
          pattern: ^l:[a-zA-Z0-9@_.-]+$
          type: string
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    additionalProperties: false
                    properties:
                      attributes:
                        additionalProperties: false
                        description: Language attributes.
                        properties:
                          code:
                            description: The language code as defined in CLDR.
                            example: en
                            type: string
                          name:
                            description: The name of the Language as defined in CLDR.
                            example: English
                            type: string
                          plural_equation:
                            description: The language plural rule equation as defined in CLDR.
                            example: (n != 1)
                            type: string
                          plural_rules:
                            description: Object of plural rules for Language as defined in CLDR.
                            items:
                              type: string
                            type: object
                          rtl:
                            description: If the language is rlt.
                            example: false
                            type: boolean
                        required:
                        - code
                        - name
                        - rtl
                        - plural_rules
                        - plural_equation
                        type: object
                      id:
                        description: Language identifier.
                        example: l:en_US
                        pattern: ^l:[a-zA-Z0-9@_.-]+$
                        type: string
                      links:
                        additionalProperties: false
                        description: Language links.
                        properties:
                          self:
                            description: Language details link.
                            example: /languages/l:en_US
                            type: string
                        required:
                        - self
                        type: object
                      type:
                        enum:
                        - languages
                        type: string
                    required:
                    - type
                    - id
                    - attributes
                    - links
                    type: object
                required:
                - data
                type: object
          description: Successful Response.
        '401':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: unauthorized
                          type: string
                        detail:
                          example: Please verify your credentials
                          type: string
                        status:
                          example: '401'
                          type: string
                        title:
                          example: Unauthorized
                          type: string
                      type: object
                    type: array
                type: object
          description: Unauthorized
        '403':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          example: forbidden
                          type: string
                        detail:
                          example: You do not have permissions to perform this action
                          type: string
                        status:
                          example: '403'
                          type: string
                        title:
                          example: Operation not allowed
                          type: string
                      type: object
                    type: array
                type: object
          description: Forbidden
        '404':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      properties:
                        code:
                          example: not found
                          type: string
                        detail:
                          example: Object not found. It may have been deleted or not been created yet
                          type: string
                        status:
                          example: '404'
                          type: string
                        title:
                          example: Object not found
                          type: string
                      type: object
                    type: array
                type: object
          description: Not found
        '500':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: server error
                          type: string
                        detail:
                          example: Something went wrong, please try again
                          type: string
                        status:
                          example: '500'
                          type: string
                        title:
                          example: Something went wrong
                          type: string
                      type: object
                    type: array
                type: object
          description: Internal Error
      security:
      - bearerAuth: []
      summary: Get language details
      tags:
      - Languages
      x-released: true
components:
  securitySchemes:
    bearerAuth:
      description: 'To use the API you need to authenticate your requests using Token Authentication. Specifically, you need to


        * Acquire an authentication token from the Transifex (under user settings)

        * Uses the `Bearer` keyword and  prepend the token when passing the header.


        For example, if the authentication token is `1/0b4e75552e481aeae813aebad53f3de3fcc67ccd`, then the HTTP header should look like this:


        `Authorization: Bearer 1/0b4e75552e481aeae813aebad53f3de3fcc67ccd`


        To create an API token:


        1. Head to your User Settings by going to the main navigation, and clicking on your profile image in the top right corner.


        2. In the left menu, click on API token.


        3. Click Generate a token.


        Once you''ve generated a token, you can edit its name so it''s easier to remember where you use the token.


        To keep your API token secure, we''ll only show it once, so please be sure to save it somewhere secure.

        In case you lose your API token, you can regenerate a new one at any time. However, when you regenerate

        a new token, you''ll need to update your applications and replace the old token with the new one.

        '
      scheme: bearer
      type: http