Transifex Resource Strings API

Resource Strings

OpenAPI Specification

transifex-resource-strings-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 Resource Strings 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: Resource Strings
  name: Resource Strings
paths:
  /resource_strings:
    delete:
      description: 'Include a payload with resource identifiers to all resource strings you

        wish to delete. Resource identifiers are objects with only the `type` and

        `id` fields.


        <b>Available only for file-less resources.</b>


        All deleted resource strings need to belong to the same resource.

        Bulk deletes do not support partial success, ie either all

        resource strings will be deleted, or none will.


        Consult the error response to figure out which resource strings

        you need to fix or omit and try again. Don''t forget to use the

        `application/vnd.api+json;profile="bulk"` Content-Type instead

        of the more common `application/vnd.api+json`.

        '
      requestBody:
        content:
          application/vnd.api+json;profile="bulk":
            schema:
              additionalProperties: false
              properties:
                data:
                  items:
                    additionalProperties: false
                    description: Resource String data container.
                    properties:
                      id:
                        description: Resource String identifier.
                        example: o:organization_slug:p:project_slug:r:resource_slug:s:2e354ef120752c67afa1b6855aa80c52
                        pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+:r:[a-zA-Z0-9_-]+:s:[0-9a-f]{32}
                        type: string
                      type:
                        enum:
                        - resource_strings
                        type: string
                    required:
                    - type
                    - id
                    type: object
                  maxItems: 150
                  minItems: 1
                  type: array
                  uniqueItems: true
              required:
              - data
              type: object
        required: true
      responses:
        '204':
          description: No content
        '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
      security:
      - bearerAuth: []
      summary: Bulk-delete resource strings
      tags:
      - Resource Strings
      x-released: true
    get:
      parameters:
      - description: Filter results by a resource
        in: query
        name: filter[resource]
        required: true
        schema:
          description: Resource identifier.
          example: o:organization_slug:p:project_slug:r:resource_slug
          pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+:r:[a-zA-Z0-9_-]+$
          type: string
      - description: 'The cursor used for pagination. The value of the cursor must be retrieved from pagination links included in previous responses; you should not attempt to write them on your own.

          '
        in: query
        name: page[cursor]
        schema:
          type: string
      - in: query
        name: filter[strings_date_modified][gte]
        required: false
        schema:
          oneOf:
          - example: XXXX-XX-XXTXX:XX:XXZ
            format: date-time
            type: string
          - description: Date, will be treated as UTC by the API
            example: XXXX-XX-XX
            format: date
            type: string
      - in: query
        name: filter[strings_date_modified][lte]
        required: false
        schema:
          oneOf:
          - example: XXXX-XX-XXTXX:XX:XXZ
            format: date-time
            type: string
          - description: Date, will be treated as UTC by the API
            example: XXXX-XX-XX
            format: date
            type: string
      - description: Exact match for the key of the resource string. This filter is case sensitive.
        in: query
        name: filter[key]
        required: false
        schema:
          example: hello_world
          minLength: 1
          type: string
      - description: Retrieve source strings that contain all specified query tags.
        explode: false
        in: query
        name: filter[tags][all]
        required: false
        schema:
          items:
            example: tag1,tag2,tag3
            type: string
          minItems: 1
          type: array
        style: form
      - description: Retrieve source strings containing any of the query tags. If the filter value is *, all strings with any tag will be returned. However, if you use * along with another tag value, such as *,tag1, only strings with either * or 'tag1' tags will be returned.
        explode: false
        in: query
        name: filter[tags][any]
        required: false
        schema:
          items:
            example: tag1,tag2,tag3
            type: string
          minItems: 1
          type: array
        style: form
      - description: "Retrieve translation strings based on specified query tags.\n\nTo filter strings, use a combination of tags with the following syntax:\n- Use an ampersand ('&') to signify 'AND' functionality, indicating that all specified\n  tags must be present.\n- Use a pipe ('|') to signify 'OR' functionality, meaning that at least one of\n  the specified tags must be present.\n- Use parentheses '(' to ')' to define the order of statement execution.\n- To use the above special characters as part of the query content, escape them with a\n  backslash ('\\\\')\n\nWhen combining AND and OR conditions, the query is evaluated from left to right, following operator precedence and respecting existing parentheses. Specifically, the AND operator (&) takes precedence over the OR operator (|).\n\nFor example, consider the query:\n'tag1&(tag2|tag3)'\n\nThis query is interpreted as follows:\ntag1 AND (tag2 OR tag3), and it returns strings that have both \"tag1\" and either \"tag2\" or \"tag3\"\n\nSimilarly, for the query:\n'tag1&tag2|tag3'\n\nThis query is read as follows:\n(tag1 AND tag2) OR tag3, and it returns strings that have both \"tag1\" and \"tag2\" or have \"tag3\"\n"
        explode: false
        in: query
        name: filter[tags][query]
        required: false
        schema:
          example: tag1&tag2|tag3
          minLength: 1
          type: string
        style: form
      - description: The page size limit. If not set, the default value is 150. <br> If set, the minimum value it can take is 150 and the maximum 1000.
        in: query
        name: limit
        schema:
          example: 150
          nullable: true
          type: string
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    description: List of resource string objects.
                    items:
                      additionalProperties: false
                      properties:
                        attributes:
                          additionalProperties: false
                          description: Resource String attributes.
                          properties:
                            appearance_order:
                              description: 'The order that the resource string appears in it''s container.

                                In case of files appearance order is extracted automatically,

                                where in other cases this may be missing

                                '
                              nullable: true
                              type: integer
                            character_limit:
                              description: The maximum translation string character length, excluding variables. Use value 0 to remove the existing character limit.
                              example: 100
                              maximum: 2147483647
                              minimum: 0
                              nullable: true
                              type: integer
                            context:
                              description: 'Additional context added, in order to link the resource string

                                to the environment in which the communication takes

                                place and/or disambiguate resource strings with the same content.

                                Context can be multiple substrings, concatenated with some separator.

                                '
                              example: frontpage,footer,verb
                              type: string
                            datetime_created:
                              description: The date the resource string was created.
                              example: XXXX-XX-XXTXX:XX:XXZ
                              format: date-time
                              type: string
                            developer_comment:
                              description: 'Developer comment gives additional information about the usage of this

                                string and/or technical details relevant to this string.

                                '
                              example: Wrapped in a 30px width div
                              nullable: true
                              type: string
                            instructions:
                              description: Additional translation instructions. Usually provided if the `developer_comment` is not present or not sufficiently clear. The maximum length should be up to 1000 characters.
                              example: Please use causal language for translations.
                              maxLength: 1000
                              nullable: true
                              type: string
                            key:
                              description: 'The identifier of the resource string in it''s container.

                                In cases where two resource strings in the same container share the same key,

                                `context` is also used to disambiguate the identity of each resource string.

                                '
                              example: hello_world
                              type: string
                            metadata_datetime_modified:
                              description: The date the resource string's metadata were last updated. Examples of such attributes are `tags` and `character limit`.
                              example: XXXX-XX-XXTXX:XX:XXZ
                              format: date-time
                              type: string
                            occurrences:
                              description: The occurrences of the resource string in the source code.
                              example: /my_project/templates/frontpage/hello.html:30
                              nullable: true
                              type: string
                            pluralized:
                              description: If the resource string is pluralized or not.
                              type: boolean
                            string_hash:
                              description: The hash of the resource string. This is calculated as the hexadecimal digest on the md5 hash of the concatenation of the key and the context. More info [here](https://help.transifex.com/en/articles/6649327-how-string-hashes-are-calculated).
                              example: 2e354ef120752c67afa1b6855aa80c52
                              type: string
                            strings:
                              additionalProperties: false
                              description: 'Dictionary with the translation content.

                                For pluralized resource strings, the keys should be all the

                                available plural rules for source language, as defined in CLDR,

                                and the values the actual content for each plural rule.


                                For non-pluralized resource strings, only the default plural rule

                                (''other'') is required.

                                '
                              example:
                                one: hello
                                other: world
                              properties:
                                few:
                                  type: string
                                many:
                                  type: string
                                one:
                                  type: string
                                other:
                                  type: string
                                two:
                                  type: string
                                zero:
                                  type: string
                              required:
                              - other
                              type: object
                            strings_datetime_modified:
                              description: The date the resource string's content was last updated.
                              example: XXXX-XX-XXTXX:XX:XXZ
                              format: date-time
                              type: string
                            tags:
                              description: List of tags for the resource string.
                              example:
                              - foo
                              - bar
                              items:
                                type: string
                              type: array
                          required:
                          - appearance_order
                          - key
                          - context
                          - strings
                          - tags
                          - occurrences
                          - developer_comment
                          - instructions
                          - character_limit
                          - pluralized
                          - string_hash
                          - datetime_created
                          - metadata_datetime_modified
                          - strings_datetime_modified
                          type: object
                        id:
                          description: Resource String identifier.
                          example: o:organization_slug:p:project_slug:r:resource_slug:s:2e354ef120752c67afa1b6855aa80c52
                          pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+:r:[a-zA-Z0-9_-]+:s:[0-9a-f]{32}
                          type: string
                        links:
                          additionalProperties: false
                          description: Resource String link.
                          properties:
                            self:
                              description: Resource String details link.
                              example: /resource_strings/o:organization_slug:p:project_slug:r:resource_slug:s:2e354ef120752c67afa1b6855aa80c52
                              type: string
                          required:
                          - self
                          type: object
                        relationships:
                          additionalProperties: false
                          description: Resource String relationships.
                          properties:
                            committer:
                              additionalProperties: false
                              description: User object.
                              properties:
                                data:
                                  description: User id.
                                  properties:
                                    id:
                                      description: User identifier.
                                      example: u:user_1
                                      pattern: ^u:[\w.-]+$
                                      type: string
                                    type:
                                      enum:
                                      - users
                                      type: string
                                  required:
                                  - type
                                  - id
                                  type: object
                                links:
                                  additionalProperties: false
                                  description: User links.
                                  properties:
                                    related:
                                      description: User details link.
                                      example: /users/u:user_1
                                      type: string
                                  required:
                                  - related
                                  type: object
                              required:
                              - links
                              - data
                              type: object
                            language:
                              additionalProperties: false
                              description: Language object.
                              properties:
                                data:
                                  additionalProperties: false
                                  description: Language data container.
                                  properties:
                                    id:
                                      description: Language identifier.
                                      example: l:en_US
                                      pattern: ^l:[a-zA-Z0-9@_.-]+$
                                      type: string
                                    type:
                                      enum:
                                      - languages
                                      type: string
                                  required:
                                  - type
                                  - id
                                  type: object
                                links:
                                  additionalProperties: false
                                  description: Language related link.
                                  properties:
                                    related:
                                      description: Language details link.
                                      example: /languages/l:en_US
                                      type: string
                                  required:
                                  - related
                                  type: object
                              required:
                              - links
                              - data
                              type: object
                            resource:
                              additionalProperties: false
                              description: Resource object.
                              properties:
                                data:
                                  additionalProperties: false
                                  description: Resource data container.
                                  properties:
                                    id:
                                      description: Resource identifier.
                                      example: o:organization_slug:p:project_slug:r:resource_slug
                                      pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+:r:[a-zA-Z0-9_-]+$
                                      type: string
                                    type:
                                      enum:
                                      - resources
                                      type: string
                                  required:
                                  - type
                                  - id
                                  type: object
                                links:
                                  additionalProperties: false
                                  description: Resource related link.
                                  properties:
                                    related:
                                      description: Resource details link.
                                      example: /resources/o:organization_slug:p:project_slug:r:resource_slug
                                      type: string
                                  required:
                                  - related
                                  type: object
                              required:
                              - links
                              - data
                              type: object
                          required:
                          - language
                          - resource
                          - committer
                          type: object
                        type:
                          enum:
                          - resource_strings
                          type: string
                      required:
                      - type
                      - id
                      - attributes
                      - relationships
                      - links
                      type: object
                    type: array
                  links:
                    additionalProperties: false
                    description: Pagination links.
                    properties:
                      next:
                        description: Resource String collection cursor link.
                        example: /resource_strings?filter[resource]=o:organization_slug:p:project_slug:r:resource_slug&page[cursor]=XXX
                        nullable: true
                        type: string
                      previous:
                        description: Resource String collection cursor link.
                        example: /resource_strings?filter[resource]=o:organization_slug:p:project_slug:r:resource_slug&page[cursor]=XXX
                        nullable: true
                        type: string
                      self:
                        description: Resource String details link.
                        example: /resource_strings?filter[resource]=o:organization_slug:p:project_slug:r:resource_slug
                        type: string
                    required:
                    - self
                    - next
                    - previous
                    type: object
                required:
                - links
                - data
                type: object
          description: List of source strings for a given resource.
        '400':
          content:
            application/vnd.api+json:
              schema:
                additionalProperties: false
                properties:
                  errors:
                    items:
                      additionalProperties: false
                      properties:
                        code:
                          example: invalid
                          type: string
                        detail:
                          example: Enter a valid `name` consisting of Unicode letters, numbers, underscores, or hyphens
                          type: string
                        source:
                          anyOf:
                          - properties:
                              pointer:
                                example: /data/attributes/name
                                type: string
                          - properties:
                              parameter:
                                example: ?filter[foo]
                                type: string
                        status:
                          example: '400'
                          type: string
                        title:
                          example: Field `name` is invalid
                          type: string
                      type: object
                    type: array
                type: object
          description: Invalid
        '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:
                      additionalProperties: false
                      properties:
                        code:
                          example: invalid
                          type: string
                        detail:
                          example: Enter a valid `name` consisting o

# --- truncated at 32 KB (239 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/transifex/refs/heads/main/openapi/transifex-resource-strings-api-openapi.yml