openapi: 3.0.1
info:
contact:
email: support@transifex.com
name: Transifex Support
description: "
\n
\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
\n
\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
\n
\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\n"
title: Transifex Activity Reports Resources 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: Represents a resource that holds source strings. Resources belong to a specific project in Transifex.
name: Resources
paths:
/resource_async_merges:
post:
description: 'Merge git based branch
'
requestBody:
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
description: Create resource merge.
properties:
attributes:
additionalProperties: false
description: Resource strings async download attributes
properties:
callback_url:
default: null
description: 'The url that will be called when the processing is completed.
For more details about callback_url you can refer to [Asynchronous Processing](#section/Asynchronous-Processing) section
'
format: uri
nullable: true
type: string
conflict_resolution:
description: Conflict resolution option.
enum:
- USE_HEAD
- USE_BASE
example: USE_HEAD
type: string
force:
default: false
example: false
type: boolean
required:
- conflict_resolution
relationships:
additionalProperties: false
properties:
resource:
additionalProperties: false
description: The resource that will be merged to its parent.
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
required:
- data
type: object
required:
- resource
type: object
type:
enum:
- resource_async_merges
type: string
required:
- type
- attributes
- relationships
type: object
required:
- data
type: object
required: true
responses:
'202':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
conflict_resolution:
enum:
- USE_HEAD
- USE_BASE
example: USE_HEAD
type: string
date_completed:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
nullable: true
type: string
date_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
status:
enum:
- CREATED
- CHANGES_CREATED
- COMPLETED
- HEAD_DELETED
example: CREATED
type: string
required:
- status
- conflict_resolution
- date_created
- date_completed
type: object
id:
example: 4abfc726-6a27-4c33-9d99-e5254c8df748
pattern: ^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
type: string
links:
additionalProperties: false
properties:
self:
example: /resource_strings_async_downloads/4abfc726-6a27-4c33-9d99-e5254c8df748
type: string
required:
- self
type: object
relationships:
additionalProperties: false
properties:
base:
additionalProperties: false
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
required:
- data
type: object
head:
additionalProperties: false
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
required:
- data
type: object
required:
- base
- head
type: object
type:
enum:
- resource_async_merges
type: string
required:
- type
- id
- attributes
- relationships
- links
type: object
required:
- data
type: object
description: Accepted.
headers:
Content-Location:
description: The location of the merge resource job.
required: true
schema:
type: string
'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:
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
'409':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
errors:
items:
additionalProperties: false
properties:
code:
example: conflict
type: string
detail:
example: Value `some_field_value` already exists
type: string
source:
additionalProperties: false
properties:
pointer:
example: /data/attributes/some_field
type: string
type: object
status:
example: '409'
type: string
title:
example: Field `some_field` conflicted
type: string
type: object
type: array
type: object
description: Conflict
'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: Create new resources merge
tags:
- Resources
/resource_async_merges_{resource_async_merge_id}:
parameters:
- description: Format of the resource_async_merge_id should be a UUID.
in: path
name: resource_async_merge_id
required: true
schema:
example: 4abfc726-6a27-4c33-9d99-e5254c8df748
pattern: ^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
type: string
get:
description: "With this endpoint, you can inquire about the status of a resource merge job.\n\n- If the value of the 'status' attribute is 'pending' or 'processing', you\n should check this endpoint again later.\n- If the 'status' is 'failed', the merge has failed to complete.\n- In case the upload job has been successful, you will receive a \"200\"\n"
responses:
'200':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
conflict_resolution:
enum:
- USE_HEAD
- USE_BASE
example: USE_HEAD
type: string
date_completed:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
nullable: true
type: string
date_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
status:
enum:
- CREATED
- CHANGES_CREATED
- COMPLETED
- HEAD_DELETED
example: CREATED
type: string
required:
- status
- conflict_resolution
- date_created
- date_completed
type: object
id:
example: 4abfc726-6a27-4c33-9d99-e5254c8df748
pattern: ^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
type: string
links:
additionalProperties: false
properties:
self:
example: /resource_strings_async_downloads/4abfc726-6a27-4c33-9d99-e5254c8df748
type: string
required:
- self
type: object
relationships:
additionalProperties: false
properties:
base:
additionalProperties: false
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
required:
- data
type: object
head:
additionalProperties: false
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
required:
- data
type: object
required:
- base
- head
type: object
type:
enum:
- resource_async_merges
type: string
required:
- type
- id
- attributes
- relationships
- 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
'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: Get resource merge status
tags:
- Resources
/resources:
get:
description: Get a list of all resources (in a specific project).
parameters:
- description: Filter results by a project
in: query
name: filter[project]
required: true
schema:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[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[slug]
required: false
schema:
pattern: ^[a-zA-Z0-9._-]+$
type: string
- in: query
name: filter[name]
required: false
schema:
type: string
responses:
'200':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
description: List of resource objects.
items:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
datetime_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
datetime_modified:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
i18n_options:
description: Any options that determine how the resource will be parsed and compiled
example:
allow_duplicate_strings: true
nullable: true
properties:
allow_duplicate_strings:
description: If true, identical strings found in the resource will be parsed as separate strings; otherwise, identical strings will be considered as instances of the same string. Available in "HTML" i18n type resources.
type: boolean
type: object
i18n_version:
description: File format type version.
example: 1
type: number
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
slug:
description: Slug of the resource
example: Slug Name
type: string
string_count:
description: Number of strings in the resource content.
example: 0
type: number
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
word_count:
description: Number of words in the resource content.
example: 0
type: number
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
required:
- slug
- name
- i18n_version
- priority
- accept_translations
- categories
- i18n_options
- mp4_url
- ogg_url
- webm_url
- youtube_url
- string_count
- word_count
- datetime_created
- datetime_modified
type: object
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
links:
additionalProperties: false
description: Resource links.
properties:
self:
description: Resource details link.
example: /resources/o:organization_slug:p:project_slug:r:resource_slug
type: string
required:
- self
type: object
relationships:
additionalProperties: false
description: Resource relationships.
properties:
i18n_format:
additionalProperties: false
description: I18n format object.
properties:
data:
additionalProperties: false
description: I18n Format identifier object.
properties:
id:
example: YML_KEY
pattern: ^[A-Z0-9@_-]+$
type: string
type:
enum:
- i18n_formats
type: string
required:
- type
- id
type: object
required:
- data
type: object
project:
additionalProperties: false
description: Project object.
properties:
data:
additionalProperties: false
description: Project data container.
properties:
id:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+$
type: string
type:
enum:
- projects
type: string
required:
- type
- id
type: object
links:
additionalProperties: false
description: Project links.
properties:
related:
description: Project details link.
example: /projects/o:organization_slug:p:project_slug
type: string
required:
- related
type: object
required:
- links
- data
type: object
required:
- project
type: object
type:
enum:
- resources
type: string
required:
- type
- id
- attributes
- relationships
- links
type: object
type: array
links:
additionalProperties: false
description: Pagination links.
properties:
next:
description: Resource results cursor link.
example: /resources?filter[project]=o:organization_slug:p:project_slug&page[cursor]=XXX
nullable: true
type: string
previous:
description: Resource results cursor link.
example: /resources?filter[project]=o:organization_slug:p:project_slug&page[cursor]=XXX
nullable: true
type: string
self:
description: Resource results cursor link.
example: /resources?filter[project]=o:organization_slug:p:project_slug
type: string
required:
- self
- next
- previous
type: object
required:
- links
- data
type: object
description: List of resources for a given project.
'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
'409':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
errors:
items:
additionalProperties: false
properties:
code:
example: conflict
type: string
detail:
example: Value `some_field_value` already exists
type: string
source:
additionalProperties: false
properties:
pointer:
example: /data/attributes/some_field
type: string
type: object
status:
example: '409'
type: string
title:
example: Field `some_field` conflicted
type: string
type: object
type: array
type: object
description: Conflict
'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 resources
tags:
- Resources
x-released: true
post:
description: 'Making a POST request to this endpoint creates a resource without content.
This step is performed synchronously so you don''t have to verify that
resource creation succeeded afterwards. In order to upload content, see the
[/resource_strings_async_uploads](#tag/Resource-Strings/paths/~1resource_strings_async_uploads/post)
endpoint.
'
requestBody:
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
description: Create resource body request details.
properties:
attributes:
additionalProperties: false
description: Resource attributes.
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
i18n_options:
description: Any options that determine how the resource will be parsed and compiled
example:
allow_duplicate_strings: true
nullable: true
properties:
allow_duplicate_strings:
description: If true, identical strings found in the resource will be parsed as separate strings; otherwise, identical strings will be considered as instances of the same string. Available in "HTML" i18n type resources.
type: boolean
type: object
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
slug:
description: Slug of the resource
example: Slug Name
type: string
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
required:
- name
type: object
relationships:
additionalProperties: false
description: Resource parent relationships.
properties:
base:
additionalProperties: false
description: The base `resource` that this `resource` is a branch of.
nullable: true
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
type: object
i18n_format:
additionalProperties: false
description: The `i18n_format` of the resource to create.
properties:
data:
additionalProperties: false
description: I18n Format identifier object.
properties:
id:
example: YML_KEY
pattern: ^[A-Z0-9@_-]+$
type: string
type:
enum:
- i18n_formats
type: string
required:
- type
- id
type: object
required:
- data
type: object
project:
additionalProperties: false
description: The `project` resource should belong to.
properties:
data:
additionalProperties: false
description: Project data container.
properties:
id:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+$
type: string
type:
enum:
- projects
type: string
required:
- type
- id
type: object
required:
- data
type: object
required:
- project
- i18n_format
type: object
type:
enum:
- resources
type: string
required:
- type
- attributes
- relationships
type: object
required:
- data
type: object
required: true
responses:
'201':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
datetime_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
datetime_modified:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
i18n_options:
description: Any options that determine how the resource will be parsed and compiled
example:
allow_duplicate_strings: true
nullable: true
properties:
allow_duplicate_strings:
description: If true, identical strings found in the resource will be parsed as separate strings; otherwise, identical strings will be considered as instances of the same string. Available in "HTML" i18n type resources.
type: boolean
type: object
i18n_version:
description: File format type version.
example: 1
type: number
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
slug:
description: Slug of the resource
example: Slug Name
type: string
string_count:
description: Number of strings in the resource content.
example: 0
type: number
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
word_count:
description: Number of words in the resource content.
example: 0
type: number
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
required:
- slug
- name
- i18n_version
- priority
- accept_translations
- categories
- i18n_options
- mp4_url
- ogg_url
- webm_url
- youtube_url
- string_count
- word_count
- datetime_created
- datetime_modified
type: object
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
links:
additionalProperties: false
description: Resource links.
properties:
self:
description: Resource details link.
example: /resources/o:organization_slug:p:project_slug:r:resource_slug
type: string
required:
- self
type: object
relationships:
additionalProperties: false
description: Resource relationships.
properties:
i18n_format:
additionalProperties: false
description: I18n format object.
properties:
data:
additionalProperties: false
description: I18n Format identifier object.
properties:
id:
example: YML_KEY
pattern: ^[A-Z0-9@_-]+$
type: string
type:
enum:
- i18n_formats
type: string
required:
- type
- id
type: object
required:
- data
type: object
project:
additionalProperties: false
description: Project object.
properties:
data:
additionalProperties: false
description: Project data container.
properties:
id:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+$
type: string
type:
enum:
- projects
type: string
required:
- type
- id
type: object
links:
additionalProperties: false
description: Project links.
properties:
related:
description: Project details link.
example: /projects/o:organization_slug:p:project_slug
type: string
required:
- related
type: object
required:
- links
- data
type: object
required:
- project
type: object
type:
enum:
- resources
type: string
required:
- type
- id
- attributes
- relationships
- links
type: object
required:
- data
type: object
description: Created.
headers:
Location:
required: true
schema:
description: Resource details link.
example: /resources/o:organization_slug:p:project_slug:r:resource_slug
type: string
'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:
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
'409':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
errors:
items:
additionalProperties: false
properties:
code:
example: conflict
type: string
detail:
example: Value `some_field_value` already exists
type: string
source:
additionalProperties: false
properties:
pointer:
example: /data/attributes/some_field
type: string
type: object
status:
example: '409'
type: string
title:
example: Field `some_field` conflicted
type: string
type: object
type: array
type: object
description: Conflict
'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: Create new resource
tags:
- Resources
x-released: true
/resources/{resource_id}:
parameters:
- description: Format of composite id should be `o:organization_slug:p:project_slug:r:resource_slug`.
in: path
name: resource_id
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
delete:
description: Delete a resource of a project.
responses:
'204':
description: No Content.
'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: Delete resource
tags:
- Resources
x-released: true
get:
description: Get details of a specific resource.
responses:
'200':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
datetime_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
datetime_modified:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
i18n_options:
description: Any options that determine how the resource will be parsed and compiled
example:
allow_duplicate_strings: true
nullable: true
properties:
allow_duplicate_strings:
description: If true, identical strings found in the resource will be parsed as separate strings; otherwise, identical strings will be considered as instances of the same string. Available in "HTML" i18n type resources.
type: boolean
type: object
i18n_version:
description: File format type version.
example: 1
type: number
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
slug:
description: Slug of the resource
example: Slug Name
type: string
string_count:
description: Number of strings in the resource content.
example: 0
type: number
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
word_count:
description: Number of words in the resource content.
example: 0
type: number
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
required:
- slug
- name
- i18n_version
- priority
- accept_translations
- categories
- i18n_options
- mp4_url
- ogg_url
- webm_url
- youtube_url
- string_count
- word_count
- datetime_created
- datetime_modified
type: object
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
links:
additionalProperties: false
description: Resource links.
properties:
self:
description: Resource details link.
example: /resources/o:organization_slug:p:project_slug:r:resource_slug
type: string
required:
- self
type: object
relationships:
additionalProperties: false
description: Resource relationships.
properties:
i18n_format:
additionalProperties: false
description: I18n format object.
properties:
data:
additionalProperties: false
description: I18n Format identifier object.
properties:
id:
example: YML_KEY
pattern: ^[A-Z0-9@_-]+$
type: string
type:
enum:
- i18n_formats
type: string
required:
- type
- id
type: object
required:
- data
type: object
project:
additionalProperties: false
description: Project object.
properties:
data:
additionalProperties: false
description: Project data container.
properties:
id:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+$
type: string
type:
enum:
- projects
type: string
required:
- type
- id
type: object
links:
additionalProperties: false
description: Project links.
properties:
related:
description: Project details link.
example: /projects/o:organization_slug:p:project_slug
type: string
required:
- related
type: object
required:
- links
- data
type: object
required:
- project
type: object
type:
enum:
- resources
type: string
required:
- type
- id
- attributes
- relationships
- 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 resource details
tags:
- Resources
x-released: true
patch:
description: Update details of a resource.
requestBody:
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
data:
additionalProperties: false
description: Update resource body request details.
properties:
attributes:
additionalProperties: false
description: Resource multable attributes
minProperties: 1
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
type: object
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
relationships:
additionalProperties: false
description: Resource modifiable relationships.
properties:
base:
additionalProperties: false
description: The base `resource` that this `resource` is a branch of.
nullable: true
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
type: object
type: object
type:
enum:
- resources
type: string
required:
- type
- id
type: object
required:
- data
type: object
required: true
responses:
'200':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
attributes:
additionalProperties: false
properties:
accept_translations:
description: Whether resource should accept translations or not
example: true
type: boolean
categories:
description: List of categories to associate similar resources
example:
- category_1
- category_2
items:
type: string
type: array
datetime_created:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
datetime_modified:
example: XXXX-XX-XXTXX:XX:XXZ
format: date-time
type: string
i18n_options:
description: Any options that determine how the resource will be parsed and compiled
example:
allow_duplicate_strings: true
nullable: true
properties:
allow_duplicate_strings:
description: If true, identical strings found in the resource will be parsed as separate strings; otherwise, identical strings will be considered as instances of the same string. Available in "HTML" i18n type resources.
type: boolean
type: object
i18n_version:
description: File format type version.
example: 1
type: number
mp4_url:
description: A (public) url to provide an MP4 video file for subtitles translation
example: https://some.host.net/some_mp4_url
nullable: true
type: string
name:
description: Name of the resource
example: Resource Name
type: string
ogg_url:
description: A (public) url to provide an OGG video file for subtitles translation
example: https://some.host.net/some_ogg_url
nullable: true
type: string
priority:
enum:
- normal
- high
- urgent
example: normal
type: string
slug:
description: Slug of the resource
example: Slug Name
type: string
string_count:
description: Number of strings in the resource content.
example: 0
type: number
webm_url:
description: A (public) url to provide a WEMB video file for subtitles translation
example: https://some.host.net/some_webm_url
nullable: true
type: string
word_count:
description: Number of words in the resource content.
example: 0
type: number
youtube_url:
description: A (public) YouTube url to provide a video file for subtitles translation
example: https://www.youtube.com/
nullable: true
type: string
required:
- slug
- name
- i18n_version
- priority
- accept_translations
- categories
- i18n_options
- mp4_url
- ogg_url
- webm_url
- youtube_url
- string_count
- word_count
- datetime_created
- datetime_modified
type: object
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
links:
additionalProperties: false
description: Resource links.
properties:
self:
description: Resource details link.
example: /resources/o:organization_slug:p:project_slug:r:resource_slug
type: string
required:
- self
type: object
relationships:
additionalProperties: false
description: Resource relationships.
properties:
i18n_format:
additionalProperties: false
description: I18n format object.
properties:
data:
additionalProperties: false
description: I18n Format identifier object.
properties:
id:
example: YML_KEY
pattern: ^[A-Z0-9@_-]+$
type: string
type:
enum:
- i18n_formats
type: string
required:
- type
- id
type: object
required:
- data
type: object
project:
additionalProperties: false
description: Project object.
properties:
data:
additionalProperties: false
description: Project data container.
properties:
id:
description: Project identifier.
example: o:organization_slug:p:project_slug
pattern: ^o:[a-zA-Z0-9._-]+:p:[a-zA-Z0-9_-]+$
type: string
type:
enum:
- projects
type: string
required:
- type
- id
type: object
links:
additionalProperties: false
description: Project links.
properties:
related:
description: Project details link.
example: /projects/o:organization_slug:p:project_slug
type: string
required:
- related
type: object
required:
- links
- data
type: object
required:
- project
type: object
type:
enum:
- resources
type: string
required:
- type
- id
- attributes
- relationships
- links
type: object
description: Successful Response.
'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:
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
'409':
content:
application/vnd.api+json:
schema:
additionalProperties: false
properties:
errors:
items:
additionalProperties: false
properties:
code:
example: conflict
type: string
detail:
example: Value `some_field_value` already exists
type: string
source:
additionalProperties: false
properties:
pointer:
example: /data/attributes/some_field
type: string
type: object
status:
example: '409'
type: string
title:
example: Field `some_field` conflicted
type: string
type: object
type: array
type: object
description: Conflict
'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: Update resource
tags:
- Resources
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