github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/doc/compiled.json (about) 1 { 2 "openapi": "3.0.3", 3 "info": { 4 "title": "Phrase Strings API Reference", 5 "version": "2.0.0", 6 "description": "Phrase Strings is a translation management platform for software projects. You can collaborate on language file translation with your team or order translations through our platform. The API allows you to import locale files, download locale files, tag keys or interact in other ways with the localization data stored in Phrase Strings for your account.\n\n## API Endpoints\n\n### EU data center\n```\nhttps://api.phrase.com/v2/\n```\n\n### US data center\n\n```\nhttps://api.us.app.phrase.com/v2\n```\n\nThe API is only accessible via HTTPS and the current version is <code>v2</code>, which results in a base URL like: <code>https://api.phrase.com/v2/</code> depending on the datacenter.\n\n\n## Usage\n\n[curl](http://curl.haxx.se/) is used primarily to send requests to Phrase Strings in the examples. On most you'll find a second variant using the [Phrase Strings API v2 client](https://phrase.com/cli/) that might be more convenient to handle. For further information check its [documentation](https://support.phrase.com/hc/en-us/articles/5808300599068).\n\n## Use of HTTP Verbs\n\nPhrase Strings API v2 tries to use the appropriate HTTP verb for accessing each endpoint according to REST specification where possible:\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">Verb</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\">GET</td>\n <td class=\"basic-table__cell\">Retrieve one or multiple resources</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">POST</td>\n <td class=\"basic-table__cell\">Create a resource</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">PUT</td>\n <td class=\"basic-table__cell\">Update a resource</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">PATCH</td>\n <td class=\"basic-table__cell\">Update a resource (partially)</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">DELETE</td>\n <td class=\"basic-table__cell\">Delete a resource</td>\n </tr>\n </tbody>\n </table>\n</div>\n\n\n## Identification via User-Agent\n\nYou must include the User-Agent header with the name of your application or project. It might be a good idea to include some sort of contact information as well, so that we can get in touch if necessary (e.g. to warn you about Rate-Limiting or badly formed requests). Examples of excellent User-Agent headers:\n\n```\nUser-Agent: Example Mobile App (example@phrase.com)\nUser-Agent: ACME Inc Python Client (http://example.com/contact)\n```\n\nIf you don't send this header, you will receive a response with 400 Bad Request.\n\n\n## Lists\n\nWhen you request a list of resources, the API will typically only return an array of resources including their most important attributes. For a detailed representation of the resource you should request its detailed representation.\n\nLists are usually [paginated](#pagination).\n\n\n## Parameters\n\nMany endpoints support additional parameters, e.g. for pagination. When passing them in a GET request you can send them as HTTP query string parameters:\n\n```\n$ curl -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects?page=2\"\n```\n\nWhen performing a POST, PUT, PATCH or DELETE request, we recommend sending parameters that are not already included in the URL, as JSON body:\n\n```\n$ curl -H 'Content-Type: application/json' -d '{\"name\":\"My new project\"}' -u EMAIL_OR_ACCESS_TOKEN https://api.phrase.com/v2/projects\n```\n\nEncoding parameters as JSON means better support for types (boolean, integer) and usually better readability. Don't forget to set the correct Content-Type for your request.\n\n*The Content-Type header is omitted in some of the following examples for better readbility.*\n\n\n## Errors\n\n\n### Request Errors\n\nIf a request contains invalid JSON or is missing a required parameter (besides resource attributes), the status `400 Bad Request` is returned:\n\n```\n{\n \"message\": \"JSON could not be parsed\"\n}\n```\n\n\n### Validation Errors\n\nWhen the validation for a resource fails, the status `422 Unprocessable Entity` is returned, along with information on the affected fields:\n\n```\n{\n \"message\": \"Validation Failed\",\n \"errors\": [\n {\n \"resource\": \"Project\",\n \"field\": \"name\",\n \"message\": \"can't be blank\"\n }\n ]\n}\n```\n\n\n## Date Format\n\nTimes and dates are returned and expected in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) date format:\n\n```\nYYYY-MM-DDTHH:MM:SSZ\n```\n\nInstead of 'Z' for UTC time zone you can specify your time zone's locale offset using the following notation:\n\n```\nYYYY-MM-DDTHH:MM:SS¬±hh:mm\n```\n\nExample for CET (1 hour behind UTC):\n\n```\n2015-03-31T13:00+01:00\n```\n\nPlease note that in HTTP headers, we will use the appropriate recommended date formats instead of ISO 8601.\n\n\n## Authentication\n\nThere are two different ways to authenticate when performing API requests:\n\n* E-Mail and password\n* Oauth Access Token\n\n\n### E-Mail and password\n\nTo get started easily, you can use HTTP Basic authentication with your email and password:\n\n```\n$ curl -u username:password \"https://api.phrase.com/v2/projects\"\n```\n\n\n### OAuth via Access Tokens\n\nYou can create and manage access tokens in your [profile settings](https://app.phrase.com/settings/oauth_access_tokens) in Translation Center or via the [Authorizations API](#tag--Authorizations).\n\nSimply pass the access token as the username of your request:\n\n```\n$ curl -u ACCESS_TOKEN: \"https://api.phrase.com/v2/projects\"\n```\n\nor send the access token via the `Authorization` header field:\n\n```\n$ curl -H \"Authorization: token ACCESS_TOKEN\" https://api.phrase.com/v2/projects\n```\n\n#### Send via parameter\n\nAs JSONP (and other) requests cannot send HTTP Basic Auth credentials, a special query parameter `access_token` can be used:\n\n```\ncurl \"https://api.phrase.com/v2/projects?access_token=ACCESS_TOKEN\"\n```\n\nYou should only use this transport method if sending the authentication via header or Basic authentication is not possible.\n\n### Two-Factor-Authentication\n\nUsers with Two-Factor-Authentication enabled have to send a valid token along their request with certain authentication methods (such as Basic authentication). The necessity of a Two-Factor-Authentication token is indicated by the `X-PhraseApp-OTP: required; :MFA-type` header in the response. The `:MFA-type`field indicates the source of the token, e.g. `app` (refers to your Authenticator application):\n\n```\nX-PhraseApp-OTP: required; app\n```\n\nTo provide a Two-Factor-Authentication token you can simply send it in the header of the request:\n\n```\ncurl -H \"X-PhraseApp-OTP: MFA-TOKEN\" -u EMAIL https://api.phrase.com/v2/projects\n```\n\nSince Two-Factor-Authentication tokens usually expire quickly, we recommend using an alternative authentication method such as OAuth access tokens.\n\n### Multiple Accounts\n\nSome endpoints require the account ID to be specified if the authenticated user is a member of multiple accounts. You can find the eight-digit account ID inside <a href=\"https://app.phrase.com/\" target=\"_blank\">Translation Center</a> by switching to the desired account and then visiting the account details page. If required, you can specify the account just like a normal parameter within the request.\n\n## Pagination\n\nEndpoints that return a list or resources will usually return paginated results and include 25 items by default. To access further pages, use the `page` parameter:\n\n```\n$ curl -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects?page=2\"\n```\n\nSome endpoints also allow a custom page size by using the `per_page` parameter:\n\n```\n$ curl -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects?page=2&per_page=50\"\n```\n\nUnless specified otherwise in the description of the respective endpoint, `per_page` allows you to specify a page size up to 100 items.\n\n\n## Link-Headers\n\nWe provide you with pagination URLs in the [Link Header field](http://tools.ietf.org/html/rfc5988). Make use of this information to avoid building pagination URLs yourself.\n\n```\nLink: <https://api.phrase.com/v2/projects?page=1>; rel=\"first\", <https://api.phrase.com/v2/projects?page=3>; rel=\"prev\", <https://api.phrase.com/v2/projects?page=5>; rel=\"next\", <https://api.phrase.com/v2/projects?page=9>; rel=\"last\"\n```\n\nPossible `rel` values are:\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">Value</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\">next</td>\n <td class=\"basic-table__cell\">URL of the next page of results</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">last</td>\n <td class=\"basic-table__cell\">URL of the last page of results</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">first</td>\n <td class=\"basic-table__cell\">URL of the first page of results</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\">prev</td>\n <td class=\"basic-table__cell\">URL of the previous page of results</td>\n </tr>\n </tbody>\n </table>\n</div>\n\n## Rate Limiting\n\nAll API endpoints are subject to rate limiting to ensure good performance for all customers. The rate limit is calculated per user:\n\n* 1000 requests per 5 minutes\n* 4 concurrent (parallel) requests\n\nFor your convenience we send information on the current rate limit within the response headers:\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">Header</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\" style=\"white-space: nowrap;\"><code>X-Rate-Limit-Limit</code></td>\n <td class=\"basic-table__cell\">Number of max requests allowed in the current time period</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\" style=\"white-space: nowrap;\"><code>X-Rate-Limit-Remaining</code></td>\n <td class=\"basic-table__cell\">Number of remaining requests in the current time period</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\" style=\"white-space: nowrap;\"><code>X-Rate-Limit-Reset</code></td>\n <td class=\"basic-table__cell\">Timestamp of end of current time period as UNIX timestamp</td>\n </tr>\n </tbody>\n </table>\n</div>\n\nIf you should run into the rate limit, you will receive the HTTP status code `429: Too many requests`.\n\nIf you should need higher rate limits, [contact us](https://phrase.com/contact).\n\n\n## Conditional GET requests / HTTP Caching\n\n<div class=\"alert alert-info\"><p><i>Note: Conditional GET requests are currently only supported for <a href=\"#locales_download\">locales#download</a> and <a href=\"#translations_index\">translations#index</a></i></p></div>\n\nWe will return an ETag or Last-Modified header with most GET requests. When you request a resource we recommend to store this value and submit them on subsequent requests as `If-Modified-Since` and `If-None-Match` headers. If the resource has not changed in the meantime, we will return the status `304 Not Modified` instead of rendering and returning the resource again. In most cases this is less time-consuming and makes your application/integration faster.\n\nPlease note that all conditional requests that return a response with status 304 don't count against your rate limits.\n\n```\n$ curl -i -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects/1234abcd1234abcdefefabcd1234efab/locales/en/download\"\nHTTP/1.1 200 OK\nETag: \"abcd1234abcdefefabcd1234efab1234\"\nLast-Modified: Wed, 28 Jan 2015 15:31:30 UTC\nStatus: 200 OK\n\n$ curl -i -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects/1234abcd1234abcdefefabcd1234efab/locales/en/download\" -H 'If-None-Match: \"abcd1234abcdefefabcd1234efab1234\"'\nHTTP/1.1 304 Not Modified\nETag: \"abcd1234abcdefefabcd1234efab1234\"\nLast-Modified: Wed, 28 Jan 2015 15:31:30 UTC\nStatus: 304 Not Modified\n\n$ curl -i -u EMAIL_OR_ACCESS_TOKEN \"https://api.phrase.com/v2/projects/1234abcd1234abcdefefabcd1234efab/locales/en/download\" -H \"If-Modified-Since: Wed, 28 Jan 2015 15:31:30 UTC\"\nHTTP/1.1 304 Not Modified\nLast-Modified: Wed, 28 Jan 2015 15:31:30 UTC\nStatus: 304 Not Modified\n```\n\n\n## JSONP\n\nThe Phrase Strings API supports [JSONP](http://en.wikipedia.org/wiki/JSONP) for all GET requests in order to deal with cross-domain request issues. Just send a `?callback` parameter along with the request to specify the Javascript function name to be called with the response content:\n\n```\n$ curl \"https://api.phrase.com/v2/projects?callback=myFunction\"\n```\n\nThe response will include the normal output for that endpoint, along with a `meta` section including header data:\n\n```\nmyFunction({\n {\n \"meta\": {\n \"status\": 200,\n ...\n },\n \"data\": [\n {\n \"id\": \"1234abcd1234abc1234abcd1234abc\"\n ...\n }\n ]\n }\n});\n```\n\nTo authenticate a JSONP request, you can send a valid [access token](#overview--oauth-via-access-tokens) as the `?access_token` parameter along the request:\n\n```\n$ curl \"https://api.phrase.com/v2/projects?callback=myFunction&access_token=ACCESS-TOKEN\"\n```\n\n<div class=\"section resource\">\n\n<div id=\"examples\" class=\"resource__section resource__section--head\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n## Usage examples\n\nLearn how to work more efficiently with Phrase Strings API v2 with these\nworkflow-oriented examples.\n\n</div>\n\n</div>\n\n<div id=\"examples_excluded_translations\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find excluded translations with a certain content\n\n GET /v2/projects/:project_id/translations\n\nList excluded translations for the given project which start with the\nterm `PhraseApp`.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>sort</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Sort criteria. Can be one of: key_name, created_at, updated_at.<br />\nDefault: key_name</td>\n</tr>\n<tr class=\"even\">\n<td><code>order</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Order direction. Can be one of: asc, desc.<br />\nDefault: asc</td>\n</tr>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to find translations by content (including wildcards).<br />\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i>\n<br />\nThe following qualifiers are supported in the query:<br />\n\n<ul>\n<li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>tags:XYZ</code> for tags on the translation</li>\n<li><code>unverified:{true|false}</code> for verification status</li>\n<li><code>reviewed:{true|false}</code> for reviewed status</li>\n<li><code>excluded:{true|false}</code> for exclusion status</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/translations?sort=updated_at&order=desc&q=PhraseApp*%20excluded:true\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase translations list \\\n--project_id <project_id> \\\n--sort updated_at \\\n--order desc \\\n--query 'PhraseApp* excluded:true' \\\n--access_token <token>\n```\n\n</div>\n\n\n</div>\n\n</div>\n\n<div id=\"examples_unverified_translations\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find unverified translations with a certain content\n\n GET /v2/projects/:project_id/translations\n\nList unverified translations for the given project which start with the\nterm `PhraseApp` and are not verified.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>sort</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Sort criteria. Can be one of: key_name, created_at, updated_at.<br />\nDefault: key_name</td>\n</tr>\n<tr class=\"even\">\n<td><code>order</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Order direction. Can be one of: asc, desc.<br />\nDefault: asc</td>\n</tr>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to find translations by content (including wildcards).<br />\n<br><i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i>\n<br />\nThe following qualifiers are supported in the query:<br />\n\n<ul>\n<li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>tags:XYZ</code> for tags on the translation</li>\n<li><code>unverified:{true|false}</code> for verification status</li>\n<li><code>reviewed:{true|false}</code> for reviewed status</li>\n<li><code>excluded:{true|false}</code> for exclusion status</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/translations?sort=updated_at&order=desc&q=PhraseApp*%20unverified:true\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase translations list \\\n--project_id <project_id> \\\n--sort updated_at \\\n--order desc \\\n--query 'PhraseApp* unverified:true' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_verify_translations\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Verify translations selected by query\n\n PATCH /v2/projects/:project_id/translations/verify\n\nVerify all translations that are matching the query `my dog`.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to find translations by content (including wildcards).<br />\n<br><i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i>\n<br />\nThe following qualifiers are supported in the query:<br />\n\n<ul>\n<li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>tags:XYZ</code> for tags on the translation</li>\n<li><code>unverified:{true|false}</code> for verification status</li>\n<li><code>reviewed:{true|false}</code> for reviewed status</li>\n<li><code>excluded:{true|false}</code> for exclusion status</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n<tr class=\"even\">\n<td><code>sort</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Sort criteria. Can be one of: key_name, created_at, updated_at.<br />\nDefault: key_name</td>\n</tr>\n<tr class=\"odd\">\n<td><code>order</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Order direction. Can be one of: asc, desc.<br />\nDefault: asc</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/translations/verify\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"q\":\"my dog unverified:true\",\"sort\":\"updated_at\",\"order\":\"desc\"}' \\\n -H 'Content-Type: application/json'\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase translations verify \\\n--project_id <project_id> \\\n--data '{\"query\":\"\"my dog unverified:true\"\", \"sort\":\"updated_at\", \"order\":\"desc\"}' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_updated_keys\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find recently updated keys\n\n GET /v2/projects/:project_id/keys\n\nFind updated keys with with the `updated_at` qualifier like\n`updated_at:>=2013-02-21T00:00:00Z`. This example returns keys that have\nbeen updated on or after 2013-02-21.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>sort</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Sort by field. Can be one of: name, created_at, updated_at.<br />\nDefault: name</td>\n</tr>\n<tr class=\"even\">\n<td><code>order</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Order direction. Can be one of: asc, desc.<br />\nDefault: asc</td>\n</tr>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n<tr class=\"even\">\n<td><code>locale_id</code></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys?sort=updated_at&order=desc&q=updated_at:%3E=2013-02-21T00:00:00Z&locale_id=abcd1234abcd1234abcd1234abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys list \\\n--project_id <project_id> \\\n--sort updated_at \\\n--order desc \\\n--query \"updated_at:>=2013-02-21T00:00:00Z\" \\\n--locale_id abcd1234abcd1234abcd1234abcd1234 \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_tagged_keys\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find keys with a certain tag\n\n GET /v2/projects/:project_id/keys\n\nKeys with certain tags can be filtered with the qualifier `tags:`.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys?q=tags:admin\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys list \\\n--project_id <project_id> \\\n--query \"tags:admin\" \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_tag\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Add tags to collection of keys\n\n PATCH /v2/projects/:project_id/keys/tag\n\nAdd the tags `landing-page` and `release-1.2` to all keys that start\nwith `dog` and are translated in the locale\n`abcd1234abcd1234abcd1234abcd1234`.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n<tr class=\"even\">\n<td><code>tags</code></td>\n<td><code>string</code></td>\n<td>Tag or comma-separated list of tags to add to the matching collection of keys</td>\n</tr>\n<tr class=\"odd\">\n<td><code>locale_id</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>id</code></td>\n<td>Locale used to determine the translation state of a key when filtering for untranslated or translated keys.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys/tag\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"q\":\"dog* translated:true\",\"tags\":\"landing-page,release-1.2\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys tag \\\n--project_id <project_id> \\\n--data '{\"query\":\"'dog* translated:true'\", \"tags\":\"landing-page,release-1.2\", \"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_untag\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Remove tags from collection of keys\n\n PATCH /v2/projects/:project_id/keys/untag\n\nRemove the tags `landing-page` and `release-1.2` from all keys that\nstart with `dog` and are translated in the locale\n`abcd1234abcd1234abcd1234abcd1234`.\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n<tr class=\"even\">\n<td><code>tags</code></td>\n<td><code>string</code></td>\n<td>Tag or comma-separated list of tags to remove from the matching collection of keys</td>\n</tr>\n<tr class=\"odd\">\n<td><code>locale_id</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>id</code></td>\n<td>Locale used to determine the translation state of a key when filtering for untranslated or translated keys.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys/untag\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"q\":\"dog* translated:true\",\"tags\":\"landing-page,release-1.2\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys untag \\\n--project_id <project_id> \\\n--data '{\"query\":\"'dog* translated:true'\", \"tags\":\"landing-page,release-1.2\", \"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_broad_match\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find keys with broad text match\n\n GET /v2/projects/:project_id/keys\n\nExample query `my dog`\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n#### Matches\n\n<span class=\"result-match\">**My dog** is lazy\n</span> <span class=\"result-match\">**my dog** is lazy\n</span> <span class=\"result-match\">angry **dog** in **my** house</span>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys?q=my%20dog\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys list \\\n--project_id <project_id> \\\n--query \"my dog\" \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_exact_match\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find keys with exact text match\n\n GET /v2/projects/:project_id/keys\n\nExample query `\"my dog is lazy\"` (note backslashes before any whitespace\ncharacter in the example query)\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n#### Matches\n\n~~My dog is lazy~~\n<span class=\"result-match\">**my dog is lazy**\n</span> ~~angry dog in my house~~\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys?q=name:my%5C%20dog%5C%20is%5C%20lazy\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys list \\\n--project_id <project_id> \\\n--query \"name:my\\ dog\\ is\\ lazy\" \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_wildcard_match\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Find keys with wildcard character matching\n\n GET /v2/projects/:project_id/keys\n\nExample query `*dog is*`\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n<table>\n<colgroup>\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n<col style=\"width: 33%\" />\n</colgroup>\n<thead>\n<tr class=\"header\">\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"odd\">\n<td><code>q</code><br />\n<span class=\"small\">optional</span></td>\n<td><code>string</code></td>\n<td>Specify a query to do broad search for keys by name (including wildcards).<br />\n<br />\nThe following qualifiers are also supported in the search term:<br />\n\n<ul>\n<li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n<li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n<li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n<li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n<li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n<li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n<li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n<li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.</td>\n</tr>\n</tbody>\n</table>\n\n</div>\n\n#### Matches\n\n<span class=\"result-match\">My **dog is** lazy\n</span> <span class=\"result-match\">my **dog is** lazy\n</span> ~~angry dog in my house~~\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/keys?q=*dog%20is*\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase keys list \\\n--project_id <project_id> \\\n--query '*dog is*' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n<div id=\"examples_xlsx_upload\" class=\"resource__section\" data-target=\"page.section\">\n\n<div class=\"resource__copy\">\n\n### Upload an Excel file with several translations\n\n POST /v2/projects/:project_id/uploads\n\nSuppose you have an excel file where the 'A' column contains the key\nnames, the 'B' column contains English translations, the 'C' column\ncontains German translations and the 'D' column contains comments.\nFurthermore, the actual content starts in the second row, since the\nfirst row is reserved for a header. You can upload this file and import\nall translations at once\\!\n\n#### Parameters\n\n<div class=\"table-responsive\">\n\n| Name | Type | Description |\n| ----------------------------------- | -------- | ----------------------------------------------------------- |\n| `file` | `file` | File to be imported |\n| `file_format` | `string` | File format. Auto-detected when possible and not specified. |\n| `locale_mapping[en]` | `string` | Name of the column containing translations for locale en. |\n| `locale_mapping[de]` | `string` | Name of the column containing translations for locale de. |\n| `format_options[comment_column]` | `string` | Name of the column containing descriptions for keys. |\n| `format_options[tag_column]` | `string` | Name of the column containing tags for keys. |\n| `format_options[key_name_column]` | `string` | Name of the column containing the names of the keys. |\n| `format_options[first_content_row]` | `string` | Name of the first row containing actual translations. |\n\n</div>\n\n</div>\n\n<div class=\"resource__code\">\n\n#### Example Request\n\n<div class=\"code-section\" data-target=\"technology-switch.example\" data-technology=\"curl\">\n\n``` language-bash\ncurl \"https://api.phrase.com/v2/projects/:project_id/uploads\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F file=@/path/to/my/file.xlsx \\\n -F file_format=xlsx \\\n -F locale_mapping[en]=B \\\n -F locale_mapping[de]=C \\\n -F format_options[comment_column]=D \\\n -F format_options[tag_column]=E \\\n -F format_options[key_name_column]=A \\\n -F format_options[first_content_row]=2\n```\n\n</div>\n\n<div class=\"code-section hidden\" data-target=\"technology-switch.example\" data-technology=\"cli v2\">\n\n``` language-bash\nphrase uploads create \\\n--project_id <project_id> \\\n--file /path/to/my/file.xlsx \\\n--file_format xlsx \\\n--locale_id abcd1234cdef1234abcd1234cdef1234 \\\n--tags awesome-feature,needs-proofreading \\\n--locale_mapping '{\"en\": \"B\", \"de\": \"C\"}' \\\n--format_options '{\"comment_column\": \"D\", \"tag_column\": \"E\", \"key_name_column\": \"A\", \"first_content_row\": \"2\"}' \\\n--access_token <token>\n```\n\n</div>\n\n</div>\n\n</div>\n\n</div>\n", 7 "contact": { 8 "name": "Phrase Support", 9 "url": "https://developers.phrase.com/api/", 10 "email": "support@phrase.com" 11 }, 12 "x-logo": { 13 "url": "https://developers.phrase.com/images/phrase-logo.svg", 14 "backgroundColor": "#03eab3", 15 "altText": "Phrase Strings" 16 }, 17 "termsOfService": "https://phrase.com/terms/", 18 "license": { 19 "name": "MIT", 20 "url": "https://choosealicense.com/licenses/mit/" 21 } 22 }, 23 "servers": [ 24 { 25 "url": "https://api.phrase.com/v2" 26 } 27 ], 28 "security": [ 29 { 30 "Token": [] 31 }, 32 { 33 "Basic": [] 34 } 35 ], 36 "tags": [ 37 { 38 "name": "Accounts" 39 }, 40 { 41 "name": "Authorizations", 42 "description": "The endpoints provided by the Authorizations API are **only accessible via Basic authentication with email and password**.\n\nWhen creating a new authorization, the new access token for this authorization will be returned in the immediate response but not later, due to security reasons. When accessing authorizations later, you will only see the last eight chars of the token in plain text (`token_last_eight`) and the SHA256 digest of the token for reference (`hashed_token`).\n\nFor instructions on how authorization in general works, see our [Auth Guide](#overview--authentication).\n\n### Scopes\n\nWhen creating or updating an OAuth authorization, you can define a list of scopes to limit the access that can be performed by that authorization.\n\n#### Available Scopes\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">Scope</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\"><code>read</code></td>\n <td class=\"basic-table__cell\">Read projects, locales, keys, translations, orders</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>write</code></td>\n <td class=\"basic-table__cell\">Write projects, locales, keys, translations but not orders</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>orders.create</code></td>\n <td class=\"basic-table__cell\">Create and confirm orders</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>team.manage</code></td>\n <td class=\"basic-table__cell\">Manage invitations and members</td>\n </tr>\n </tbody>\n </table>\n</div>\n" 43 }, 44 { 45 "name": "Bitbucket Sync" 46 }, 47 { 48 "name": "Blacklisted Keys" 49 }, 50 { 51 "name": "Branches", 52 "description": "### Branch creation\n\nBranches will be created asynchronously. State of branch creation is returned as state.\n\n#### Available States\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">State</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\"><code>initialized</code></td>\n <td class=\"basic-table__cell\">Data received.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>processing</code></td>\n <td class=\"basic-table__cell\">Branch is currently creating.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>success</code></td>\n <td class=\"basic-table__cell\">Branch was created successfully</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>error</code></td>\n <td class=\"basic-table__cell\">Branch creation failed.</td>\n </tr>\n </tbody>\n </table>\n</div>\n" 53 }, 54 { 55 "name": "Comments" 56 }, 57 { 58 "name": "Comment Reactions" 59 }, 60 { 61 "name": "Comment Replies" 62 }, 63 { 64 "name": "Custom Metadata" 65 }, 66 { 67 "name": "Distributions" 68 }, 69 { 70 "name": "Documents" 71 }, 72 { 73 "name": "Figma Attachments" 74 }, 75 { 76 "name": "Formats" 77 }, 78 { 79 "name": "GitHub Sync" 80 }, 81 { 82 "name": "GitLab Sync" 83 }, 84 { 85 "name": "Glossaries" 86 }, 87 { 88 "name": "Glossary Terms" 89 }, 90 { 91 "name": "Glossary Term Translations" 92 }, 93 { 94 "name": "ICU" 95 }, 96 { 97 "name": "Invitations", 98 "description": "With the invitation endpoint you can [manage and invite users](https://support.phrase.com/hc/en-us/articles/5709742418716) to Phrase Strings via API. A user can have the role Manager, Developer or Translator each with its own access rights. Developers and translators need resources like projects and locales assigned in order to access them.\n" 99 }, 100 { 101 "name": "Job Comments" 102 }, 103 { 104 "name": "Job Locales" 105 }, 106 { 107 "name": "Job Template Locales" 108 }, 109 { 110 "name": "Job Templates" 111 }, 112 { 113 "name": "Jobs" 114 }, 115 { 116 "name": "Keys" 117 }, 118 { 119 "name": "Locales" 120 }, 121 { 122 "name": "Members", 123 "description": "With the members endpoints you can do basic [team and user management](https://support.phrase.com/hc/en-us/articles/5709742418716) via API. A user can have the role Manager, Developer or Translator each with its own access rights. Developers and translators need resources like projects and locales assigned in order to access them.\n" 124 }, 125 { 126 "name": "Notifications" 127 }, 128 { 129 "name": "Notification Groups" 130 }, 131 { 132 "name": "Orders", 133 "description": "### List of categories [TextMaster]\n\nWhen ordering translations from TextMaster, you need to specify a category ID along with your order. See this list for information on the category ID and their equivalent description.\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">Category ID</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr><td class=\"basic-table__cell\">C001</td><td class=\"basic-table__cell\">Agriculture</td></tr>\n <tr><td class=\"basic-table__cell\">C002</td><td class=\"basic-table__cell\">Aerospace</td></tr>\n <tr><td class=\"basic-table__cell\">C003</td><td class=\"basic-table__cell\">Animals/Pets/Plants</td></tr>\n <tr><td class=\"basic-table__cell\">C004</td><td class=\"basic-table__cell\">Arts/Culture/Literature</td></tr>\n <tr><td class=\"basic-table__cell\">C005</td><td class=\"basic-table__cell\">Automotive/Transportation</td></tr>\n <tr><td class=\"basic-table__cell\">C006</td><td class=\"basic-table__cell\">Computers/Technology/Software</td></tr>\n <tr><td class=\"basic-table__cell\">C007</td><td class=\"basic-table__cell\">Telecom</td></tr>\n <tr><td class=\"basic-table__cell\">C008</td><td class=\"basic-table__cell\">Real Estate/Construction/Building</td></tr>\n <tr><td class=\"basic-table__cell\">C009</td><td class=\"basic-table__cell\">Consumer Goods</td></tr>\n <tr><td class=\"basic-table__cell\">C010</td><td class=\"basic-table__cell\">Education</td></tr>\n <tr><td class=\"basic-table__cell\">C011</td><td class=\"basic-table__cell\">Entertainment</td></tr>\n <tr><td class=\"basic-table__cell\">C012</td><td class=\"basic-table__cell\">Ecology/Environment</td></tr>\n <tr><td class=\"basic-table__cell\">C013</td><td class=\"basic-table__cell\">Health/Biotechnology/Pharma</td></tr>\n <tr><td class=\"basic-table__cell\">C014</td><td class=\"basic-table__cell\">Internet</td></tr>\n <tr><td class=\"basic-table__cell\">C015</td><td class=\"basic-table__cell\">Policy/Government/Public</td></tr>\n <tr><td class=\"basic-table__cell\">C016</td><td class=\"basic-table__cell\">Publishing/Media/Communication</td></tr>\n <tr><td class=\"basic-table__cell\">C017</td><td class=\"basic-table__cell\">Religion</td></tr>\n <tr><td class=\"basic-table__cell\">C018</td><td class=\"basic-table__cell\">Food/Beverages</td></tr>\n <tr><td class=\"basic-table__cell\">C019</td><td class=\"basic-table__cell\">Retail</td></tr>\n <tr><td class=\"basic-table__cell\">C020</td><td class=\"basic-table__cell\">Fashion/Luxury/Textiles</td></tr>\n <tr><td class=\"basic-table__cell\">C021</td><td class=\"basic-table__cell\">Travel/Tourism</td></tr>\n <tr><td class=\"basic-table__cell\">C022</td><td class=\"basic-table__cell\">Natural Resources/Energy</td></tr>\n <tr><td class=\"basic-table__cell\">C023</td><td class=\"basic-table__cell\">Banking/Financial Services/Insurance</td></tr>\n <tr><td class=\"basic-table__cell\">C024</td><td class=\"basic-table__cell\">Legal Affairs/Tax/Law</td></tr>\n <tr><td class=\"basic-table__cell\">C025</td><td class=\"basic-table__cell\">Raw Materials/Industrial Goods</td></tr>\n <tr><td class=\"basic-table__cell\">C026</td><td class=\"basic-table__cell\">Lifestyle/Leisure/Hobbies</td></tr>\n <tr><td class=\"basic-table__cell\">C027</td><td class=\"basic-table__cell\">Sports</td></tr>\n <tr><td class=\"basic-table__cell\">C028</td><td class=\"basic-table__cell\">Home/Family/Friends/Children</td></tr>\n <tr><td class=\"basic-table__cell\">C029</td><td class=\"basic-table__cell\">Economy/Financial Markets</td></tr>\n <tr><td class=\"basic-table__cell\">C030</td><td class=\"basic-table__cell\">Science</td></tr>\n <tr><td class=\"basic-table__cell\">C031</td><td class=\"basic-table__cell\">Human Resources/Employment</td></tr>\n <tr><td class=\"basic-table__cell\">C032</td><td class=\"basic-table__cell\">Adult (Pornography, Violence, etc.)</td></tr>\n </tbody>\n </table>\n</div>\n" 134 }, 135 { 136 "name": "Organization Job Template Locales" 137 }, 138 { 139 "name": "Organization Job Templates" 140 }, 141 { 142 "name": "Projects" 143 }, 144 { 145 "name": "Quality" 146 }, 147 { 148 "name": "Releases" 149 }, 150 { 151 "name": "Repo Syncs", 152 "description": "The Repo Syncs API allows you to synchronize your Phrase projects with your code repositories.\nYou can import translations from your repository to Phrase and export translations from Phrase to your repository.\n" 153 }, 154 { 155 "name": "Reports" 156 }, 157 { 158 "name": "Search" 159 }, 160 { 161 "name": "Screenshot Markers" 162 }, 163 { 164 "name": "Screenshots" 165 }, 166 { 167 "name": "Spaces" 168 }, 169 { 170 "name": "Style guides" 171 }, 172 { 173 "name": "Tags" 174 }, 175 { 176 "name": "Teams" 177 }, 178 { 179 "name": "Translations" 180 }, 181 { 182 "name": "Uploads", 183 "description": "### Formats\n\nWe support all common localization file formats. For a detailed overview, see our [Format Guide](https://support.phrase.com/hc/en-us/sections/6111343326364).\n\n### Processing\n\nUploads will be processed asynchronously and thus the data might not be imported yet although the upload is completed. Therefore we recommend to evaluate the returned <code>state</code> field for information on the import progress.\n\n#### Available States\n\n<div class=\"table-responsive\">\n <table class=\"basic-table\">\n <thead>\n <tr class=\"basic-table__row basic-table__row--header\">\n <th class=\"basic-table__cell basic-table__cell--header\">State</th>\n <th class=\"basic-table__cell basic-table__cell--header\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td class=\"basic-table__cell\"><code>initialized</code></td>\n <td class=\"basic-table__cell\">Data received.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>waiting_for_preview</code></td>\n <td class=\"basic-table__cell\">Upload is waiting for preview to be finished.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>waiting</code></td>\n <td class=\"basic-table__cell\">Upload is waiting for processing.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>processing</code></td>\n <td class=\"basic-table__cell\">Upload is being processed, data is currently imported.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>success</code></td>\n <td class=\"basic-table__cell\">Upload is complete and all data is imported.</td>\n </tr>\n <tr>\n <td class=\"basic-table__cell\"><code>error</code></td>\n <td class=\"basic-table__cell\">Upload or import process failed.</td>\n </tr>\n </tbody>\n </table>\n</div>\n" 184 }, 185 { 186 "name": "Users" 187 }, 188 { 189 "name": "Variables" 190 }, 191 { 192 "name": "Versions / History" 193 }, 194 { 195 "name": "Webhooks" 196 }, 197 { 198 "name": "Webhook Deliveries" 199 } 200 ], 201 "x-tagGroups": [ 202 { 203 "name": "Core Resources", 204 "tags": [ 205 "Projects", 206 "Locales", 207 "Keys", 208 "Translations", 209 "Uploads", 210 "Tags", 211 "Custom Metadata Properties", 212 "Blacklisted Keys", 213 "Versions / History" 214 ] 215 }, 216 { 217 "name": "Workflows", 218 "tags": [ 219 "Spaces", 220 "Jobs", 221 "Job Comments", 222 "Job Locales", 223 "Job Templates", 224 "Job Template Locales", 225 "Organization Job Templates", 226 "Organization Job Template Locales", 227 "Comments", 228 "Comment Reactions", 229 "Comment Replies", 230 "Branches" 231 ] 232 }, 233 { 234 "name": "Quality", 235 "tags": [ 236 "Glossaries", 237 "Glossary Terms", 238 "Glossary Term Translations" 239 ] 240 }, 241 { 242 "name": "Integrations", 243 "tags": [ 244 "Bitbucket Sync", 245 "GitHub Sync", 246 "GitLab Sync", 247 "Webhooks", 248 "Distributions", 249 "Releases" 250 ] 251 }, 252 { 253 "name": "Ordering", 254 "tags": [ 255 "Orders", 256 "Style guides" 257 ] 258 }, 259 { 260 "name": "User management", 261 "tags": [ 262 "Authorizations", 263 "Users", 264 "Accounts", 265 "Members", 266 "Invitations" 267 ] 268 }, 269 { 270 "name": "Screenshots", 271 "tags": [ 272 "Screenshots", 273 "Screenshot Markers" 274 ] 275 }, 276 { 277 "name": "Misc", 278 "tags": [ 279 "Formats" 280 ] 281 }, 282 { 283 "name": "Figma Attachments", 284 "tags": [ 285 "Figma attachments", 286 "Key's Figma attachments" 287 ] 288 } 289 ], 290 "components": { 291 "securitySchemes": { 292 "Token": { 293 "type": "apiKey", 294 "in": "header", 295 "name": "Authorization", 296 "description": "Enter your token in the format `token TOKEN`" 297 }, 298 "Basic": { 299 "type": "http", 300 "scheme": "basic" 301 } 302 }, 303 "headers": { 304 "Link": { 305 "description": "Links to related resources, in the format defined by\n[RFC 5988](https://tools.ietf.org/html/rfc5988#section-5).\nThis will include a link with relation type `next` to the\nnext page, if there is a next page.", 306 "schema": { 307 "type": "string" 308 } 309 }, 310 "X-PhraseApp-OTP": { 311 "description": "The number of allowed requests in the current period", 312 "schema": { 313 "type": "string" 314 } 315 }, 316 "X-Rate-Limit-Limit": { 317 "description": "The number of allowed requests in the current period", 318 "schema": { 319 "type": "integer" 320 } 321 }, 322 "X-Rate-Limit-Remaining": { 323 "description": "The number of remaining requests in the current period", 324 "schema": { 325 "type": "integer" 326 } 327 }, 328 "X-Rate-Limit-Reset": { 329 "description": "The number of seconds left in the current period", 330 "schema": { 331 "type": "integer" 332 } 333 }, 334 "Pagination": { 335 "description": "Pagination details for navigating through a collection of resources, provided in JSON format.", 336 "schema": { 337 "type": "object", 338 "properties": { 339 "total_count": { 340 "description": "Total count of items in the collection.", 341 "type": "integer", 342 "example": 10 343 }, 344 "total_pages_count": { 345 "description": "Total number of pages available for the collection.", 346 "type": "integer", 347 "example": 2 348 }, 349 "current_page": { 350 "description": "The current page number.", 351 "type": "integer", 352 "example": 1 353 }, 354 "current_per_page": { 355 "description": "Number of items currently displayed per page.", 356 "type": "integer", 357 "example": 5 358 }, 359 "previous_page": { 360 "description": "Page number of the previous page, if available.", 361 "type": "integer" 362 }, 363 "next_page": { 364 "description": "Page number of the next page, if available.", 365 "type": "integer", 366 "example": 2 367 } 368 } 369 } 370 } 371 }, 372 "schemas": { 373 "authorization": { 374 "type": "object", 375 "title": "authorization", 376 "properties": { 377 "id": { 378 "type": "string" 379 }, 380 "note": { 381 "type": "string" 382 }, 383 "token_last_eight": { 384 "type": "string" 385 }, 386 "hashed_token": { 387 "type": "string" 388 }, 389 "scopes": { 390 "type": "array", 391 "items": { 392 "type": "string" 393 } 394 }, 395 "expires_at": { 396 "type": "string", 397 "format": "date-time" 398 }, 399 "created_at": { 400 "type": "string", 401 "format": "date-time" 402 }, 403 "updated_at": { 404 "type": "string", 405 "format": "date-time" 406 } 407 }, 408 "example": { 409 "id": "abcd1234cdef1234abcd1234cdef1234", 410 "note": "My Deploy Script", 411 "token_last_eight": "1234abcd", 412 "hashed_token": "abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234", 413 "scopes": [ 414 "read" 415 ], 416 "expires_at": "2015-03-30T09:52:53Z", 417 "created_at": "2015-01-28T09:52:53Z", 418 "updated_at": "2015-01-28T09:52:53Z" 419 } 420 }, 421 "authorization_with_token": { 422 "allOf": [ 423 { 424 "$ref": "#/components/schemas/authorization" 425 }, 426 { 427 "type": "object", 428 "title": "authorization_with_token", 429 "properties": { 430 "token": { 431 "type": "string" 432 } 433 }, 434 "example": { 435 "token": "abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234" 436 } 437 } 438 ] 439 }, 440 "bitbucket_sync": { 441 "type": "object", 442 "title": "bitbucket_sync", 443 "properties": { 444 "id": { 445 "type": "string" 446 }, 447 "repository_name": { 448 "type": "string" 449 }, 450 "last_export_to_bitbucket_at": { 451 "type": "string", 452 "format": "date-time" 453 }, 454 "last_import_from_bitbucket_at": { 455 "type": "string", 456 "format": "date-time" 457 }, 458 "valid_phraseapp_yaml": { 459 "type": "boolean" 460 }, 461 "phraseapp_projects": { 462 "type": "array", 463 "items": { 464 "$ref": "#/components/schemas/project_short" 465 } 466 } 467 }, 468 "example": { 469 "id": "aad1ar91-0331-4181-b90p-4crdnv0bd812", 470 "repository_name": "some-repository", 471 "last_export_to_bitbucket_at": "2015-01-28T09:52:53Z", 472 "last_import_from_bitbucket_at": "2015-01-28T09:52:53Z", 473 "valid_phraseapp_yaml": true, 474 "phraseapp_projects": [ 475 { 476 "id": "abcd1234cdef1234abcd1234cdef1234", 477 "name": "My Android Project", 478 "main_format": "xml", 479 "created_at": "2015-01-28T09:52:53Z", 480 "updated_at": "2015-01-28T09:52:53Z" 481 } 482 ] 483 } 484 }, 485 "bitbucket_sync_export_response": { 486 "type": "object", 487 "title": "bitbucket_sync_export_response", 488 "properties": { 489 "status_path": { 490 "type": "string" 491 } 492 }, 493 "example": { 494 "status_path": "https://bitbucket.sync.phraseapp.com/export_to_bitbucket_status" 495 } 496 }, 497 "gitlab_sync": { 498 "type": "object", 499 "title": "gitlab_sync", 500 "properties": { 501 "id": { 502 "type": "string" 503 }, 504 "project_id": { 505 "type": "string" 506 }, 507 "gitlab_project_id": { 508 "type": "integer" 509 }, 510 "gitlab_branch_name": { 511 "type": "string" 512 }, 513 "auto_import": { 514 "type": "boolean" 515 }, 516 "auto_import_secret": { 517 "type": "string" 518 }, 519 "auto_import_url": { 520 "type": "string" 521 }, 522 "self_hosted_api_url": { 523 "type": "string" 524 }, 525 "last_exported_at": { 526 "type": "string", 527 "format": "date-time" 528 }, 529 "last_imported_at": { 530 "type": "string", 531 "format": "date-time" 532 }, 533 "last_status": { 534 "type": "string" 535 } 536 }, 537 "example": { 538 "id": "abcd1234cdef1234abcd1234cdef1234", 539 "project_id": "ft5yufdh1234cdef1234abc5d12d4cdef123", 540 "gitlab_project_id": 18188930, 541 "gitlab_branch_name": "master", 542 "auto_import": true, 543 "auto_import_secret": "import_secret", 544 "auto_import_url": "import_url", 545 "self_hosted_api_url": "www.example.com/api/v4", 546 "last_exported_at": "2015-01-28T12:55:14.000+00:00", 547 "last_imported_at": "2015-01-28T12:55:14.000+00:00", 548 "last_status": "success" 549 } 550 }, 551 "gitlab_sync_export": { 552 "type": "object", 553 "title": "gitlab_sync_export", 554 "properties": { 555 "merge_request_id": { 556 "type": "integer" 557 }, 558 "merge_request_web_url": { 559 "type": "string" 560 } 561 }, 562 "example": { 563 "merge_request_id": 1234, 564 "merge_request_web_url": "https://gitlab.com/account/project/-/merge_requests/1234" 565 } 566 }, 567 "gitlab_sync_history": { 568 "type": "object", 569 "title": "gitlab_sync_history", 570 "properties": { 571 "status": { 572 "type": "string" 573 }, 574 "action": { 575 "type": "string" 576 }, 577 "errors": { 578 "type": "array", 579 "items": { 580 "type": "object", 581 "properties": { 582 "error": { 583 "type": "string" 584 }, 585 "message": { 586 "type": "string" 587 } 588 } 589 } 590 }, 591 "date": { 592 "type": "string", 593 "format": "date-time" 594 }, 595 "details": { 596 "type": "object" 597 } 598 }, 599 "example": { 600 "type": "history", 601 "attributes": { 602 "status": "success", 603 "action": "import", 604 "errors": [ 605 { 606 "error": "error type", 607 "message": "can't be blank" 608 } 609 ], 610 "date": "2015-01-28T12:55:14.000+00:00", 611 "details": { 612 "auto_import": false 613 } 614 } 615 } 616 }, 617 "blacklisted_key": { 618 "type": "object", 619 "title": "blacklisted_key", 620 "properties": { 621 "id": { 622 "type": "string" 623 }, 624 "name": { 625 "type": "string" 626 }, 627 "created_at": { 628 "type": "string", 629 "format": "date-time" 630 }, 631 "updated_at": { 632 "type": "string", 633 "format": "date-time" 634 } 635 }, 636 "example": { 637 "id": "abcd1234cdef1234abcd1234cdef1234", 638 "name": "date.formats.*", 639 "created_at": "2015-01-28T09:52:53Z", 640 "updated_at": "2015-01-28T09:52:53Z" 641 } 642 }, 643 "comment": { 644 "type": "object", 645 "title": "comment", 646 "properties": { 647 "id": { 648 "type": "string" 649 }, 650 "message": { 651 "type": "string" 652 }, 653 "has_replies": { 654 "type": "boolean" 655 }, 656 "user": { 657 "$ref": "#/components/schemas/user_preview" 658 }, 659 "created_at": { 660 "type": "string", 661 "format": "date-time" 662 }, 663 "updated_at": { 664 "type": "string", 665 "format": "date-time" 666 }, 667 "mentioned_users": { 668 "type": "array", 669 "items": { 670 "$ref": "#/components/schemas/user_preview" 671 } 672 }, 673 "locales": { 674 "type": "array", 675 "items": { 676 "$ref": "#/components/schemas/locale_preview" 677 } 678 } 679 }, 680 "example": { 681 "id": "abcd1234cdef1234abcd1234cdef1234", 682 "message": "Some message...", 683 "has_replies": true, 684 "user": { 685 "id": "abcd1234cdef1234abcd1234cdef1234", 686 "username": "joe.doe", 687 "name": "Joe Doe" 688 }, 689 "created_at": "2015-01-28T09:52:53Z", 690 "updated_at": "2015-01-28T09:52:53Z", 691 "locales": [ 692 { 693 "id": "abcd1234cdef1234abcd1234cdef1234", 694 "name": "English", 695 "code": "en-GB" 696 } 697 ] 698 } 699 }, 700 "comment_reaction": { 701 "type": "object", 702 "title": "comment_reaction", 703 "properties": { 704 "id": { 705 "type": "string" 706 }, 707 "emoji": { 708 "type": "string" 709 }, 710 "created_at": { 711 "type": "string", 712 "format": "date-time" 713 }, 714 "updated_at": { 715 "type": "string", 716 "format": "date-time" 717 }, 718 "comment": { 719 "$ref": "#/components/schemas/comment" 720 }, 721 "user": { 722 "$ref": "#/components/schemas/user_preview" 723 } 724 }, 725 "example": { 726 "id": "abcd1234cdef1234abcd1234cdef1234", 727 "emoji": "🔥", 728 "created_at": "2015-01-28T09:52:53Z", 729 "updated_at": "2015-01-28T09:52:53Z", 730 "comment": { 731 "id": "abcd1234cdef1234abcd1234cdef1234", 732 "message": "Some comment...", 733 "name": "Joe Doe" 734 }, 735 "user": { 736 "id": "abcd1234cdef1234abcd1234cdef1234", 737 "username": "joe.doe", 738 "name": "Joe Doe" 739 } 740 } 741 }, 742 "custom_metadata_property": { 743 "type": "object", 744 "title": "custom_metadata_property", 745 "properties": { 746 "id": { 747 "type": "string" 748 }, 749 "name": { 750 "type": "string" 751 }, 752 "description": { 753 "type": "string" 754 }, 755 "data_type": { 756 "$ref": "#/components/schemas/custom_metadata_data_type" 757 }, 758 "user": { 759 "$ref": "#/components/schemas/user_preview" 760 }, 761 "projects": { 762 "type": "array", 763 "items": { 764 "$ref": "#/components/schemas/project_short" 765 } 766 }, 767 "value_options": { 768 "type": "array", 769 "items": { 770 "type": "string" 771 } 772 }, 773 "created_at": { 774 "type": "string", 775 "format": "date-time" 776 }, 777 "updated_at": { 778 "type": "string", 779 "format": "date-time" 780 } 781 }, 782 "example": { 783 "id": "abcd1234cdef1234abcd1234cdef1234", 784 "name": "Nuts", 785 "description": "A healthy snack for all ages", 786 "data_type": "multi_select", 787 "user": { 788 "id": "abcd1234cdef1234abcd1234cdef1234", 789 "username": "joe.doe", 790 "name": "Joe Doe" 791 }, 792 "created_at": "2015-01-28T09:52:53Z", 793 "updated_at": "2015-01-28T09:52:53Z", 794 "projects": [ 795 { 796 "id": "abcd1234cdef1234abcd1234cdef1234", 797 "name": "My Android Project", 798 "main_format": "xml", 799 "created_at": "2015-01-28T09:52:53Z", 800 "updated_at": "2015-01-28T09:52:53Z" 801 } 802 ], 803 "value_options": [ 804 "apple", 805 "banana", 806 "coconut" 807 ] 808 } 809 }, 810 "custom_metadata_data_type": { 811 "type": "string", 812 "description": "data type of the property", 813 "enum": [ 814 "boolean", 815 "date", 816 "link", 817 "multi_select", 818 "number", 819 "single_select", 820 "string", 821 "text" 822 ], 823 "example": "string" 824 }, 825 "key_preview": { 826 "type": "object", 827 "title": "key_preview", 828 "properties": { 829 "id": { 830 "type": "string" 831 }, 832 "name": { 833 "type": "string" 834 }, 835 "plural": { 836 "type": "boolean" 837 } 838 }, 839 "example": null 840 }, 841 "affected_count": { 842 "type": "object", 843 "title": "affected_count", 844 "properties": { 845 "records_affected": { 846 "type": "integer" 847 } 848 }, 849 "example": { 850 "records_affected": 96 851 } 852 }, 853 "account": { 854 "type": "object", 855 "title": "account", 856 "properties": { 857 "id": { 858 "type": "string" 859 }, 860 "name": { 861 "type": "string" 862 }, 863 "slug": { 864 "type": "string" 865 }, 866 "company": { 867 "type": "string" 868 }, 869 "created_at": { 870 "type": "string", 871 "format": "date-time" 872 }, 873 "updated_at": { 874 "type": "string", 875 "format": "date-time" 876 }, 877 "company_logo_url": { 878 "type": "string" 879 } 880 }, 881 "example": { 882 "id": "abcd1234", 883 "name": "Company Account", 884 "slug": "company_account", 885 "company": "My Awesome Company", 886 "created_at": "2015-01-28T09:52:53Z", 887 "updated_at": "2015-01-28T09:52:53Z", 888 "company_logo_url": "http://assets.example.com/company_logo.png" 889 } 890 }, 891 "account_details": { 892 "allOf": [ 893 { 894 "$ref": "#/components/schemas/account" 895 }, 896 { 897 "type": "object", 898 "title": "account_details", 899 "properties": { 900 "subscription": { 901 "type": "object", 902 "title": "subscription", 903 "properties": { 904 "is_current": { 905 "type": "boolean" 906 }, 907 "trial_expired": { 908 "type": "boolean" 909 } 910 }, 911 "example": { 912 "is_current": true, 913 "trial_expired": false 914 } 915 }, 916 "slug": { 917 "type": "string" 918 } 919 }, 920 "example": { 921 "slug": "company-account", 922 "subscription": "subscription" 923 } 924 } 925 ] 926 }, 927 "member": { 928 "type": "object", 929 "title": "member", 930 "properties": { 931 "id": { 932 "type": "string" 933 }, 934 "email": { 935 "type": "string" 936 }, 937 "username": { 938 "type": "string" 939 }, 940 "created_at": { 941 "type": "string", 942 "format": "date-time" 943 }, 944 "last_activity_at": { 945 "type": "string", 946 "format": "date-time" 947 }, 948 "role": { 949 "type": "string" 950 }, 951 "projects": { 952 "type": "array", 953 "items": { 954 "$ref": "#/components/schemas/project_locales" 955 } 956 }, 957 "permissions": { 958 "type": "object" 959 }, 960 "default_locale_codes": { 961 "type": "array", 962 "items": { 963 "type": "string" 964 } 965 }, 966 "teams": { 967 "type": "array", 968 "items": { 969 "$ref": "#/components/schemas/team_short" 970 } 971 }, 972 "spaces": { 973 "type": "array", 974 "items": { 975 "type": "object", 976 "properties": { 977 "id": { 978 "type": "string" 979 }, 980 "name": { 981 "type": "string" 982 }, 983 "created_at": { 984 "type": "string", 985 "format": "date-time" 986 }, 987 "updated_at": { 988 "type": "string", 989 "format": "date-time" 990 }, 991 "projects_count": { 992 "type": "integer" 993 } 994 } 995 } 996 } 997 }, 998 "example": { 999 "id": "acbdacbdacbdacbdacbdacbd", 1000 "email": "foo@bar.com", 1001 "username": "myname", 1002 "created_at": "2020-12-07T12:56:21Z", 1003 "last_activity_at": "2020-12-09T12:56:21Z", 1004 "role": "Manager", 1005 "projects": [ 1006 { 1007 "id": "abcd1234cdef1234abcd1234cdef1234", 1008 "name": "My Android Project", 1009 "main_format": "xml", 1010 "created_at": "2015-01-28T09:52:53Z", 1011 "updated_at": "2015-01-28T09:52:53Z", 1012 "locales": [ 1013 { 1014 "id": "abcd1234cdef1234abcd1234cdef1234", 1015 "name": "English", 1016 "code": "en-Gb" 1017 } 1018 ] 1019 } 1020 ], 1021 "permissions": [ 1022 { 1023 "create_upload": true, 1024 "review_translations": true 1025 } 1026 ], 1027 "default_locale_codes": [ 1028 "en", 1029 "fi" 1030 ], 1031 "teams": [ 1032 { 1033 "id": "04d36d845576b9d494d05e0b70fe813c", 1034 "name": "Team 1", 1035 "created_at": "2020-12-07T12:56:21Z", 1036 "updated_at": "2020-12-07T12:56:21Z" 1037 } 1038 ], 1039 "spaces": [ 1040 { 1041 "id": "04d36d845576b9d494d05e0b70fe813b", 1042 "name": "Space2", 1043 "created_at": "2020-12-07T12:56:21Z", 1044 "updated_at": "2020-12-07T12:56:21Z", 1045 "projects_count": 1 1046 } 1047 ] 1048 } 1049 }, 1050 "member_project_detail": { 1051 "type": "object", 1052 "title": "member_project_detail", 1053 "properties": { 1054 "id": { 1055 "type": "string" 1056 }, 1057 "email": { 1058 "type": "string" 1059 }, 1060 "username": { 1061 "type": "string" 1062 }, 1063 "role": { 1064 "type": "string" 1065 }, 1066 "projects": { 1067 "type": "array", 1068 "items": { 1069 "$ref": "#/components/schemas/project_locales" 1070 } 1071 }, 1072 "permissions": { 1073 "type": "object" 1074 }, 1075 "locale_ids": { 1076 "type": "array", 1077 "items": { 1078 "type": "string" 1079 } 1080 }, 1081 "default_locale_codes": { 1082 "type": "array", 1083 "items": { 1084 "type": "string" 1085 } 1086 }, 1087 "spaces": { 1088 "type": "array", 1089 "items": { 1090 "type": "object", 1091 "properties": { 1092 "id": { 1093 "type": "string" 1094 }, 1095 "name": { 1096 "type": "string" 1097 }, 1098 "created_at": { 1099 "type": "string", 1100 "format": "date-time" 1101 }, 1102 "updated_at": { 1103 "type": "string", 1104 "format": "date-time" 1105 }, 1106 "projects_count": { 1107 "type": "integer" 1108 } 1109 } 1110 } 1111 }, 1112 "project_roles": { 1113 "type": "array", 1114 "items": { 1115 "type": "object", 1116 "properties": { 1117 "project_id": { 1118 "type": "string" 1119 }, 1120 "role": { 1121 "type": "string" 1122 } 1123 } 1124 } 1125 } 1126 }, 1127 "example": { 1128 "id": "acbdacbdacbdacbdacbdacbd", 1129 "email": "foo@bar.com", 1130 "username": "myname", 1131 "role": "Manager", 1132 "projects": [ 1133 { 1134 "id": "abcd1234cdef1234abcd1234cdef1234", 1135 "name": "My Android Project", 1136 "main_format": "xml", 1137 "created_at": "2015-01-28T09:52:53Z", 1138 "updated_at": "2015-01-28T09:52:53Z", 1139 "locales": [ 1140 { 1141 "id": "abcd1234cdef1234abcd1234cdef1234", 1142 "name": "English", 1143 "code": "en-Gb" 1144 } 1145 ] 1146 } 1147 ], 1148 "permissions": [ 1149 { 1150 "create_upload": true, 1151 "review_translations": true 1152 } 1153 ], 1154 "locale_ids": [ 1155 "abcd1234abcd1234abcd1234", 1156 "abcd1234abcd1234abcd1235" 1157 ], 1158 "default_locale_codes": [ 1159 "en", 1160 "fi" 1161 ], 1162 "spaces": [ 1163 { 1164 "id": "04d36d845576b9d494d05e0b70fe813b", 1165 "name": "Space2", 1166 "created_at": "2020-12-07T12:56:21Z", 1167 "updated_at": "2020-12-07T12:56:21Z", 1168 "projects_count": 1 1169 } 1170 ], 1171 "project_roles": [ 1172 { 1173 "project_id": "abcd1234cdef1234abcd1234cdef1234", 1174 "role": "Developer" 1175 } 1176 ] 1177 } 1178 }, 1179 "invitation": { 1180 "type": "object", 1181 "title": "invitation", 1182 "properties": { 1183 "id": { 1184 "type": "string" 1185 }, 1186 "email": { 1187 "type": "string" 1188 }, 1189 "role": { 1190 "type": "string" 1191 }, 1192 "state": { 1193 "type": "string" 1194 }, 1195 "projects": { 1196 "type": "array", 1197 "items": { 1198 "$ref": "#/components/schemas/project_short" 1199 } 1200 }, 1201 "locales": { 1202 "type": "array", 1203 "items": { 1204 "$ref": "#/components/schemas/locale_preview" 1205 } 1206 }, 1207 "teams": { 1208 "type": "array", 1209 "items": { 1210 "$ref": "#/components/schemas/team_short" 1211 } 1212 }, 1213 "default_locale_codes": { 1214 "type": "array", 1215 "items": { 1216 "type": "string" 1217 } 1218 }, 1219 "permissions": { 1220 "type": "object" 1221 }, 1222 "locale_ids": { 1223 "type": "array", 1224 "items": { 1225 "type": "string" 1226 } 1227 }, 1228 "created_at": { 1229 "type": "string", 1230 "format": "date-time" 1231 }, 1232 "updated_at": { 1233 "type": "string", 1234 "format": "date-time" 1235 }, 1236 "accepted_at": { 1237 "type": "string", 1238 "format": "date-time" 1239 }, 1240 "spaces": { 1241 "type": "array", 1242 "items": { 1243 "$ref": "#/components/schemas/project/properties/space" 1244 } 1245 }, 1246 "project_role": { 1247 "type": "array", 1248 "items": { 1249 "type": "object", 1250 "properties": { 1251 "project_id": { 1252 "type": "string" 1253 }, 1254 "role": { 1255 "type": "string" 1256 } 1257 } 1258 } 1259 } 1260 }, 1261 "example": { 1262 "id": "acbdacbdacbdacbdacbdacbd", 1263 "email": "foo@bar.com", 1264 "role": "Manager", 1265 "state": "accepted", 1266 "projects": [ 1267 { 1268 "id": "abcd1234cdef1234abcd1234cdef1234", 1269 "name": "My Android Project", 1270 "main_format": "xml", 1271 "created_at": "2015-01-28T09:52:53Z", 1272 "updated_at": "2015-01-28T09:52:53Z" 1273 } 1274 ], 1275 "locales": [ 1276 { 1277 "id": "abcd1234cdef1234abcd1234cdef1234", 1278 "name": "English", 1279 "code": "en-GB" 1280 } 1281 ], 1282 "default_locale_codes": [ 1283 "en", 1284 "de" 1285 ], 1286 "permissions": [ 1287 { 1288 "create_upload": true, 1289 "review_translations": true 1290 } 1291 ], 1292 "locale_ids": [ 1293 "abcd1234abcd1234abcd1234", 1294 "abcd1234abcd1234abcd1235" 1295 ], 1296 "created_at": "2015-01-28T09:52:53Z", 1297 "updated_at": "2015-01-28T09:52:53Z", 1298 "accepted_at": "2015-02-28T09:52:53Z", 1299 "spaces": [ 1300 { 1301 "id": "04d36d845576b9d494d05e0b70fe813b", 1302 "name": "Space2", 1303 "created_at": "2020-12-07T12:56:21Z", 1304 "updated_at": "2020-12-07T12:56:21Z", 1305 "projects_count": 1 1306 } 1307 ], 1308 "teams": [ 1309 { 1310 "id": "04d36d845576b9d494d05e0b70fe813c", 1311 "name": "Team 1", 1312 "created_at": "2020-12-07T12:56:21Z", 1313 "updated_at": "2020-12-07T12:56:21Z" 1314 } 1315 ], 1316 "project_roles": [ 1317 { 1318 "project_id": "abcd1234cdef1234abcd1234cdef1234", 1319 "role": "Developer" 1320 } 1321 ] 1322 } 1323 }, 1324 "figma_attachment": { 1325 "type": "object", 1326 "title": "figma_attachment", 1327 "properties": { 1328 "id": { 1329 "type": "string" 1330 }, 1331 "url": { 1332 "type": "string" 1333 }, 1334 "created_at": { 1335 "type": "string", 1336 "format": "date-time" 1337 }, 1338 "updated_at": { 1339 "type": "string", 1340 "format": "date-time" 1341 } 1342 }, 1343 "example": { 1344 "id": "626ea67628690c73ac86ac81eec2d185", 1345 "url": "https://figma.com/file/something", 1346 "created_at": "2017-01-28T09:52:53Z", 1347 "updated_at": "2017-01-28T09:52:53Z" 1348 } 1349 }, 1350 "glossary": { 1351 "type": "object", 1352 "title": "glossary", 1353 "properties": { 1354 "id": { 1355 "type": "string" 1356 }, 1357 "name": { 1358 "type": "string" 1359 }, 1360 "projects": { 1361 "type": "array", 1362 "items": { 1363 "$ref": "#/components/schemas/project_short" 1364 } 1365 }, 1366 "created_at": { 1367 "type": "string", 1368 "format": "date-time" 1369 }, 1370 "updated_at": { 1371 "type": "string", 1372 "format": "date-time" 1373 } 1374 }, 1375 "example": { 1376 "id": "abcd1234cdef1234abcd1234cdef1234", 1377 "name": "My glossary", 1378 "projects": [ 1379 { 1380 "id": "abcd1234cdef1234abcd1234cdef1234", 1381 "name": "My Android Project", 1382 "main_format": "xml", 1383 "created_at": "2015-01-28T09:52:53Z", 1384 "updated_at": "2015-01-28T09:52:53Z" 1385 } 1386 ], 1387 "spaces": [ 1388 { 1389 "id": "abcd1234cdef1234abcd1234cdef1234", 1390 "name": "My Project Space", 1391 "projects_count": 1, 1392 "created_at": "2015-01-28T09:52:53Z", 1393 "updated_at": "2015-01-28T09:52:53Z" 1394 } 1395 ], 1396 "created_at": "2015-01-28T09:52:53Z", 1397 "updated_at": "2015-01-28T09:52:53Z" 1398 } 1399 }, 1400 "glossary_term": { 1401 "type": "object", 1402 "title": "glossary_term", 1403 "properties": { 1404 "id": { 1405 "type": "string" 1406 }, 1407 "term": { 1408 "type": "string" 1409 }, 1410 "description": { 1411 "type": "string" 1412 }, 1413 "translatable": { 1414 "type": "boolean" 1415 }, 1416 "case_sensitive": { 1417 "type": "boolean" 1418 }, 1419 "translations": { 1420 "type": "array", 1421 "items": { 1422 "$ref": "#/components/schemas/glossary_term_translation" 1423 } 1424 }, 1425 "created_at": { 1426 "type": "string", 1427 "format": "date-time" 1428 }, 1429 "updated_at": { 1430 "type": "string", 1431 "format": "date-time" 1432 } 1433 }, 1434 "example": { 1435 "id": "abcd1234cdef1234abcd1234cdef1233", 1436 "term": "Save", 1437 "description": "This term is used on the 'Save' buttons of our website", 1438 "translatable": true, 1439 "case_sensitive": true, 1440 "translations": [ 1441 { 1442 "id": "abcd1234cdef1234abcd1234cdef1234", 1443 "locale_code": "fr-FR", 1444 "content": "Entasser", 1445 "created_at": "2015-01-28T09:52:53Z", 1446 "updated_at": "2015-01-28T09:52:53Z" 1447 }, 1448 { 1449 "id": "abcd1234cdef1234abcd1234cdef1235", 1450 "locale_code": "de-DE", 1451 "content": "Speichern", 1452 "created_at": "2015-01-28T09:52:53Z", 1453 "updated_at": "2015-01-28T09:52:53Z" 1454 } 1455 ], 1456 "created_at": "2015-01-28T09:52:53Z", 1457 "updated_at": "2015-01-28T09:52:53Z" 1458 } 1459 }, 1460 "glossary_term_translation": { 1461 "type": "object", 1462 "title": "glossary_term_translation", 1463 "properties": { 1464 "id": { 1465 "type": "string" 1466 }, 1467 "locale_code": { 1468 "type": "string" 1469 }, 1470 "content": { 1471 "type": "string" 1472 }, 1473 "created_at": { 1474 "type": "string", 1475 "format": "date-time" 1476 }, 1477 "updated_at": { 1478 "type": "string", 1479 "format": "date-time" 1480 } 1481 }, 1482 "example": { 1483 "id": "abcd1234cdef1234abcd1234cdef1234", 1484 "locale_code": "en-US", 1485 "content": "Save", 1486 "created_at": "2015-01-28T09:52:53Z", 1487 "updated_at": "2015-01-28T09:52:53Z" 1488 } 1489 }, 1490 "project_short": { 1491 "type": "object", 1492 "title": "project_short", 1493 "properties": { 1494 "id": { 1495 "type": "string" 1496 }, 1497 "name": { 1498 "type": "string" 1499 }, 1500 "main_format": { 1501 "type": "string" 1502 }, 1503 "created_at": { 1504 "type": "string", 1505 "format": "date-time" 1506 }, 1507 "updated_at": { 1508 "type": "string", 1509 "format": "date-time" 1510 } 1511 }, 1512 "example": { 1513 "id": "abcd1234cdef1234abcd1234cdef1234", 1514 "name": "My Android Project", 1515 "main_format": "xml", 1516 "created_at": "2015-01-28T09:52:53Z", 1517 "updated_at": "2015-01-28T09:52:53Z" 1518 } 1519 }, 1520 "project_locales": { 1521 "allOf": [ 1522 { 1523 "type": "object", 1524 "title": "project_member_specific", 1525 "properties": { 1526 "id": { 1527 "type": "string" 1528 }, 1529 "name": { 1530 "type": "string" 1531 }, 1532 "project_role": { 1533 "type": "string" 1534 }, 1535 "main_format": { 1536 "type": "string" 1537 }, 1538 "created_at": { 1539 "type": "string", 1540 "format": "date-time" 1541 }, 1542 "updated_at": { 1543 "type": "string", 1544 "format": "date-time" 1545 } 1546 }, 1547 "example": { 1548 "id": "abcd1234cdef1234abcd1234cdef1234", 1549 "name": "My Android Project", 1550 "project_role": "Developer", 1551 "main_format": "xml", 1552 "created_at": "2015-01-28T09:52:53Z", 1553 "updated_at": "2015-01-28T09:52:53Z" 1554 } 1555 }, 1556 { 1557 "type": "object", 1558 "title": "project_locales", 1559 "properties": { 1560 "locales": { 1561 "type": "array", 1562 "items": { 1563 "$ref": "#/components/schemas/locale_preview" 1564 } 1565 } 1566 }, 1567 "example": { 1568 "locales": [ 1569 { 1570 "id": "abcd1234cdef1234abcd1234cdef1234", 1571 "name": "English", 1572 "code": "en-GB" 1573 } 1574 ] 1575 } 1576 } 1577 ] 1578 }, 1579 "project_report": { 1580 "type": "object", 1581 "title": "project report", 1582 "properties": { 1583 "locales_count": { 1584 "type": "integer" 1585 }, 1586 "keys_count": { 1587 "type": "integer" 1588 }, 1589 "translations_count": { 1590 "type": "integer" 1591 }, 1592 "untranslated_keys_count": { 1593 "type": "integer" 1594 }, 1595 "unverified_translations_count": { 1596 "type": "integer" 1597 }, 1598 "reviewed_translations_count": { 1599 "type": "integer" 1600 }, 1601 "managed_words_count": { 1602 "type": "integer" 1603 }, 1604 "project": { 1605 "$ref": "#/components/schemas/project_short" 1606 } 1607 } 1608 }, 1609 "locale_preview": { 1610 "type": "object", 1611 "title": "locale_preview", 1612 "properties": { 1613 "id": { 1614 "type": "string" 1615 }, 1616 "name": { 1617 "type": "string" 1618 }, 1619 "code": { 1620 "type": "string" 1621 } 1622 }, 1623 "example": { 1624 "id": "abcd1234cdef1234abcd1234cdef1234", 1625 "name": "English", 1626 "code": "en-GB" 1627 } 1628 }, 1629 "locale": { 1630 "type": "object", 1631 "title": "locale", 1632 "properties": { 1633 "id": { 1634 "type": "string" 1635 }, 1636 "name": { 1637 "type": "string" 1638 }, 1639 "code": { 1640 "type": "string" 1641 }, 1642 "default": { 1643 "type": "boolean" 1644 }, 1645 "main": { 1646 "type": "boolean" 1647 }, 1648 "rtl": { 1649 "type": "boolean" 1650 }, 1651 "plural_forms": { 1652 "type": "array", 1653 "items": { 1654 "type": "string" 1655 } 1656 }, 1657 "source_locale": { 1658 "$ref": "#/components/schemas/locale_preview" 1659 }, 1660 "fallback_locale": { 1661 "$ref": "#/components/schemas/locale_preview" 1662 }, 1663 "created_at": { 1664 "type": "string", 1665 "format": "date-time" 1666 }, 1667 "updated_at": { 1668 "type": "string", 1669 "format": "date-time" 1670 } 1671 }, 1672 "example": { 1673 "id": "abcd1234cdef1234abcd1234cdef1234", 1674 "name": "de", 1675 "code": "de-DE", 1676 "default": true, 1677 "main": false, 1678 "rtl": false, 1679 "plural_forms": [ 1680 "zero", 1681 "one", 1682 "other" 1683 ], 1684 "source_locale": { 1685 "id": "abcd1234cdef1234abcd1234cdef1234", 1686 "name": "en", 1687 "code": "en-GB" 1688 }, 1689 "fallback_locale": { 1690 "id": "abcd1234cdef1234abcd1234cdef1234", 1691 "name": "en", 1692 "code": "en-GB" 1693 }, 1694 "created_at": "2015-01-28T09:52:53Z", 1695 "updated_at": "2015-01-28T09:52:53Z" 1696 } 1697 }, 1698 "locale_statistics": { 1699 "type": "object", 1700 "title": "locale_statistics", 1701 "properties": { 1702 "keys_total_count": { 1703 "type": "integer" 1704 }, 1705 "keys_untranslated_count": { 1706 "type": "integer" 1707 }, 1708 "words_total_count": { 1709 "type": "integer" 1710 }, 1711 "translations_completed_count": { 1712 "type": "integer" 1713 }, 1714 "translations_unverified_count": { 1715 "type": "integer" 1716 }, 1717 "unverified_words_count": { 1718 "type": "integer" 1719 }, 1720 "missing_words_count": { 1721 "type": "integer" 1722 } 1723 }, 1724 "example": null 1725 }, 1726 "locale_report": { 1727 "type": "object", 1728 "title": "locale report", 1729 "properties": { 1730 "keys_count": { 1731 "type": "integer" 1732 }, 1733 "translated_translations_percentage": { 1734 "type": "integer" 1735 }, 1736 "unverified_translations_percentage": { 1737 "type": "integer" 1738 }, 1739 "reviewed_translations_percentage": { 1740 "type": "integer" 1741 }, 1742 "untranslated_keys_percentage": { 1743 "type": "integer" 1744 }, 1745 "completed_translations_count": { 1746 "type": "integer" 1747 }, 1748 "untranslated_keys_count": { 1749 "type": "integer" 1750 }, 1751 "unverified_translations_count": { 1752 "type": "integer" 1753 }, 1754 "reviewed_translations_count": { 1755 "type": "integer" 1756 }, 1757 "source_word_count": { 1758 "type": "integer" 1759 }, 1760 "word_count": { 1761 "type": "integer" 1762 }, 1763 "word_count_unverified": { 1764 "type": "integer" 1765 }, 1766 "word_count_missing": { 1767 "type": "integer" 1768 }, 1769 "locale": { 1770 "$ref": "#/components/schemas/locale_preview" 1771 } 1772 } 1773 }, 1774 "locale_details": { 1775 "allOf": [ 1776 { 1777 "$ref": "#/components/schemas/locale" 1778 }, 1779 { 1780 "type": "object", 1781 "title": "locale_details", 1782 "properties": { 1783 "statistics": { 1784 "$ref": "#/components/schemas/locale_statistics" 1785 } 1786 }, 1787 "example": { 1788 "statistics": { 1789 "keys_total_count": 2120, 1790 "keys_untranslated_count": 100, 1791 "words_total_count": 3102102, 1792 "translations_completed_count": 1920, 1793 "translations_unverified_count": 32, 1794 "unverified_words_count": 129, 1795 "missing_words_count": 3920 1796 } 1797 } 1798 } 1799 ] 1800 }, 1801 "locale_user_preview": { 1802 "type": "object", 1803 "title": "locale_user_preview", 1804 "properties": { 1805 "id": { 1806 "type": "string" 1807 }, 1808 "username": { 1809 "type": "string" 1810 }, 1811 "name": { 1812 "type": "string" 1813 }, 1814 "role": { 1815 "type": "string" 1816 } 1817 }, 1818 "example": null 1819 }, 1820 "locale_team_preview": { 1821 "type": "object", 1822 "title": "locale_team_preview", 1823 "properties": { 1824 "id": { 1825 "type": "string" 1826 }, 1827 "name": { 1828 "type": "string" 1829 }, 1830 "role": { 1831 "type": "string" 1832 } 1833 }, 1834 "example": null 1835 }, 1836 "upload": { 1837 "type": "object", 1838 "title": "upload", 1839 "properties": { 1840 "id": { 1841 "type": "string" 1842 }, 1843 "filename": { 1844 "type": "string" 1845 }, 1846 "format": { 1847 "type": "string" 1848 }, 1849 "state": { 1850 "type": "string" 1851 }, 1852 "tag": { 1853 "type": "string" 1854 }, 1855 "url": { 1856 "type": "string", 1857 "description": "The URL to the upload in Phrase Strings app.\n" 1858 }, 1859 "summary": { 1860 "type": "object", 1861 "properties": { 1862 "locales_created": { 1863 "type": "integer" 1864 }, 1865 "translation_keys_created": { 1866 "type": "integer" 1867 }, 1868 "translation_keys_updated": { 1869 "type": "integer" 1870 }, 1871 "translation_keys_unmentioned": { 1872 "type": "integer" 1873 }, 1874 "translations_created": { 1875 "type": "integer" 1876 }, 1877 "translations_updated": { 1878 "type": "integer" 1879 }, 1880 "tags_created": { 1881 "type": "integer" 1882 }, 1883 "translation_keys_ignored": { 1884 "type": "integer" 1885 } 1886 } 1887 }, 1888 "created_at": { 1889 "type": "string", 1890 "format": "date-time" 1891 }, 1892 "updated_at": { 1893 "type": "string", 1894 "format": "date-time" 1895 } 1896 }, 1897 "example": { 1898 "id": "abcd1234cdef1234abcd1234cdef1234", 1899 "filename": "example.json", 1900 "format": "json", 1901 "state": "success", 1902 "tag": "tag", 1903 "summary": { 1904 "locales_created": 2, 1905 "translation_keys_created": 162, 1906 "translation_keys_updated": 10, 1907 "translation_keys_unmentioned": 0, 1908 "translations_created": 291, 1909 "translations_updated": 3, 1910 "tags_created": 2, 1911 "translation_keys_ignored": 0 1912 }, 1913 "created_at": "2015-01-28T09:52:53Z", 1914 "updated_at": "2015-01-28T09:52:53Z" 1915 } 1916 }, 1917 "format": { 1918 "type": "object", 1919 "title": "format", 1920 "properties": { 1921 "name": { 1922 "type": "string" 1923 }, 1924 "api_name": { 1925 "type": "string" 1926 }, 1927 "description": { 1928 "type": "string" 1929 }, 1930 "extension": { 1931 "type": "string" 1932 }, 1933 "default_encoding": { 1934 "type": "string" 1935 }, 1936 "importable": { 1937 "type": "boolean" 1938 }, 1939 "exportable": { 1940 "type": "boolean" 1941 }, 1942 "default_file": { 1943 "type": "string" 1944 }, 1945 "renders_default_locale": { 1946 "type": "boolean" 1947 }, 1948 "includes_locale_information": { 1949 "type": "boolean" 1950 } 1951 }, 1952 "example": { 1953 "name": "Ruby/Rails YAML", 1954 "api_name": "yml", 1955 "description": "YAML file format for use with Ruby/Rails applications", 1956 "extension": "yml", 1957 "default_encoding": "UTF-8", 1958 "importable": true, 1959 "exportable": true, 1960 "default_file": "./config/locales/<locale_name>.yml", 1961 "renders_default_locale": false, 1962 "includes_locale_information": true 1963 } 1964 }, 1965 "project": { 1966 "type": "object", 1967 "title": "project", 1968 "properties": { 1969 "id": { 1970 "type": "string" 1971 }, 1972 "name": { 1973 "type": "string" 1974 }, 1975 "slug": { 1976 "type": "string" 1977 }, 1978 "main_format": { 1979 "type": "string" 1980 }, 1981 "project_image_url": { 1982 "type": "string" 1983 }, 1984 "media": { 1985 "type": "string" 1986 }, 1987 "account": { 1988 "$ref": "#/components/schemas/account" 1989 }, 1990 "space": { 1991 "type": "object", 1992 "title": "space", 1993 "properties": { 1994 "id": { 1995 "type": "string" 1996 }, 1997 "name": { 1998 "type": "string" 1999 }, 2000 "created_at": { 2001 "type": "string", 2002 "format": "date-time" 2003 }, 2004 "updated_at": { 2005 "type": "string", 2006 "format": "date-time" 2007 }, 2008 "projects_count": { 2009 "type": "integer" 2010 } 2011 }, 2012 "example": { 2013 "id": "2e7574e8f2372906a03110c2a7cfe671", 2014 "name": "My first space", 2015 "created_at": "2020-02-25T12:17:25Z", 2016 "updated_at": "2020-03-13T14:46:57Z", 2017 "projects_count": 2 2018 } 2019 }, 2020 "point_of_contact": { 2021 "$ref": "#/components/schemas/user_preview" 2022 }, 2023 "created_at": { 2024 "type": "string", 2025 "format": "date-time" 2026 }, 2027 "updated_at": { 2028 "type": "string", 2029 "format": "date-time" 2030 } 2031 }, 2032 "example": { 2033 "id": "abcd1234cdef1234abcd1234cdef1234", 2034 "name": "My Android Project", 2035 "slug": "android_project", 2036 "main_format": "xml", 2037 "project_image_url": "http://assets.example.com/project.png", 2038 "account": "account", 2039 "space": "space", 2040 "created_at": "2015-01-28T09:52:53Z", 2041 "updated_at": "2015-01-28T09:52:53Z" 2042 } 2043 }, 2044 "project_details": { 2045 "allOf": [ 2046 { 2047 "$ref": "#/components/schemas/project" 2048 }, 2049 { 2050 "type": "object", 2051 "title": "project_details", 2052 "properties": { 2053 "slug": { 2054 "type": "string" 2055 }, 2056 "shares_translation_memory": { 2057 "type": "boolean" 2058 } 2059 }, 2060 "example": { 2061 "slug": "my-android-project", 2062 "shares_translation_memory": true 2063 } 2064 } 2065 ] 2066 }, 2067 "styleguide": { 2068 "type": "object", 2069 "title": "styleguide", 2070 "properties": { 2071 "id": { 2072 "type": "string" 2073 }, 2074 "title": { 2075 "type": "string" 2076 }, 2077 "created_at": { 2078 "type": "string", 2079 "format": "date-time" 2080 }, 2081 "updated_at": { 2082 "type": "string", 2083 "format": "date-time" 2084 } 2085 }, 2086 "example": { 2087 "id": "abcd1234cdef1234abcd1234cdef1234", 2088 "title": "My Style Guide", 2089 "created_at": "2015-01-28T09:52:53Z", 2090 "updated_at": "2015-01-28T09:52:53Z" 2091 } 2092 }, 2093 "styleguide_preview": { 2094 "type": "object", 2095 "title": "styleguide_preview", 2096 "properties": { 2097 "id": { 2098 "type": "string" 2099 }, 2100 "title": { 2101 "type": "string" 2102 } 2103 }, 2104 "example": { 2105 "id": "abcd1234cdef1234abcd1234cdef1234", 2106 "title": "My Style Guide" 2107 } 2108 }, 2109 "styleguide_details": { 2110 "allOf": [ 2111 { 2112 "$ref": "#/components/schemas/styleguide" 2113 }, 2114 { 2115 "type": "object", 2116 "title": "styleguide_details", 2117 "properties": { 2118 "public_url": { 2119 "type": "string" 2120 }, 2121 "audience": { 2122 "type": "string" 2123 }, 2124 "target_audience": { 2125 "type": "string" 2126 }, 2127 "grammatical_person": { 2128 "type": "string" 2129 }, 2130 "vocabulary_type": { 2131 "type": "string" 2132 }, 2133 "business": { 2134 "type": "string" 2135 }, 2136 "company_branding": { 2137 "type": "string" 2138 }, 2139 "formatting": { 2140 "type": "string" 2141 }, 2142 "glossary_terms": { 2143 "type": "string" 2144 }, 2145 "grammar_consistency": { 2146 "type": "string" 2147 }, 2148 "literal_translation": { 2149 "type": "string" 2150 }, 2151 "overall_tone": { 2152 "type": "string" 2153 }, 2154 "samples": { 2155 "type": "string" 2156 } 2157 }, 2158 "example": { 2159 "public_url": "https://phrase.com/styleguide/my-project/26f065cf597be340", 2160 "audience": "customer-facing", 2161 "target_audience": "teenager", 2162 "grammatical_person": "first_person_singular", 2163 "vocabulary_type": "technical", 2164 "business": "We are a travel site that helps customers find the best hotels and flights.", 2165 "company_branding": "ACME Inc. should never be translated.", 2166 "formatting": "Never use capital letters", 2167 "glossary_terms": "Apartment, cabin, loft", 2168 "grammar_consistency": "", 2169 "literal_translation": "Neutral", 2170 "overall_tone": "Tone should be fun and light", 2171 "samples": "http://www.myexample.com/my/document/path/to/samples.pdf" 2172 } 2173 } 2174 ] 2175 }, 2176 "tag": { 2177 "type": "object", 2178 "title": "tag", 2179 "properties": { 2180 "name": { 2181 "type": "string" 2182 }, 2183 "keys_count": { 2184 "type": "integer" 2185 }, 2186 "created_at": { 2187 "type": "string", 2188 "format": "date-time" 2189 }, 2190 "updated_at": { 2191 "type": "string", 2192 "format": "date-time" 2193 } 2194 }, 2195 "example": { 2196 "name": "my-feature", 2197 "keys_count": 8, 2198 "created_at": "2015-01-28T09:52:53Z", 2199 "updated_at": "2015-01-28T09:52:53Z" 2200 } 2201 }, 2202 "tag_with_stats": { 2203 "allOf": [ 2204 { 2205 "$ref": "#/components/schemas/tag" 2206 }, 2207 { 2208 "type": "object", 2209 "title": "tag_with_stats", 2210 "properties": { 2211 "statistics": { 2212 "type": "array", 2213 "items": { 2214 "type": "object", 2215 "properties": { 2216 "locale": { 2217 "$ref": "#/components/schemas/locale_preview" 2218 }, 2219 "statistics": { 2220 "type": "object", 2221 "properties": { 2222 "keys_total_count": { 2223 "type": "integer" 2224 }, 2225 "translations_completed_count": { 2226 "type": "integer" 2227 }, 2228 "translations_unverified_count": { 2229 "type": "integer" 2230 }, 2231 "keys_untranslated_count": { 2232 "type": "integer" 2233 } 2234 } 2235 } 2236 } 2237 } 2238 } 2239 }, 2240 "example": { 2241 "statistics": [ 2242 { 2243 "locale": { 2244 "id": "abcd1234cdef1234abcd1234cdef1234", 2245 "name": "de", 2246 "code": "de-DE" 2247 }, 2248 "statistics": { 2249 "keys_total_count": 12, 2250 "translations_completed_count": 9, 2251 "translations_unverified_count": 11, 2252 "keys_untranslated_count": 3 2253 } 2254 } 2255 ] 2256 } 2257 } 2258 ] 2259 }, 2260 "translation": { 2261 "type": "object", 2262 "title": "translation", 2263 "properties": { 2264 "id": { 2265 "type": "string" 2266 }, 2267 "content": { 2268 "type": "string", 2269 "x-json-tag": "json:\"content\"" 2270 }, 2271 "unverified": { 2272 "type": "boolean" 2273 }, 2274 "excluded": { 2275 "type": "boolean" 2276 }, 2277 "plural_suffix": { 2278 "type": "string" 2279 }, 2280 "key": { 2281 "$ref": "#/components/schemas/key_preview" 2282 }, 2283 "locale": { 2284 "$ref": "#/components/schemas/locale_preview" 2285 }, 2286 "placeholders": { 2287 "type": "array", 2288 "items": { 2289 "type": "string" 2290 } 2291 }, 2292 "state": { 2293 "type": "string" 2294 }, 2295 "created_at": { 2296 "type": "string", 2297 "format": "date-time" 2298 }, 2299 "updated_at": { 2300 "type": "string", 2301 "format": "date-time" 2302 } 2303 }, 2304 "example": { 2305 "id": "abcd1234cdef1234abcd1234cdef1234", 2306 "content": "My translation", 2307 "unverified": false, 2308 "excluded": false, 2309 "plural_suffix": "", 2310 "key": { 2311 "id": "abcd1234cdef1234abcd1234cdef1234", 2312 "name": "home.index.headline", 2313 "plural": false 2314 }, 2315 "locale": { 2316 "id": "abcd1234cdef1234abcd1234cdef1234", 2317 "name": "de", 2318 "code": "de-DE" 2319 }, 2320 "placeholders": [ 2321 "%{count}" 2322 ], 2323 "state": "translated", 2324 "created_at": "2015-01-28T09:52:53Z", 2325 "updated_at": "2015-01-28T09:52:53Z" 2326 } 2327 }, 2328 "translation_details": { 2329 "allOf": [ 2330 { 2331 "$ref": "#/components/schemas/translation" 2332 }, 2333 { 2334 "type": "object", 2335 "title": "translation_details", 2336 "properties": { 2337 "user": { 2338 "$ref": "#/components/schemas/user_preview" 2339 }, 2340 "word_count": { 2341 "type": "integer" 2342 }, 2343 "linked_translation": { 2344 "type": "object", 2345 "title": "translation_parent", 2346 "properties": { 2347 "id": { 2348 "type": "string" 2349 }, 2350 "content": { 2351 "type": "string" 2352 } 2353 }, 2354 "example": { 2355 "id": "abcd1234cdef1234abcd1234cdef1234", 2356 "content": "My parent translation" 2357 } 2358 } 2359 }, 2360 "example": { 2361 "user": { 2362 "id": "abcd1234cdef1234abcd1234cdef1234", 2363 "username": "joe.doe", 2364 "name": "Joe Doe" 2365 }, 2366 "word_count": 2 2367 } 2368 } 2369 ] 2370 }, 2371 "translation_key": { 2372 "type": "object", 2373 "title": "translation_key", 2374 "properties": { 2375 "id": { 2376 "type": "string" 2377 }, 2378 "name": { 2379 "type": "string" 2380 }, 2381 "description": { 2382 "type": "string" 2383 }, 2384 "name_hash": { 2385 "type": "string" 2386 }, 2387 "plural": { 2388 "type": "boolean" 2389 }, 2390 "tags": { 2391 "type": "array", 2392 "items": { 2393 "type": "string" 2394 } 2395 }, 2396 "data_type": { 2397 "type": "string" 2398 }, 2399 "created_at": { 2400 "type": "string", 2401 "format": "date-time" 2402 }, 2403 "updated_at": { 2404 "type": "string", 2405 "format": "date-time" 2406 } 2407 }, 2408 "example": { 2409 "id": "abcd1234cdef1234abcd1234cdef1234", 2410 "name": "home.index.headline", 2411 "description": "My description for this key...", 2412 "name_hash": "1b31d2580ce324f246f66b3be00ed399", 2413 "plural": false, 2414 "tags": [ 2415 "awesome-feature", 2416 "needs-proofreading" 2417 ], 2418 "data_type": "string", 2419 "created_at": "2015-01-28T09:52:53Z", 2420 "updated_at": "2015-01-28T09:52:53Z" 2421 } 2422 }, 2423 "translation_key_details": { 2424 "allOf": [ 2425 { 2426 "$ref": "#/components/schemas/translation_key" 2427 }, 2428 { 2429 "type": "object", 2430 "title": "translation_key_details", 2431 "properties": { 2432 "name_plural": { 2433 "type": "string" 2434 }, 2435 "comments_count": { 2436 "type": "integer" 2437 }, 2438 "max_characters_allowed": { 2439 "type": "integer" 2440 }, 2441 "screenshot_url": { 2442 "type": "string" 2443 }, 2444 "unformatted": { 2445 "type": "boolean" 2446 }, 2447 "xml_space_preserve": { 2448 "type": "boolean" 2449 }, 2450 "original_file": { 2451 "type": "string" 2452 }, 2453 "format_value_type": { 2454 "type": "string" 2455 }, 2456 "creator": { 2457 "$ref": "#/components/schemas/user_preview" 2458 }, 2459 "custom_metadata": { 2460 "type": "object", 2461 "title": "custom_metadata", 2462 "additionalProperties": { 2463 "type": "string" 2464 } 2465 } 2466 }, 2467 "example": { 2468 "name_plural": "home.index.headlines", 2469 "comments_count": 2, 2470 "data_type": "string", 2471 "max_characters_allowed": 140, 2472 "screenshot_url": "http://assets.example.com/screenshot.png", 2473 "unformatted": false, 2474 "xml_space_preserve": false, 2475 "original_file": "", 2476 "format_value_type": "", 2477 "creator": { 2478 "id": "abcd1234cdef1234abcd1234cdef1234", 2479 "username": "joe.doe", 2480 "name": "Joe Doe" 2481 }, 2482 "custom_metadata": { 2483 "fruit": "Apple", 2484 "vegetable": "Tomato" 2485 } 2486 } 2487 } 2488 ] 2489 }, 2490 "affected_resources": { 2491 "type": "object", 2492 "title": "affected_resources", 2493 "properties": { 2494 "records_affected": { 2495 "type": "integer" 2496 } 2497 }, 2498 "example": { 2499 "records_affected": 2 2500 } 2501 }, 2502 "translation_order": { 2503 "type": "object", 2504 "title": "translation_order", 2505 "properties": { 2506 "id": { 2507 "type": "string" 2508 }, 2509 "name": { 2510 "type": "string" 2511 }, 2512 "lsp": { 2513 "type": "string" 2514 }, 2515 "amount_in_cents": { 2516 "type": "integer" 2517 }, 2518 "currency": { 2519 "type": "string" 2520 }, 2521 "message": { 2522 "type": "string" 2523 }, 2524 "state": { 2525 "type": "string" 2526 }, 2527 "translation_type": { 2528 "type": "string" 2529 }, 2530 "progress_percent": { 2531 "type": "integer" 2532 }, 2533 "source_locale": { 2534 "$ref": "#/components/schemas/locale_preview" 2535 }, 2536 "target_locales": { 2537 "type": "array", 2538 "items": { 2539 "$ref": "#/components/schemas/locale_preview" 2540 } 2541 }, 2542 "tag": { 2543 "type": "string" 2544 }, 2545 "styleguide": { 2546 "$ref": "#/components/schemas/styleguide_preview" 2547 }, 2548 "unverify_translations_upon_delivery": { 2549 "type": "boolean" 2550 }, 2551 "quality": { 2552 "type": "boolean" 2553 }, 2554 "priority": { 2555 "type": "boolean" 2556 }, 2557 "created_at": { 2558 "type": "string", 2559 "format": "date-time" 2560 }, 2561 "updated_at": { 2562 "type": "string", 2563 "format": "date-time" 2564 } 2565 }, 2566 "example": { 2567 "id": "30AB4884", 2568 "lsp": "gengo", 2569 "amount_in_cents": 1152, 2570 "currency": "usd", 2571 "message": "Please make everything sound really nice :)", 2572 "state": "confirmed", 2573 "translation_type": "pro", 2574 "progress_percent": 50, 2575 "source_locale": { 2576 "id": "abcd1234cdef1234abcd1234cdef1234", 2577 "name": "en", 2578 "code": "en-GB" 2579 }, 2580 "target_locales": [ 2581 { 2582 "id": "abcd1234cdef1234abcd1234cdef1234", 2583 "name": "de", 2584 "code": "de-DE" 2585 }, 2586 { 2587 "id": "abcd1234cdef1234abcd1234cdef1234", 2588 "name": "fr", 2589 "code": "fr-FR" 2590 } 2591 ], 2592 "tag": "latest-upload", 2593 "styleguide": { 2594 "id": "abcd1234cdef1234abcd1234cdef1234", 2595 "title": "My Styleguide" 2596 }, 2597 "unverify_translations_upon_delivery": true, 2598 "quality": true, 2599 "priority": true, 2600 "created_at": "2015-01-28T09:52:53Z", 2601 "updated_at": "2015-01-28T09:52:53Z" 2602 } 2603 }, 2604 "translation_version": { 2605 "type": "object", 2606 "title": "translation_version", 2607 "properties": { 2608 "id": { 2609 "type": "string" 2610 }, 2611 "content": { 2612 "type": "string" 2613 }, 2614 "plural_suffix": { 2615 "type": "string" 2616 }, 2617 "key": { 2618 "$ref": "#/components/schemas/key_preview" 2619 }, 2620 "locale": { 2621 "$ref": "#/components/schemas/locale_preview" 2622 }, 2623 "created_at": { 2624 "type": "string", 2625 "format": "date-time" 2626 }, 2627 "updated_at": { 2628 "type": "string", 2629 "format": "date-time" 2630 }, 2631 "changed_at": { 2632 "type": "string", 2633 "format": "date-time" 2634 } 2635 }, 2636 "example": { 2637 "id": "abcd1234cdef1234abcd1234cdef1234", 2638 "content": "My translation", 2639 "plural_suffix": "", 2640 "key": { 2641 "id": "abcd1234cdef1234abcd1234cdef1234", 2642 "name": "home.index.headline", 2643 "plural": false 2644 }, 2645 "locale": { 2646 "id": "abcd1234cdef1234abcd1234cdef1234", 2647 "name": "en", 2648 "code": "en-GB" 2649 }, 2650 "created_at": "2015-01-28T09:52:53Z", 2651 "updated_at": "2015-01-28T09:52:53Z", 2652 "changed_at": "2015-01-28T09:52:53Z" 2653 } 2654 }, 2655 "translation_version_with_user": { 2656 "allOf": [ 2657 { 2658 "$ref": "#/components/schemas/translation_version" 2659 }, 2660 { 2661 "type": "object", 2662 "title": "translation_version_with_user", 2663 "properties": { 2664 "user": { 2665 "$ref": "#/components/schemas/user_preview" 2666 } 2667 }, 2668 "example": { 2669 "user": { 2670 "id": "abcd1234cdef1234abcd1234cdef1234", 2671 "username": "joe.doe", 2672 "name": "Joe Doe" 2673 } 2674 } 2675 } 2676 ] 2677 }, 2678 "user_preview": { 2679 "type": "object", 2680 "title": "user_preview", 2681 "properties": { 2682 "id": { 2683 "type": "string" 2684 }, 2685 "username": { 2686 "type": "string" 2687 }, 2688 "name": { 2689 "type": "string" 2690 }, 2691 "gravatar_uid": { 2692 "type": "string" 2693 } 2694 }, 2695 "example": null 2696 }, 2697 "user": { 2698 "type": "object", 2699 "title": "user", 2700 "properties": { 2701 "id": { 2702 "type": "string" 2703 }, 2704 "username": { 2705 "type": "string" 2706 }, 2707 "name": { 2708 "type": "string" 2709 }, 2710 "position": { 2711 "type": "string" 2712 }, 2713 "created_at": { 2714 "type": "string", 2715 "format": "date-time" 2716 }, 2717 "updated_at": { 2718 "type": "string", 2719 "format": "date-time" 2720 } 2721 }, 2722 "example": { 2723 "id": "abcd1234cdef1234abcd1234cdef1234", 2724 "username": "joe.doe", 2725 "name": "Joe Doe", 2726 "position": "Lead Developer", 2727 "created_at": "2015-01-28T09:52:53Z", 2728 "updated_at": "2015-01-28T09:52:53Z" 2729 } 2730 }, 2731 "current_user": { 2732 "type": "object", 2733 "title": "user", 2734 "properties": { 2735 "id": { 2736 "type": "string" 2737 }, 2738 "username": { 2739 "type": "string" 2740 }, 2741 "name": { 2742 "type": "string" 2743 }, 2744 "email": { 2745 "type": "string" 2746 }, 2747 "position": { 2748 "type": "string" 2749 }, 2750 "language": { 2751 "type": "string" 2752 }, 2753 "created_at": { 2754 "type": "string", 2755 "format": "date-time" 2756 }, 2757 "updated_at": { 2758 "type": "string", 2759 "format": "date-time" 2760 } 2761 }, 2762 "example": { 2763 "id": "abcd1234cdef1234abcd1234cdef1234", 2764 "username": "joe.doe", 2765 "name": "Joe Doe", 2766 "email": "joe@phrase.com", 2767 "position": "Lead Developer", 2768 "language": "de", 2769 "created_at": "2015-01-28T09:52:53Z", 2770 "updated_at": "2015-01-28T09:52:53Z" 2771 } 2772 }, 2773 "webhook": { 2774 "type": "object", 2775 "title": "webhook", 2776 "properties": { 2777 "id": { 2778 "type": "string" 2779 }, 2780 "callback_url": { 2781 "type": "string" 2782 }, 2783 "description": { 2784 "type": "string" 2785 }, 2786 "events": { 2787 "type": "array", 2788 "items": { 2789 "type": "string" 2790 } 2791 }, 2792 "active": { 2793 "type": "boolean" 2794 }, 2795 "include_branches": { 2796 "type": "boolean" 2797 }, 2798 "created_at": { 2799 "type": "string", 2800 "format": "date-time" 2801 }, 2802 "updated_at": { 2803 "type": "string", 2804 "format": "date-time" 2805 } 2806 }, 2807 "example": { 2808 "id": "abcd1234cdef1234abcd1234cdef1234", 2809 "callback_url": "http://example.com/hooks/phraseapp-notifications", 2810 "description": "My webhook for chat notifications", 2811 "events": "locales:create,translations:update", 2812 "active": true, 2813 "include_branches": false, 2814 "created_at": "2015-01-28T09:52:53Z", 2815 "updated_at": "2015-01-28T09:52:53Z" 2816 } 2817 }, 2818 "webhook_delivery": { 2819 "type": "object", 2820 "title": "webhook delivery", 2821 "properties": { 2822 "id": { 2823 "type": "string" 2824 }, 2825 "webhook_id": { 2826 "type": "string" 2827 }, 2828 "response_status_code": { 2829 "type": "integer" 2830 }, 2831 "delivered_at": { 2832 "type": "string", 2833 "format": "date-time" 2834 }, 2835 "duration_ms": { 2836 "type": "integer" 2837 }, 2838 "created_at": { 2839 "type": "string", 2840 "format": "date-time" 2841 }, 2842 "updated_at": { 2843 "type": "string", 2844 "format": "date-time" 2845 } 2846 } 2847 }, 2848 "space": { 2849 "type": "object", 2850 "title": "space", 2851 "properties": { 2852 "id": { 2853 "type": "string" 2854 }, 2855 "name": { 2856 "type": "string" 2857 }, 2858 "created_at": { 2859 "type": "string", 2860 "format": "date-time" 2861 }, 2862 "updated_at": { 2863 "type": "string", 2864 "format": "date-time" 2865 }, 2866 "projects_count": { 2867 "type": "integer" 2868 }, 2869 "projects": { 2870 "type": "array", 2871 "items": { 2872 "$ref": "#/components/schemas/project" 2873 } 2874 } 2875 }, 2876 "example": { 2877 "id": "2e7574e8f2372906a03110c2a7cfe671", 2878 "name": "My first space", 2879 "created_at": "2020-02-25T12:17:25Z", 2880 "updated_at": "2020-03-13T14:46:57Z", 2881 "projects_count": 2, 2882 "projects": [ 2883 { 2884 "id": "abcd1234cdef1234abcd1234cdef1234", 2885 "name": "My Android Project", 2886 "main_format": "xml", 2887 "project_image_url": "http://assets.example.com/project.png", 2888 "account": "account", 2889 "created_at": "2015-01-28T09:52:53Z", 2890 "updated_at": "2015-01-28T09:52:53Z" 2891 }, 2892 { 2893 "id": "abcd11231fadef1234adacd1234cdef1234", 2894 "name": "My IOS Project", 2895 "main_format": "yml", 2896 "project_image_url": "http://assets.example.com/project2.png", 2897 "account": "account", 2898 "created_at": "2015-01-28T09:52:53Z", 2899 "updated_at": "2015-01-28T09:52:53Z" 2900 } 2901 ] 2902 } 2903 }, 2904 "team": { 2905 "type": "object", 2906 "title": "team", 2907 "properties": { 2908 "id": { 2909 "type": "string" 2910 }, 2911 "name": { 2912 "type": "string" 2913 }, 2914 "created_at": { 2915 "type": "string", 2916 "format": "date-time" 2917 }, 2918 "updated_at": { 2919 "type": "string", 2920 "format": "date-time" 2921 }, 2922 "projects": { 2923 "type": "array", 2924 "items": { 2925 "$ref": "#/components/schemas/project" 2926 } 2927 }, 2928 "spaces": { 2929 "type": "array", 2930 "items": { 2931 "$ref": "#/components/schemas/project/properties/space" 2932 } 2933 }, 2934 "users": { 2935 "type": "array", 2936 "items": { 2937 "$ref": "#/components/schemas/user_preview" 2938 } 2939 } 2940 }, 2941 "example": { 2942 "id": "2e7574e8f2372906a03110c2a7cfe671", 2943 "name": "My first Team", 2944 "created_at": "2020-02-25T12:17:25Z", 2945 "updated_at": "2020-03-13T14:46:57Z", 2946 "projects": [ 2947 { 2948 "id": "abcd11231fadef1234adacd1234cdef1234", 2949 "name": "My IOS Project", 2950 "main_format": "yml", 2951 "created_at": "2015-01-28T09:52:53Z", 2952 "updated_at": "2015-01-28T09:52:53Z" 2953 } 2954 ], 2955 "spaces": [ 2956 { 2957 "id": "626ea67628690c73ac86ac81eec2d185", 2958 "name": "IOS", 2959 "created_at": "2015-01-28T09:52:53Z", 2960 "updated_at": "2015-01-28T09:52:53Z", 2961 "projects_count": 3 2962 } 2963 ], 2964 "users": [ 2965 { 2966 "id": "3465jhkjhk3465hjjkhl346hklk3456kl", 2967 "username": "Max", 2968 "name": "Max Mustermann" 2969 } 2970 ] 2971 } 2972 }, 2973 "team_detail": { 2974 "type": "object", 2975 "title": "team", 2976 "properties": { 2977 "id": { 2978 "type": "string" 2979 }, 2980 "name": { 2981 "type": "string" 2982 }, 2983 "created_at": { 2984 "type": "string", 2985 "format": "date-time" 2986 }, 2987 "updated_at": { 2988 "type": "string", 2989 "format": "date-time" 2990 }, 2991 "projects": { 2992 "type": "array", 2993 "items": { 2994 "$ref": "#/components/schemas/project" 2995 } 2996 }, 2997 "spaces": { 2998 "type": "array", 2999 "items": { 3000 "$ref": "#/components/schemas/project/properties/space" 3001 } 3002 }, 3003 "users": { 3004 "type": "array", 3005 "items": { 3006 "$ref": "#/components/schemas/user" 3007 } 3008 } 3009 }, 3010 "example": { 3011 "id": "2e7574e8f2372906a03110c2a7cfe671", 3012 "name": "My first Team", 3013 "created_at": "2020-02-25T12:17:25Z", 3014 "updated_at": "2020-03-13T14:46:57Z", 3015 "projects": [ 3016 { 3017 "id": "abcd11231fadef1234adacd1234cdef1234", 3018 "name": "My IOS Project", 3019 "main_format": "yml", 3020 "created_at": "2015-01-28T09:52:53Z", 3021 "updated_at": "2015-01-28T09:52:53Z" 3022 } 3023 ], 3024 "spaces": [ 3025 { 3026 "id": "626ea67628690c73ac86ac81eec2d185", 3027 "name": "IOS", 3028 "created_at": "2015-01-28T09:52:53Z", 3029 "updated_at": "2015-01-28T09:52:53Z", 3030 "projects_count": 3 3031 } 3032 ], 3033 "users": [ 3034 { 3035 "id": "3465jhkjhk3465hjjkhl346hklk3456kl", 3036 "username": "Max", 3037 "name": "Max Mustermann", 3038 "position": "Developer", 3039 "created_at": "2015-01-28T09:52:53Z", 3040 "updated_at": "2015-01-28T09:52:53Z" 3041 } 3042 ] 3043 } 3044 }, 3045 "team_short": { 3046 "type": "object", 3047 "title": "team_short", 3048 "properties": { 3049 "id": { 3050 "type": "string" 3051 }, 3052 "name": { 3053 "type": "string" 3054 }, 3055 "created_at": { 3056 "type": "string", 3057 "format": "date-time" 3058 }, 3059 "updated_at": { 3060 "type": "string", 3061 "format": "date-time" 3062 } 3063 }, 3064 "example": { 3065 "id": "2e7574e8f2372906a03110c2a7cfe671", 3066 "name": "My first Team", 3067 "created_at": "2020-02-25T12:17:25Z", 3068 "updated_at": "2020-03-13T14:46:57Z" 3069 } 3070 }, 3071 "job": { 3072 "type": "object", 3073 "title": "job", 3074 "properties": { 3075 "id": { 3076 "type": "string" 3077 }, 3078 "name": { 3079 "type": "string" 3080 }, 3081 "briefing": { 3082 "type": "string" 3083 }, 3084 "due_date": { 3085 "type": "string", 3086 "format": "date-time", 3087 "nullable": true 3088 }, 3089 "state": { 3090 "type": "string" 3091 }, 3092 "ticket_url": { 3093 "type": "string" 3094 }, 3095 "project": { 3096 "$ref": "#/components/schemas/project_short" 3097 }, 3098 "branch": { 3099 "type": "object", 3100 "title": "branch_name", 3101 "properties": { 3102 "name": { 3103 "type": "string" 3104 } 3105 }, 3106 "example": { 3107 "name": "new-branch" 3108 } 3109 }, 3110 "created_at": { 3111 "type": "string", 3112 "format": "date-time" 3113 }, 3114 "updated_at": { 3115 "type": "string", 3116 "format": "date-time" 3117 } 3118 }, 3119 "example": { 3120 "id": "626ea67628690c73ac86ac81eec2d185", 3121 "name": "Translations for new Feature", 3122 "briefing": "Some instructions for the translators", 3123 "due_date": "2017-02-28T09:52:53Z", 3124 "state": "completed", 3125 "ticket_url": "https://example.atlassian.net/browse/FOO", 3126 "created_at": "2017-01-28T09:52:53Z", 3127 "updated_at": "2017-01-28T09:52:53Z", 3128 "project": { 3129 "id": "abcd1234cdef1234abcd1234cdef1234", 3130 "name": "My Android Project", 3131 "main_format": "xml", 3132 "created_at": "2015-01-28T09:52:53Z", 3133 "updated_at": "2015-01-28T09:52:53Z" 3134 } 3135 } 3136 }, 3137 "job_details": { 3138 "allOf": [ 3139 { 3140 "$ref": "#/components/schemas/job" 3141 }, 3142 { 3143 "type": "object", 3144 "title": "job_details", 3145 "properties": { 3146 "owner": { 3147 "$ref": "#/components/schemas/user_preview" 3148 }, 3149 "job_tag_name": { 3150 "type": "string" 3151 }, 3152 "source_locale": { 3153 "$ref": "#/components/schemas/locale_preview" 3154 }, 3155 "locales": { 3156 "type": "array", 3157 "items": { 3158 "$ref": "#/components/schemas/locale_preview" 3159 } 3160 }, 3161 "keys": { 3162 "type": "array", 3163 "items": { 3164 "$ref": "#/components/schemas/key_preview" 3165 } 3166 } 3167 }, 3168 "example": { 3169 "owner": { 3170 "id": "abcd1234cdef1234abcd1234cdef1234", 3171 "username": "joe.doe", 3172 "name": "Joe Doe" 3173 }, 3174 "job_tag_name": "Job_123", 3175 "source_locale": { 3176 "id": "abcd1234cdef1234abcd1234cdef1235", 3177 "name": "de-DE", 3178 "code": "de-DE" 3179 }, 3180 "locales": [ 3181 { 3182 "id": "abcd1234cdef1234abcd1234cdef1234", 3183 "name": "English", 3184 "code": "en-GB" 3185 } 3186 ], 3187 "keys": [ 3188 { 3189 "id": "dbcd1234cdef1234abcd1234cdef1234", 3190 "name": "greeting.hello" 3191 } 3192 ] 3193 } 3194 } 3195 ] 3196 }, 3197 "job_preview": { 3198 "type": "object", 3199 "title": "job_preview", 3200 "properties": { 3201 "id": { 3202 "type": "string" 3203 }, 3204 "name": { 3205 "type": "string" 3206 }, 3207 "state": { 3208 "type": "string" 3209 } 3210 }, 3211 "example": null 3212 }, 3213 "job_locale": { 3214 "type": "object", 3215 "title": "job_locale", 3216 "properties": { 3217 "id": { 3218 "type": "string" 3219 }, 3220 "job": { 3221 "$ref": "#/components/schemas/job_preview" 3222 }, 3223 "locale": { 3224 "$ref": "#/components/schemas/locale_preview" 3225 }, 3226 "users": { 3227 "type": "array", 3228 "items": { 3229 "$ref": "#/components/schemas/locale_user_preview" 3230 } 3231 }, 3232 "teams": { 3233 "type": "array", 3234 "items": { 3235 "$ref": "#/components/schemas/locale_team_preview" 3236 } 3237 }, 3238 "completed": { 3239 "type": "boolean" 3240 }, 3241 "translation_completed_at": { 3242 "type": "string", 3243 "format": "date-time" 3244 }, 3245 "review_completed_at": { 3246 "type": "string", 3247 "format": "date-time" 3248 } 3249 }, 3250 "example": { 3251 "id": "626ea67628690c73ac86ac81eec2d185", 3252 "job": { 3253 "id": "abcd1234cdef1234abcd1234cdef1234", 3254 "name": "My Job 1", 3255 "state": "completed" 3256 }, 3257 "users": [ 3258 { 3259 "id": "abcd1234cdef1234abcd1234cdef1234", 3260 "username": "joe.doe", 3261 "name": "Joe Doe", 3262 "role": "translator" 3263 } 3264 ], 3265 "teams": [ 3266 { 3267 "id": "abcd1234cdef1234abcd1234cdef1234", 3268 "name": "Joe's team", 3269 "role": "translator" 3270 } 3271 ], 3272 "locale": { 3273 "id": "abcd1234cdef1234abcd1234cdef1234", 3274 "name": "English", 3275 "code": "en-GB" 3276 }, 3277 "completed": true, 3278 "translation_completed_at": "2017-01-28T09:52:53Z", 3279 "review_completed_at": "2017-01-28T09:52:53Z" 3280 } 3281 }, 3282 "job_template": { 3283 "type": "object", 3284 "title": "job_template", 3285 "properties": { 3286 "id": { 3287 "type": "string" 3288 }, 3289 "name": { 3290 "type": "string" 3291 }, 3292 "briefing": { 3293 "type": "string" 3294 }, 3295 "project": { 3296 "$ref": "#/components/schemas/project_short" 3297 }, 3298 "branch": { 3299 "$ref": "#/components/schemas/job/properties/branch" 3300 }, 3301 "created_at": { 3302 "type": "string", 3303 "format": "date-time" 3304 }, 3305 "updated_at": { 3306 "type": "string", 3307 "format": "date-time" 3308 } 3309 }, 3310 "example": { 3311 "id": "626ea67628690c73ac86ac81eec2d185", 3312 "name": "template", 3313 "briefing": "text", 3314 "created_at": "2017-01-28T09:52:53Z", 3315 "updated_at": "2017-01-28T09:52:53Z", 3316 "project": { 3317 "id": "abcd1234cdef1234abcd1234cdef1234", 3318 "name": "My Android Project", 3319 "main_format": "xml", 3320 "created_at": "2015-01-28T09:52:53Z", 3321 "updated_at": "2015-01-28T09:52:53Z" 3322 } 3323 } 3324 }, 3325 "job_template_details": { 3326 "allOf": [ 3327 { 3328 "$ref": "#/components/schemas/job_template" 3329 }, 3330 { 3331 "type": "object", 3332 "title": "job_template_details", 3333 "properties": { 3334 "owner": { 3335 "$ref": "#/components/schemas/user_preview" 3336 }, 3337 "creator": { 3338 "$ref": "#/components/schemas/user_preview" 3339 }, 3340 "locales": { 3341 "type": "array", 3342 "items": { 3343 "$ref": "#/components/schemas/locale_preview" 3344 } 3345 } 3346 }, 3347 "example": { 3348 "owner": { 3349 "id": "abcd1234cdef1234abcd1234cdef1234", 3350 "username": "joe.doe", 3351 "name": "Joe Doe" 3352 }, 3353 "creator": { 3354 "id": "abcd1234cdef1234abcd1234cdef1234", 3355 "username": "joe.doe", 3356 "name": "Joe Doe" 3357 }, 3358 "locales": [ 3359 { 3360 "id": "abcd1234cdef1234abcd1234cdef1234", 3361 "name": "English", 3362 "code": "en-GB" 3363 } 3364 ] 3365 } 3366 } 3367 ] 3368 }, 3369 "job_template_locales": { 3370 "type": "object", 3371 "title": "job_template_locale", 3372 "properties": { 3373 "id": { 3374 "type": "string" 3375 }, 3376 "job_template": { 3377 "type": "object", 3378 "title": "job_template_preview", 3379 "properties": { 3380 "id": { 3381 "type": "string" 3382 }, 3383 "name": { 3384 "type": "string" 3385 } 3386 }, 3387 "example": null 3388 }, 3389 "locale": { 3390 "$ref": "#/components/schemas/locale_preview" 3391 }, 3392 "users": { 3393 "type": "array", 3394 "items": { 3395 "$ref": "#/components/schemas/locale_user_preview" 3396 } 3397 }, 3398 "teams": { 3399 "type": "array", 3400 "items": { 3401 "$ref": "#/components/schemas/locale_team_preview" 3402 } 3403 } 3404 }, 3405 "example": { 3406 "id": "626ea67628690c73ac86ac81eec2d185", 3407 "job_template": { 3408 "id": "abcd1234cdef1234abcd1234cdef1234", 3409 "name": "template" 3410 }, 3411 "users": [ 3412 { 3413 "id": "abcd1234cdef1234abcd1234cdef1234", 3414 "username": "joe.doe", 3415 "name": "Joe Doe", 3416 "role": "translator" 3417 } 3418 ], 3419 "teams": [ 3420 { 3421 "id": "abcd1234cdef1234abcd1234cdef1234", 3422 "name": "Joe's team", 3423 "role": "translator" 3424 } 3425 ], 3426 "locale": { 3427 "id": "abcd1234cdef1234abcd1234cdef1234", 3428 "name": "English", 3429 "code": "en-GB" 3430 } 3431 } 3432 }, 3433 "job_comment": { 3434 "type": "object", 3435 "title": "job_comment", 3436 "properties": { 3437 "id": { 3438 "type": "string" 3439 }, 3440 "message": { 3441 "type": "string" 3442 }, 3443 "job_id": { 3444 "type": "string" 3445 }, 3446 "user": { 3447 "$ref": "#/components/schemas/user_preview" 3448 }, 3449 "created_at": { 3450 "type": "string", 3451 "format": "date-time" 3452 }, 3453 "updated_at": { 3454 "type": "string", 3455 "format": "date-time" 3456 }, 3457 "mentioned_users": { 3458 "type": "array", 3459 "items": { 3460 "$ref": "#/components/schemas/user_preview" 3461 } 3462 } 3463 }, 3464 "example": { 3465 "id": "abcd1234cdef1234abcd1234cdef1234", 3466 "message": "Some message...", 3467 "job_id": "abcd1234cdef1234abcd1234cdef1234", 3468 "user": { 3469 "id": "abcd1234cdef1234abcd1234cdef1234", 3470 "username": "joe.doe", 3471 "name": "Joe Doe" 3472 }, 3473 "created_at": "2015-01-28T09:52:53Z", 3474 "updated_at": "2015-01-28T09:52:53Z" 3475 } 3476 }, 3477 "branch": { 3478 "type": "object", 3479 "title": "branch", 3480 "properties": { 3481 "base_project_id": { 3482 "type": "string" 3483 }, 3484 "branch_project_id": { 3485 "type": "string" 3486 }, 3487 "name": { 3488 "type": "string" 3489 }, 3490 "created_at": { 3491 "type": "string", 3492 "format": "date-time" 3493 }, 3494 "updated_at": { 3495 "type": "string", 3496 "format": "date-time" 3497 }, 3498 "merged_at": { 3499 "type": "string", 3500 "format": "date-time" 3501 }, 3502 "merged_by": { 3503 "$ref": "#/components/schemas/user_preview" 3504 }, 3505 "created_by": { 3506 "$ref": "#/components/schemas/user_preview" 3507 }, 3508 "state": { 3509 "type": "string" 3510 } 3511 }, 3512 "example": { 3513 "name": "new-branch", 3514 "created_at": "2015-01-28T09:52:53Z", 3515 "updated_at": "2015-01-28T09:52:53Z", 3516 "merged_at": "2015-01-28T09:52:53Z", 3517 "merged_by": { 3518 "id": "abcd1234cdef1234abcd1234cdef1234", 3519 "username": "joe.doe", 3520 "name": "Joe Doe" 3521 }, 3522 "created_by": { 3523 "id": "abcd1234cdef1234abcd1234cdef1234", 3524 "username": "joe.doe", 3525 "name": "Joe Doe" 3526 }, 3527 "state": "success" 3528 } 3529 }, 3530 "distribution_preview": { 3531 "type": "object", 3532 "title": "distribution_preview", 3533 "properties": { 3534 "id": { 3535 "type": "string" 3536 }, 3537 "name": { 3538 "type": "string" 3539 }, 3540 "project": { 3541 "$ref": "#/components/schemas/project_short" 3542 }, 3543 "platforms": { 3544 "type": "array", 3545 "items": { 3546 "type": "string" 3547 } 3548 }, 3549 "release_count": { 3550 "type": "integer" 3551 }, 3552 "created_at": { 3553 "type": "string", 3554 "format": "date-time" 3555 }, 3556 "deleted_at": { 3557 "type": "string", 3558 "format": "date-time" 3559 } 3560 }, 3561 "example": { 3562 "id": "abcd1234cdef1234abcd1234cdef1234", 3563 "name": "Android Distribution", 3564 "project": { 3565 "id": "abcd1234cdef1234abcd1234cdef1234", 3566 "name": "My Android Project", 3567 "main_format": "xml", 3568 "created_at": "2015-01-28T09:52:53Z", 3569 "updated_at": "2015-01-28T09:52:53Z" 3570 }, 3571 "platforms": [ 3572 "android" 3573 ], 3574 "release_count": 10, 3575 "created_at": "2015-01-28T09:52:53Z", 3576 "updated_at": "2015-01-28T09:52:53Z" 3577 } 3578 }, 3579 "distribution": { 3580 "type": "object", 3581 "title": "distribution", 3582 "properties": { 3583 "id": { 3584 "type": "string" 3585 }, 3586 "name": { 3587 "type": "string" 3588 }, 3589 "project": { 3590 "$ref": "#/components/schemas/project_short" 3591 }, 3592 "platforms": { 3593 "type": "array", 3594 "items": { 3595 "type": "string" 3596 } 3597 }, 3598 "locales": { 3599 "type": "array", 3600 "items": { 3601 "$ref": "#/components/schemas/locale_preview" 3602 } 3603 }, 3604 "releases": { 3605 "type": "array", 3606 "items": { 3607 "$ref": "#/components/schemas/release_preview" 3608 } 3609 }, 3610 "created_at": { 3611 "type": "string", 3612 "format": "date-time" 3613 }, 3614 "deleted_at": { 3615 "type": "string", 3616 "format": "date-time" 3617 } 3618 }, 3619 "example": { 3620 "id": "abcd1234cdef1234abcd1234cdef1234", 3621 "name": "Android Distribution", 3622 "project": { 3623 "id": "abcd1234cdef1234abcd1234cdef1234", 3624 "name": "My Android Project", 3625 "main_format": "xml", 3626 "created_at": "2015-01-28T09:52:53Z", 3627 "updated_at": "2015-01-28T09:52:53Z" 3628 }, 3629 "platforms": [ 3630 "android" 3631 ], 3632 "releases": [ 3633 { 3634 "id": "abcd1234cdef1234abcd1234cdef1234", 3635 "version": 1, 3636 "project": { 3637 "id": "abcd1234cdef1234abcd1234cdef1234", 3638 "name": "My Android Project", 3639 "main_format": "xml", 3640 "created_at": "2015-01-28T09:52:53Z", 3641 "updated_at": "2015-01-28T09:52:53Z" 3642 }, 3643 "platforms": [ 3644 "android" 3645 ], 3646 "environments": [ 3647 "development" 3648 ], 3649 "locale_codes": [ 3650 "de", 3651 "en" 3652 ], 3653 "created_at": "2015-01-28T09:52:53Z", 3654 "updated_at": "2015-01-28T09:52:53Z" 3655 } 3656 ], 3657 "created_at": "2015-01-28T09:52:53Z", 3658 "updated_at": "2015-01-28T09:52:53Z" 3659 } 3660 }, 3661 "release_preview": { 3662 "type": "object", 3663 "title": "release_preview", 3664 "properties": { 3665 "id": { 3666 "type": "string" 3667 }, 3668 "version": { 3669 "type": "integer" 3670 }, 3671 "app_min_version": { 3672 "type": "string" 3673 }, 3674 "app_max_version": { 3675 "type": "string" 3676 }, 3677 "description": { 3678 "type": "string" 3679 }, 3680 "platforms": { 3681 "type": "array", 3682 "items": { 3683 "type": "string" 3684 } 3685 }, 3686 "environments": { 3687 "type": "array", 3688 "items": { 3689 "type": "string" 3690 } 3691 }, 3692 "locale_codes": { 3693 "type": "array", 3694 "items": { 3695 "type": "string" 3696 } 3697 }, 3698 "tags": { 3699 "type": "array", 3700 "items": { 3701 "type": "string" 3702 } 3703 }, 3704 "project": { 3705 "$ref": "#/components/schemas/project_short" 3706 }, 3707 "created_at": { 3708 "type": "string", 3709 "format": "date-time" 3710 }, 3711 "updated_at": { 3712 "type": "string", 3713 "format": "date-time" 3714 } 3715 }, 3716 "example": { 3717 "id": "abcd1234cdef1234abcd1234cdef1234", 3718 "version": 1, 3719 "project": { 3720 "id": "abcd1234cdef1234abcd1234cdef1234", 3721 "name": "My Android Project", 3722 "main_format": "xml", 3723 "created_at": "2015-01-28T09:52:53Z", 3724 "updated_at": "2015-01-28T09:52:53Z" 3725 }, 3726 "platforms": [ 3727 "android" 3728 ], 3729 "environments": [ 3730 "development" 3731 ], 3732 "locale_codes": [ 3733 "de", 3734 "en" 3735 ], 3736 "tags": [ 3737 "android", 3738 "feature1" 3739 ], 3740 "created_at": "2015-01-28T09:52:53Z", 3741 "updated_at": "2015-01-28T09:52:53Z" 3742 } 3743 }, 3744 "release": { 3745 "type": "object", 3746 "title": "release", 3747 "properties": { 3748 "id": { 3749 "type": "string" 3750 }, 3751 "version": { 3752 "type": "integer" 3753 }, 3754 "app_min_version": { 3755 "type": "string" 3756 }, 3757 "app_max_version": { 3758 "type": "string" 3759 }, 3760 "description": { 3761 "type": "string" 3762 }, 3763 "platforms": { 3764 "type": "array", 3765 "items": { 3766 "type": "string" 3767 } 3768 }, 3769 "environments": { 3770 "type": "array", 3771 "items": { 3772 "type": "string" 3773 } 3774 }, 3775 "locales": { 3776 "type": "array", 3777 "items": { 3778 "$ref": "#/components/schemas/locale_preview" 3779 } 3780 }, 3781 "tags": { 3782 "type": "array", 3783 "items": { 3784 "type": "string" 3785 } 3786 }, 3787 "project": { 3788 "$ref": "#/components/schemas/project_short" 3789 }, 3790 "created_at": { 3791 "type": "string", 3792 "format": "date-time" 3793 }, 3794 "updated_at": { 3795 "type": "string", 3796 "format": "date-time" 3797 } 3798 }, 3799 "example": { 3800 "id": "abcd1234cdef1234abcd1234cdef1234", 3801 "version": 1, 3802 "project": { 3803 "id": "abcd1234cdef1234abcd1234cdef1234", 3804 "name": "My Android Project", 3805 "main_format": "xml", 3806 "created_at": "2015-01-28T09:52:53Z", 3807 "updated_at": "2015-01-28T09:52:53Z" 3808 }, 3809 "platforms": [ 3810 "android" 3811 ], 3812 "environments": [ 3813 "development", 3814 "production" 3815 ], 3816 "locales": [ 3817 { 3818 "id": "abcd1234cdef1234abcd1234cdef1234", 3819 "name": "English", 3820 "code": "en-GB" 3821 } 3822 ], 3823 "created_at": "2015-01-28T09:52:53Z", 3824 "updated_at": "2015-01-28T09:52:53Z" 3825 } 3826 }, 3827 "screenshot": { 3828 "type": "object", 3829 "title": "screenshot", 3830 "properties": { 3831 "id": { 3832 "type": "string" 3833 }, 3834 "name": { 3835 "type": "string" 3836 }, 3837 "description": { 3838 "type": "string" 3839 }, 3840 "screenshot_url": { 3841 "type": "string" 3842 }, 3843 "created_at": { 3844 "type": "string", 3845 "format": "date-time" 3846 }, 3847 "updated_at": { 3848 "type": "string", 3849 "format": "date-time" 3850 }, 3851 "markers_count": { 3852 "type": "integer" 3853 } 3854 }, 3855 "example": { 3856 "id": "d2e056aa9e70b01121f41693e344f5ee", 3857 "name": "A screenshot name", 3858 "description": "A screenshot description", 3859 "screenshot_url": "http://assets.example.com/screenshot.png", 3860 "created_at": "2015-01-28T09:52:53Z", 3861 "updated_at": "2015-01-28T09:52:53Z", 3862 "markers_count": 0 3863 } 3864 }, 3865 "screenshot_marker": { 3866 "type": "object", 3867 "title": "screenshot_marker", 3868 "properties": { 3869 "id": { 3870 "type": "string" 3871 }, 3872 "presentation": { 3873 "type": "string" 3874 }, 3875 "presentation_type": { 3876 "type": "string" 3877 }, 3878 "created_at": { 3879 "type": "string", 3880 "format": "date-time" 3881 }, 3882 "updated_at": { 3883 "type": "string", 3884 "format": "date-time" 3885 }, 3886 "translation_key": { 3887 "$ref": "#/components/schemas/translation_key" 3888 } 3889 }, 3890 "example": { 3891 "id": "d2e056aa9e70b01121f41693e344f5ee", 3892 "presentation": { 3893 "x": 10, 3894 "y": 10, 3895 "w": 10, 3896 "h": 10 3897 }, 3898 "presentation_type": "default", 3899 "created_at": "2015-01-28T09:52:53Z", 3900 "updated_at": "2015-01-28T09:52:53Z", 3901 "translation_key": { 3902 "id": "abcd1234cdef1234abcd1234cdef1234", 3903 "name": "home.index.headline", 3904 "description": "My description for this key...", 3905 "name_hash": "1b31d2580ce324f246f66b3be00ed399", 3906 "plural": false, 3907 "tags": [ 3908 "awesome-feature", 3909 "needs-proofreading" 3910 ], 3911 "data_type": "string", 3912 "created_at": "2015-01-28T09:52:53Z", 3913 "updated_at": "2015-01-28T09:52:53Z" 3914 } 3915 } 3916 }, 3917 "variable": { 3918 "type": "object", 3919 "title": "variable", 3920 "properties": { 3921 "name": { 3922 "type": "string" 3923 }, 3924 "value": { 3925 "type": "string" 3926 }, 3927 "created_at": { 3928 "type": "string", 3929 "format": "date-time" 3930 }, 3931 "updated_at": { 3932 "type": "string", 3933 "format": "date-time" 3934 } 3935 }, 3936 "example": { 3937 "name": "MY_VARIABLE", 3938 "value": "Hello World", 3939 "created_at": "2015-01-28T09:52:53Z", 3940 "updated_at": "2015-01-28T09:52:53Z" 3941 } 3942 }, 3943 "icu": { 3944 "type": "object", 3945 "title": "skeleton", 3946 "properties": { 3947 "locale_code": { 3948 "type": "string", 3949 "description": "Object keys are dynamic and based on requested locale codes, see example." 3950 } 3951 }, 3952 "example": { 3953 "en": "{number, plural, one {} other {}}", 3954 "de": "{number, plural, one {} other {}}" 3955 } 3956 }, 3957 "notification": { 3958 "type": "object", 3959 "title": "notification", 3960 "properties": { 3961 "id": { 3962 "type": "string" 3963 }, 3964 "event_name": { 3965 "type": "string" 3966 }, 3967 "created_at": { 3968 "type": "string", 3969 "format": "date-time" 3970 }, 3971 "updated_at": { 3972 "type": "string", 3973 "format": "date-time" 3974 }, 3975 "delivered_at": { 3976 "type": "string", 3977 "format": "date-time" 3978 }, 3979 "seen_at": { 3980 "type": "string", 3981 "format": "date-time" 3982 }, 3983 "data": { 3984 "type": "object" 3985 }, 3986 "resource": { 3987 "type": "object" 3988 }, 3989 "locale": { 3990 "$ref": "#/components/schemas/locale" 3991 }, 3992 "user": { 3993 "$ref": "#/components/schemas/user_preview" 3994 }, 3995 "project": { 3996 "$ref": "#/components/schemas/project" 3997 }, 3998 "account": { 3999 "$ref": "#/components/schemas/account" 4000 }, 4001 "group": { 4002 "$ref": "#/components/schemas/notification_group" 4003 } 4004 }, 4005 "example": { 4006 "id": "abcd1234", 4007 "event_name": "keys:create", 4008 "data": "object notification data", 4009 "resource": "object of notification resource", 4010 "locale": { 4011 "id": "abcd1234cdef1234abcd1234cdef1234", 4012 "name": "de", 4013 "code": "de-DE", 4014 "default": true, 4015 "main": false, 4016 "rtl": false, 4017 "plural_forms": [ 4018 "zero", 4019 "one", 4020 "other" 4021 ], 4022 "source_locale": { 4023 "id": "abcd1234cdef1234abcd1234cdef1234", 4024 "name": "en", 4025 "code": "en-GB" 4026 }, 4027 "created_at": "2015-01-28T09:52:53Z", 4028 "updated_at": "2015-01-28T09:52:53Z" 4029 }, 4030 "user": { 4031 "id": "abcd1234cdef1234abcd1234cdef1234", 4032 "username": "joe.doe", 4033 "name": "Joe Doe" 4034 }, 4035 "project": { 4036 "id": "abcd1234cdef1234abcd1234cdef1234", 4037 "name": "My Android Project", 4038 "main_format": "xml", 4039 "project_image_url": "http://assets.example.com/project.png", 4040 "account": { 4041 "id": "abcd1234", 4042 "name": "Company Account", 4043 "slug": "company_account", 4044 "company": "My Awesome Company", 4045 "created_at": "2015-01-28T09:52:53Z", 4046 "updated_at": "2015-01-28T09:52:53Z", 4047 "company_logo_url": "http://assets.example.com/company_logo.png" 4048 }, 4049 "created_at": "2015-01-28T09:52:53Z", 4050 "updated_at": "2015-01-28T09:52:53Z" 4051 }, 4052 "account": { 4053 "id": "abcd1234", 4054 "name": "Company Account", 4055 "slug": "company_account", 4056 "company": "My Awesome Company", 4057 "created_at": "2015-01-28T09:52:53Z", 4058 "updated_at": "2015-01-28T09:52:53Z", 4059 "company_logo_url": "http://assets.example.com/company_logo.png" 4060 }, 4061 "group": { 4062 "id": "abcd1234cdef1234abcd1234cdef1234", 4063 "event_name": "keys:create", 4064 "created_at": "2015-01-28T09:52:53Z", 4065 "updated_at": "2015-01-28T09:52:53Z" 4066 } 4067 } 4068 }, 4069 "notification_group": { 4070 "type": "object", 4071 "title": "notification_group", 4072 "properties": { 4073 "id": { 4074 "type": "string" 4075 }, 4076 "event_name": { 4077 "type": "string" 4078 }, 4079 "created_at": { 4080 "type": "string", 4081 "format": "date-time" 4082 }, 4083 "updated_at": { 4084 "type": "string", 4085 "format": "date-time" 4086 } 4087 }, 4088 "example": { 4089 "id": "abcd1234cdef1234abcd1234cdef1234", 4090 "event_name": "keys:create", 4091 "created_at": "2015-01-28T09:52:53Z", 4092 "updated_at": "2015-01-28T09:52:53Z" 4093 } 4094 }, 4095 "notification_group_detail": { 4096 "type": "object", 4097 "title": "notification_group_detail", 4098 "properties": { 4099 "id": { 4100 "type": "string" 4101 }, 4102 "event_name": { 4103 "type": "string" 4104 }, 4105 "created_at": { 4106 "type": "string", 4107 "format": "date-time" 4108 }, 4109 "updated_at": { 4110 "type": "string", 4111 "format": "date-time" 4112 }, 4113 "notifications_count": { 4114 "type": "integer" 4115 }, 4116 "latest_notification": { 4117 "$ref": "#/components/schemas/notification" 4118 } 4119 }, 4120 "example": { 4121 "id": "abcd1234cdef1234abcd1234cdef1234", 4122 "event_name": "keys:create", 4123 "created_at": "2015-01-28T09:52:53Z", 4124 "updated_at": "2015-01-28T09:52:53Z", 4125 "latest_notification": { 4126 "id": "abcd1234", 4127 "event_name": "keys:create", 4128 "data": "object notification data", 4129 "resource": "object of notification resource", 4130 "locale": { 4131 "id": "abcd1234cdef1234abcd1234cdef1234", 4132 "name": "de", 4133 "code": "de-DE", 4134 "default": true, 4135 "main": false, 4136 "rtl": false, 4137 "plural_forms": [ 4138 "zero", 4139 "one", 4140 "other" 4141 ], 4142 "source_locale": { 4143 "id": "abcd1234cdef1234abcd1234cdef1234", 4144 "name": "en", 4145 "code": "en-GB" 4146 }, 4147 "created_at": "2015-01-28T09:52:53Z", 4148 "updated_at": "2015-01-28T09:52:53Z" 4149 }, 4150 "user": { 4151 "id": "abcd1234cdef1234abcd1234cdef1234", 4152 "username": "joe.doe", 4153 "name": "Joe Doe" 4154 }, 4155 "project": { 4156 "id": "abcd1234cdef1234abcd1234cdef1234", 4157 "name": "My Android Project", 4158 "main_format": "xml", 4159 "project_image_url": "http://assets.example.com/project.png", 4160 "account": { 4161 "id": "abcd1234", 4162 "name": "Company Account", 4163 "slug": "company_account", 4164 "company": "My Awesome Company", 4165 "created_at": "2015-01-28T09:52:53Z", 4166 "updated_at": "2015-01-28T09:52:53Z", 4167 "company_logo_url": "http://assets.example.com/company_logo.png" 4168 }, 4169 "created_at": "2015-01-28T09:52:53Z", 4170 "updated_at": "2015-01-28T09:52:53Z" 4171 }, 4172 "account": { 4173 "id": "abcd1234", 4174 "name": "Company Account", 4175 "slug": "company_account", 4176 "company": "My Awesome Company", 4177 "created_at": "2015-01-28T09:52:53Z", 4178 "updated_at": "2015-01-28T09:52:53Z", 4179 "company_logo_url": "http://assets.example.com/company_logo.png" 4180 }, 4181 "group": { 4182 "id": "abcd1234cdef1234abcd1234cdef1234", 4183 "event_name": "keys:create", 4184 "created_at": "2015-01-28T09:52:53Z", 4185 "updated_at": "2015-01-28T09:52:53Z" 4186 } 4187 } 4188 } 4189 }, 4190 "organization_job_template": { 4191 "type": "object", 4192 "title": "organization_job_template", 4193 "properties": { 4194 "id": { 4195 "type": "string" 4196 }, 4197 "name": { 4198 "type": "string" 4199 }, 4200 "briefing": { 4201 "type": "string" 4202 }, 4203 "created_at": { 4204 "type": "string", 4205 "format": "date-time" 4206 }, 4207 "updated_at": { 4208 "type": "string", 4209 "format": "date-time" 4210 } 4211 }, 4212 "example": { 4213 "id": "626ea67628690c73ac86ac81eec2d185", 4214 "name": "template", 4215 "briefing": "text", 4216 "created_at": "2017-01-28T09:52:53Z", 4217 "updated_at": "2017-01-28T09:52:53Z" 4218 } 4219 }, 4220 "organization_job_template_details": { 4221 "allOf": [ 4222 { 4223 "$ref": "#/components/schemas/organization_job_template" 4224 }, 4225 { 4226 "type": "object", 4227 "title": "organization_job_template_details", 4228 "properties": { 4229 "owner": { 4230 "$ref": "#/components/schemas/user_preview" 4231 }, 4232 "creator": { 4233 "$ref": "#/components/schemas/user_preview" 4234 }, 4235 "locales": { 4236 "type": "array", 4237 "items": { 4238 "$ref": "#/components/schemas/locale_preview" 4239 } 4240 } 4241 }, 4242 "example": { 4243 "owner": { 4244 "id": "abcd1234cdef1234abcd1234cdef1234", 4245 "username": "joe.doe", 4246 "name": "Joe Doe" 4247 }, 4248 "creator": { 4249 "id": "abcd1234cdef1234abcd1234cdef1234", 4250 "username": "joe.doe", 4251 "name": "Joe Doe" 4252 }, 4253 "locales": [ 4254 { 4255 "id": "abcd1234cdef1234abcd1234cdef1234", 4256 "name": "English", 4257 "code": "en-GB" 4258 } 4259 ] 4260 } 4261 } 4262 ] 4263 }, 4264 "key_link": { 4265 "type": "object", 4266 "properties": { 4267 "created_at": { 4268 "type": "string", 4269 "format": "date-time", 4270 "description": "The timestamp when the link was created." 4271 }, 4272 "updated_at": { 4273 "type": "string", 4274 "format": "date-time", 4275 "description": "The timestamp when the link was last updated." 4276 }, 4277 "created_by": { 4278 "$ref": "#/components/schemas/user_preview", 4279 "description": "The user who created the link." 4280 }, 4281 "updated_by": { 4282 "$ref": "#/components/schemas/user_preview", 4283 "description": "The user who last updated the link." 4284 }, 4285 "account": { 4286 "$ref": "#/components/schemas/account", 4287 "description": "The account associated with the link." 4288 }, 4289 "parent": { 4290 "$ref": "#/components/schemas/key_preview", 4291 "description": "The parent translation key in the link." 4292 }, 4293 "children": { 4294 "type": "array", 4295 "items": { 4296 "$ref": "#/components/schemas/key_preview" 4297 }, 4298 "description": "The child translation keys linked to the parent." 4299 } 4300 } 4301 }, 4302 "repo_sync": { 4303 "type": "object", 4304 "title": "repo_sync", 4305 "properties": { 4306 "id": { 4307 "type": "string" 4308 }, 4309 "project": { 4310 "$ref": "#/components/schemas/project_short" 4311 }, 4312 "provider": { 4313 "type": "string" 4314 }, 4315 "enabled": { 4316 "type": "boolean" 4317 }, 4318 "auto_import": { 4319 "type": "boolean" 4320 }, 4321 "repo_name": { 4322 "type": "string" 4323 }, 4324 "created_at": { 4325 "type": "string", 4326 "format": "date-time" 4327 }, 4328 "last_import_at": { 4329 "type": "string", 4330 "format": "date-time" 4331 }, 4332 "last_export_at": { 4333 "type": "string", 4334 "format": "date-time" 4335 } 4336 }, 4337 "example": { 4338 "id": "abcd1234cdef1234abcd1234cdef1234", 4339 "project": { 4340 "id": "abcd1234cdef1234abcd1234cdef1234", 4341 "name": "My Android Project", 4342 "main_format": "xml", 4343 "created_at": "2015-01-28T09:52:53Z", 4344 "updated_at": "2015-01-28T09:52:53Z" 4345 }, 4346 "provider": "github", 4347 "enabled": true, 4348 "auto_import": true, 4349 "repo_name": "organization/repo", 4350 "created_at": "2015-01-28T09:52:53Z", 4351 "last_import_at": "2015-01-28T09:52:53Z", 4352 "last_export_at": "2015-01-28T09:52:53Z" 4353 } 4354 }, 4355 "repo_sync_event": { 4356 "type": "object", 4357 "title": "repo_sync_event", 4358 "properties": { 4359 "event_type": { 4360 "type": "string", 4361 "enum": [ 4362 "import", 4363 "export" 4364 ] 4365 }, 4366 "created_at": { 4367 "type": "string", 4368 "format": "date-time" 4369 }, 4370 "status": { 4371 "type": "string", 4372 "enum": [ 4373 "running", 4374 "success", 4375 "failure" 4376 ] 4377 }, 4378 "pull_request_url": { 4379 "type": "string", 4380 "description": "URL of the pull request created on export" 4381 }, 4382 "auto_import": { 4383 "type": "boolean", 4384 "description": "Whether the import was triggered by the repo push event" 4385 }, 4386 "errors": { 4387 "description": "List of error messages, in case of failure", 4388 "type": "array", 4389 "items": { 4390 "anyOf": [ 4391 { 4392 "type": "string" 4393 }, 4394 { 4395 "type": "object" 4396 } 4397 ] 4398 } 4399 } 4400 }, 4401 "example": { 4402 "event_type": "import", 4403 "created_at": "2015-01-28T09:52:53Z", 4404 "status": "failure", 4405 "auto_import": true, 4406 "errors": [ 4407 "Error message", 4408 "Error message" 4409 ] 4410 } 4411 } 4412 }, 4413 "parameters": { 4414 "X-PhraseApp-OTP": { 4415 "in": "header", 4416 "name": "X-PhraseApp-OTP", 4417 "description": "Two-Factor-Authentication token (optional)", 4418 "required": false, 4419 "allowEmptyValue": false, 4420 "schema": { 4421 "type": "string" 4422 } 4423 }, 4424 "If-Modified-Since": { 4425 "description": "Last modified condition, see <a href=\"#overview--conditional-get-requests--http-caching\">Conditional GET requests / HTTP Caching</a> (optional)", 4426 "explode": false, 4427 "in": "header", 4428 "name": "If-Modified-Since", 4429 "required": false, 4430 "schema": { 4431 "type": "string" 4432 }, 4433 "style": "simple" 4434 }, 4435 "If-None-Match": { 4436 "description": "ETag condition, see <a href=\"#overview--conditional-get-requests--http-caching\">Conditional GET requests / HTTP Caching</a> (optional)", 4437 "explode": false, 4438 "in": "header", 4439 "name": "If-None-Match", 4440 "required": false, 4441 "schema": { 4442 "type": "string" 4443 }, 4444 "style": "simple" 4445 }, 4446 "account_id": { 4447 "in": "path", 4448 "name": "account_id", 4449 "description": "Account ID", 4450 "required": true, 4451 "schema": { 4452 "type": "string" 4453 } 4454 }, 4455 "custom_metadata_data_type": { 4456 "in": "query", 4457 "name": "data_type", 4458 "description": "Data Type of Custom Metadata Property", 4459 "required": false, 4460 "schema": { 4461 "$ref": "#/components/schemas/custom_metadata_data_type" 4462 }, 4463 "example": "boolean" 4464 }, 4465 "query_account_id": { 4466 "in": "query", 4467 "name": "account_id", 4468 "description": "Filter by Account ID", 4469 "required": false, 4470 "schema": { 4471 "type": "string" 4472 } 4473 }, 4474 "repo_sync_id": { 4475 "in": "path", 4476 "name": "repo_sync_id", 4477 "description": "Repo Sync ID", 4478 "required": true, 4479 "schema": { 4480 "type": "string" 4481 } 4482 }, 4483 "space_id": { 4484 "in": "path", 4485 "name": "space_id", 4486 "description": "Space ID", 4487 "required": true, 4488 "schema": { 4489 "type": "string" 4490 } 4491 }, 4492 "team_id": { 4493 "in": "path", 4494 "name": "team_id", 4495 "description": "Team ID", 4496 "required": true, 4497 "schema": { 4498 "type": "string" 4499 } 4500 }, 4501 "project_id": { 4502 "in": "path", 4503 "name": "project_id", 4504 "description": "Project ID", 4505 "required": true, 4506 "schema": { 4507 "type": "string" 4508 } 4509 }, 4510 "key_id": { 4511 "in": "path", 4512 "name": "key_id", 4513 "description": "Translation Key ID", 4514 "required": true, 4515 "schema": { 4516 "type": "string" 4517 } 4518 }, 4519 "key_id_as_id": { 4520 "in": "path", 4521 "name": "id", 4522 "description": "Parent Translation Key ID", 4523 "required": true, 4524 "schema": { 4525 "type": "string" 4526 } 4527 }, 4528 "figma_attachment_id": { 4529 "in": "path", 4530 "name": "figma_attachment_id", 4531 "description": "Figma attachment ID", 4532 "required": true, 4533 "schema": { 4534 "type": "string" 4535 } 4536 }, 4537 "job_id": { 4538 "in": "path", 4539 "name": "job_id", 4540 "description": "Job ID", 4541 "required": true, 4542 "schema": { 4543 "type": "string" 4544 } 4545 }, 4546 "job_template_id": { 4547 "in": "path", 4548 "name": "job_template_id", 4549 "description": "Job Template ID", 4550 "required": true, 4551 "schema": { 4552 "type": "string" 4553 } 4554 }, 4555 "job_template_locale_id": { 4556 "in": "path", 4557 "name": "job_template_locale_id", 4558 "description": "Job Template Locale ID", 4559 "required": true, 4560 "schema": { 4561 "type": "string" 4562 } 4563 }, 4564 "distribution_id": { 4565 "in": "path", 4566 "name": "distribution_id", 4567 "description": "Distribution ID", 4568 "required": true, 4569 "schema": { 4570 "type": "string" 4571 } 4572 }, 4573 "screenshot_id": { 4574 "in": "path", 4575 "name": "screenshot_id", 4576 "description": "Screenshot ID", 4577 "required": true, 4578 "schema": { 4579 "type": "string" 4580 } 4581 }, 4582 "translation_id": { 4583 "in": "path", 4584 "name": "translation_id", 4585 "description": "Translation ID", 4586 "required": true, 4587 "schema": { 4588 "type": "string" 4589 } 4590 }, 4591 "glossary_id": { 4592 "in": "path", 4593 "name": "glossary_id", 4594 "description": "Glossary ID", 4595 "required": true, 4596 "schema": { 4597 "type": "string" 4598 } 4599 }, 4600 "comment_id": { 4601 "in": "path", 4602 "name": "comment_id", 4603 "description": "Comment ID", 4604 "required": true, 4605 "schema": { 4606 "type": "string" 4607 } 4608 }, 4609 "term_id": { 4610 "in": "path", 4611 "name": "term_id", 4612 "description": "Term ID", 4613 "required": true, 4614 "schema": { 4615 "type": "string" 4616 } 4617 }, 4618 "locale_codes": { 4619 "in": "query", 4620 "name": "locale_codes", 4621 "description": "Locale Code", 4622 "required": false, 4623 "schema": { 4624 "type": "string" 4625 } 4626 }, 4627 "locale_id": { 4628 "in": "path", 4629 "name": "locale_id", 4630 "description": "Locale ID", 4631 "required": true, 4632 "schema": { 4633 "type": "string" 4634 } 4635 }, 4636 "locale_id_as_id": { 4637 "in": "path", 4638 "name": "id", 4639 "description": "Locale ID or locale name", 4640 "required": true, 4641 "schema": { 4642 "type": "string" 4643 } 4644 }, 4645 "gitlab_sync_id": { 4646 "in": "path", 4647 "name": "gitlab_sync_id", 4648 "description": "Gitlab Sync ID", 4649 "required": true, 4650 "schema": { 4651 "type": "string" 4652 } 4653 }, 4654 "id": { 4655 "in": "path", 4656 "name": "id", 4657 "description": "ID", 4658 "required": true, 4659 "schema": { 4660 "type": "string" 4661 } 4662 }, 4663 "name": { 4664 "in": "path", 4665 "name": "name", 4666 "description": "name", 4667 "required": true, 4668 "schema": { 4669 "type": "string" 4670 } 4671 }, 4672 "tag": { 4673 "in": "query", 4674 "name": "tag", 4675 "description": "tag", 4676 "required": false, 4677 "schema": { 4678 "type": "string" 4679 } 4680 }, 4681 "page": { 4682 "in": "query", 4683 "name": "page", 4684 "description": "Page number", 4685 "required": false, 4686 "allowEmptyValue": false, 4687 "schema": { 4688 "type": "integer" 4689 }, 4690 "example": 1 4691 }, 4692 "per_page": { 4693 "in": "query", 4694 "name": "per_page", 4695 "description": "Limit on the number of objects to be returned, between 1 and 100. 25 by default", 4696 "required": false, 4697 "allowEmptyValue": false, 4698 "schema": { 4699 "type": "integer" 4700 }, 4701 "example": 25 4702 }, 4703 "webhook_id": { 4704 "in": "path", 4705 "name": "webhook_id", 4706 "description": "Webhook ID", 4707 "required": true, 4708 "schema": { 4709 "type": "string" 4710 } 4711 }, 4712 "response_status_codes": { 4713 "in": "query", 4714 "name": "response_status_codes", 4715 "description": "List of Response Status Codes", 4716 "required": false, 4717 "schema": { 4718 "type": "string" 4719 } 4720 } 4721 }, 4722 "responses": { 4723 "200": { 4724 "description": "OK", 4725 "headers": { 4726 "X-Rate-Limit-Limit": { 4727 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4728 }, 4729 "X-Rate-Limit-Remaining": { 4730 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4731 }, 4732 "X-Rate-Limit-Reset": { 4733 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4734 } 4735 } 4736 }, 4737 "201": { 4738 "description": "The resource has been created", 4739 "headers": { 4740 "X-Rate-Limit-Limit": { 4741 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4742 }, 4743 "X-Rate-Limit-Remaining": { 4744 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4745 }, 4746 "X-Rate-Limit-Reset": { 4747 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4748 } 4749 } 4750 }, 4751 "204": { 4752 "description": "The resource was deleted successfully.", 4753 "headers": { 4754 "X-Rate-Limit-Limit": { 4755 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4756 }, 4757 "X-Rate-Limit-Remaining": { 4758 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4759 }, 4760 "X-Rate-Limit-Reset": { 4761 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4762 } 4763 } 4764 }, 4765 "400": { 4766 "description": "Bad request", 4767 "headers": { 4768 "X-Rate-Limit-Limit": { 4769 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4770 }, 4771 "X-Rate-Limit-Remaining": { 4772 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4773 }, 4774 "X-Rate-Limit-Reset": { 4775 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4776 } 4777 } 4778 }, 4779 "401": { 4780 "description": "Unauthorized" 4781 }, 4782 "403": { 4783 "description": "Forbidden", 4784 "headers": { 4785 "X-Rate-Limit-Limit": { 4786 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4787 }, 4788 "X-Rate-Limit-Remaining": { 4789 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4790 }, 4791 "X-Rate-Limit-Reset": { 4792 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4793 } 4794 } 4795 }, 4796 "404": { 4797 "description": "Not Found", 4798 "headers": { 4799 "X-Rate-Limit-Limit": { 4800 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4801 }, 4802 "X-Rate-Limit-Remaining": { 4803 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4804 }, 4805 "X-Rate-Limit-Reset": { 4806 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4807 } 4808 } 4809 }, 4810 "422": { 4811 "description": "Unprocessable entity", 4812 "content": { 4813 "application/json": { 4814 "schema": { 4815 "type": "object", 4816 "properties": { 4817 "message": { 4818 "type": "string" 4819 }, 4820 "errors": { 4821 "type": "array", 4822 "items": { 4823 "type": "object", 4824 "properties": { 4825 "resource": { 4826 "type": "string" 4827 }, 4828 "field": { 4829 "type": "string" 4830 }, 4831 "message": { 4832 "type": "string" 4833 } 4834 } 4835 } 4836 } 4837 }, 4838 "example": { 4839 "message": "Validation Failed", 4840 "errors": [ 4841 { 4842 "resource": "Resource", 4843 "field": "name", 4844 "message": "can't be blank" 4845 } 4846 ] 4847 } 4848 } 4849 } 4850 }, 4851 "headers": { 4852 "X-Rate-Limit-Limit": { 4853 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4854 }, 4855 "X-Rate-Limit-Remaining": { 4856 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4857 }, 4858 "X-Rate-Limit-Reset": { 4859 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4860 } 4861 } 4862 }, 4863 "429": { 4864 "description": "Rate Limiting", 4865 "headers": { 4866 "X-Rate-Limit-Limit": { 4867 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4868 }, 4869 "X-Rate-Limit-Remaining": { 4870 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4871 }, 4872 "X-Rate-Limit-Reset": { 4873 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4874 } 4875 } 4876 }, 4877 "503": { 4878 "description": "Server error" 4879 }, 4880 "504": { 4881 "description": "Gateway timeout" 4882 } 4883 } 4884 }, 4885 "paths": { 4886 "/icu/skeleton": { 4887 "post": { 4888 "summary": "Build ICU skeletons", 4889 "description": "Returns ICU skeletons for multiple locale codes based on a source content.", 4890 "operationId": "icu/skeleton", 4891 "tags": [ 4892 "ICU" 4893 ], 4894 "parameters": [ 4895 { 4896 "$ref": "#/components/parameters/X-PhraseApp-OTP" 4897 } 4898 ], 4899 "responses": { 4900 "200": { 4901 "description": "OK", 4902 "content": { 4903 "application/json": { 4904 "schema": { 4905 "$ref": "#/components/schemas/icu" 4906 } 4907 } 4908 }, 4909 "headers": { 4910 "X-Rate-Limit-Limit": { 4911 "$ref": "#/components/headers/X-Rate-Limit-Limit" 4912 }, 4913 "X-Rate-Limit-Remaining": { 4914 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 4915 }, 4916 "X-Rate-Limit-Reset": { 4917 "$ref": "#/components/headers/X-Rate-Limit-Reset" 4918 }, 4919 "Link": { 4920 "$ref": "#/components/headers/Link" 4921 } 4922 } 4923 }, 4924 "400": { 4925 "$ref": "#/components/responses/400" 4926 }, 4927 "404": { 4928 "$ref": "#/components/responses/404" 4929 }, 4930 "429": { 4931 "$ref": "#/components/responses/429" 4932 } 4933 }, 4934 "x-code-samples": [ 4935 { 4936 "lang": "Curl", 4937 "source": "curl \"https://api.phrase.com/v2/icu/skeleton\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"content\":\"{number, plural, one {One} other {%{n}}}\",\"locale_codes\":[\"en\"],\"zero_form_enabled\": true}' \\\n -H 'Content-Type: application/json'" 4938 }, 4939 { 4940 "lang": "CLI v2", 4941 "source": "phrase icu skeleton \\\n--data '{\"content\":\"{number, plural, one {One} other {%{n}}}\",\"locale_codes\":[\"en\"],\"zero_form_enabled\": true}' \\\n--access_token <token>" 4942 } 4943 ], 4944 "requestBody": { 4945 "required": true, 4946 "content": { 4947 "application/json": { 4948 "schema": { 4949 "type": "object", 4950 "title": "icu/skeleton/parameters", 4951 "properties": { 4952 "content": { 4953 "description": "Source content", 4954 "type": "string", 4955 "example": "{number, plural, one {One} other {%{n}}}" 4956 }, 4957 "locale_codes": { 4958 "description": "Locale codes", 4959 "type": "array", 4960 "items": { 4961 "type": "string", 4962 "example": "en" 4963 }, 4964 "example": [ 4965 "en" 4966 ] 4967 }, 4968 "keep_content": { 4969 "description": "Keep the content and add missing plural forms for each locale", 4970 "type": "boolean", 4971 "example": null 4972 }, 4973 "zero_form_enabled": { 4974 "description": "Indicates whether the zero form should be included or excluded in the returned skeletons", 4975 "type": "boolean", 4976 "example": null 4977 }, 4978 "cldr_version": { 4979 "description": "Strings supports two CLDR variants, when it comes to pluralization rules. \\\nYou can choose which one you want to use when constructing the skeletons. Possible values \\\nare `legacy` and `cldr_41`. Default value is `legacy`.", 4980 "type": "string", 4981 "example": "cldr_41" 4982 } 4983 } 4984 } 4985 } 4986 } 4987 }, 4988 "x-cli-version": "2.9" 4989 } 4990 }, 4991 "/formats": { 4992 "get": { 4993 "summary": "List formats", 4994 "description": "Get a handy list of all localization file formats supported in Phrase.", 4995 "operationId": "formats/list", 4996 "tags": [ 4997 "Formats" 4998 ], 4999 "parameters": [ 5000 { 5001 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5002 } 5003 ], 5004 "responses": { 5005 "200": { 5006 "description": "OK", 5007 "content": { 5008 "application/json": { 5009 "schema": { 5010 "type": "array", 5011 "items": { 5012 "$ref": "#/components/schemas/format" 5013 } 5014 } 5015 } 5016 }, 5017 "headers": { 5018 "X-Rate-Limit-Limit": { 5019 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5020 }, 5021 "X-Rate-Limit-Remaining": { 5022 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5023 }, 5024 "X-Rate-Limit-Reset": { 5025 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5026 }, 5027 "Link": { 5028 "$ref": "#/components/headers/Link" 5029 }, 5030 "Pagination": { 5031 "$ref": "#/components/headers/Pagination" 5032 } 5033 } 5034 }, 5035 "400": { 5036 "$ref": "#/components/responses/400" 5037 }, 5038 "404": { 5039 "$ref": "#/components/responses/404" 5040 }, 5041 "429": { 5042 "$ref": "#/components/responses/429" 5043 } 5044 }, 5045 "x-code-samples": [ 5046 { 5047 "lang": "Curl", 5048 "source": "curl \"https://api.phrase.com/v2/formats\"" 5049 }, 5050 { 5051 "lang": "CLI v2", 5052 "source": "phrase formats list \\\n--access_token <token>" 5053 } 5054 ], 5055 "x-cli-version": "2.5" 5056 } 5057 }, 5058 "/projects/{project_id}/documents": { 5059 "get": { 5060 "summary": "List documents", 5061 "description": "List all documents the current user has access to.", 5062 "operationId": "documents/list", 5063 "tags": [ 5064 "Documents" 5065 ], 5066 "parameters": [ 5067 { 5068 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5069 }, 5070 { 5071 "$ref": "#/components/parameters/page" 5072 }, 5073 { 5074 "$ref": "#/components/parameters/per_page" 5075 }, 5076 { 5077 "$ref": "#/components/parameters/project_id" 5078 } 5079 ], 5080 "responses": { 5081 "200": { 5082 "description": "OK", 5083 "content": { 5084 "application/json": { 5085 "schema": { 5086 "type": "array", 5087 "items": { 5088 "type": "object", 5089 "title": "document", 5090 "properties": { 5091 "id": { 5092 "type": "string" 5093 }, 5094 "name": { 5095 "type": "string" 5096 }, 5097 "created_at": { 5098 "type": "string", 5099 "format": "date-time" 5100 }, 5101 "updated_at": { 5102 "type": "string", 5103 "format": "date-time" 5104 } 5105 }, 5106 "example": { 5107 "id": "abcd1234cdef1234abcd1234cdef1234", 5108 "name": "email.html", 5109 "created_at": "2015-01-28T09:52:53Z", 5110 "updated_at": "2015-01-28T09:52:53Z" 5111 } 5112 } 5113 } 5114 } 5115 }, 5116 "headers": { 5117 "X-Rate-Limit-Limit": { 5118 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5119 }, 5120 "X-Rate-Limit-Remaining": { 5121 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5122 }, 5123 "X-Rate-Limit-Reset": { 5124 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5125 }, 5126 "Link": { 5127 "$ref": "#/components/headers/Link" 5128 }, 5129 "Pagination": { 5130 "$ref": "#/components/headers/Pagination" 5131 } 5132 } 5133 }, 5134 "400": { 5135 "$ref": "#/components/responses/400" 5136 }, 5137 "404": { 5138 "$ref": "#/components/responses/404" 5139 }, 5140 "429": { 5141 "$ref": "#/components/responses/429" 5142 } 5143 }, 5144 "x-code-samples": [ 5145 { 5146 "lang": "Curl", 5147 "source": "curl \"https://api.phrase.com/v2/documents?project_id=asdf\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 5148 }, 5149 { 5150 "lang": "CLI v2", 5151 "source": "phrase documents list \\\n--project_id <project_id> \\\n--access_token <token>" 5152 } 5153 ], 5154 "x-cli-version": "2.5" 5155 } 5156 }, 5157 "/projects/{project_id}/documents/{id}": { 5158 "delete": { 5159 "summary": "Delete document", 5160 "description": "Delete an existing document.", 5161 "operationId": "document/delete", 5162 "tags": [ 5163 "Documents" 5164 ], 5165 "parameters": [ 5166 { 5167 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5168 }, 5169 { 5170 "$ref": "#/components/parameters/project_id" 5171 }, 5172 { 5173 "$ref": "#/components/parameters/id" 5174 } 5175 ], 5176 "responses": { 5177 "200": { 5178 "$ref": "#/components/responses/200" 5179 }, 5180 "400": { 5181 "$ref": "#/components/responses/400" 5182 }, 5183 "404": { 5184 "$ref": "#/components/responses/404" 5185 }, 5186 "429": { 5187 "$ref": "#/components/responses/429" 5188 } 5189 }, 5190 "x-code-samples": [ 5191 { 5192 "lang": "Curl", 5193 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/documents/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -H 'Content-Type: application/json'" 5194 }, 5195 { 5196 "lang": "CLI v2", 5197 "source": "phrase documents delete \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 5198 } 5199 ], 5200 "x-cli-version": "2.5" 5201 } 5202 }, 5203 "/projects/{project_id}/report": { 5204 "get": { 5205 "summary": "Get Project Report", 5206 "description": "Get report of a single project.", 5207 "operationId": "report/show", 5208 "tags": [ 5209 "Reports" 5210 ], 5211 "parameters": [ 5212 { 5213 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5214 }, 5215 { 5216 "$ref": "#/components/parameters/project_id" 5217 }, 5218 { 5219 "description": "specify the branch to use", 5220 "example": "my-feature-branch", 5221 "name": "branch", 5222 "in": "query", 5223 "schema": { 5224 "type": "string" 5225 } 5226 } 5227 ], 5228 "responses": { 5229 "200": { 5230 "description": "OK", 5231 "content": { 5232 "application/json": { 5233 "schema": { 5234 "$ref": "#/components/schemas/project_report" 5235 } 5236 } 5237 }, 5238 "headers": { 5239 "X-Rate-Limit-Limit": { 5240 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5241 }, 5242 "X-Rate-Limit-Remaining": { 5243 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5244 }, 5245 "X-Rate-Limit-Reset": { 5246 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5247 }, 5248 "Link": { 5249 "$ref": "#/components/headers/Link" 5250 } 5251 } 5252 }, 5253 "400": { 5254 "$ref": "#/components/responses/400" 5255 }, 5256 "404": { 5257 "$ref": "#/components/responses/404" 5258 }, 5259 "429": { 5260 "$ref": "#/components/responses/429" 5261 } 5262 }, 5263 "x-code-samples": [ 5264 { 5265 "lang": "Curl", 5266 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/report?branch=my-feature-branch\" \\\n -X GET \\\n -u USERNAME_OR_ACCESS_TOKEN" 5267 }, 5268 { 5269 "lang": "CLI v2", 5270 "source": "phrase report show \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5271 } 5272 ], 5273 "x-cli-version": "2.13" 5274 } 5275 }, 5276 "/projects/{project_id}/report/locales": { 5277 "get": { 5278 "summary": "List Locale Reports", 5279 "description": "List all locale reports for the given project", 5280 "operationId": "report/locales/list", 5281 "tags": [ 5282 "Reports" 5283 ], 5284 "parameters": [ 5285 { 5286 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5287 }, 5288 { 5289 "$ref": "#/components/parameters/project_id" 5290 }, 5291 { 5292 "$ref": "#/components/parameters/page" 5293 }, 5294 { 5295 "$ref": "#/components/parameters/per_page" 5296 }, 5297 { 5298 "$ref": "#/components/parameters/locale_codes" 5299 }, 5300 { 5301 "$ref": "#/components/parameters/tag" 5302 }, 5303 { 5304 "description": "specify the branch to use", 5305 "example": "my-feature-branch", 5306 "name": "branch", 5307 "in": "query", 5308 "schema": { 5309 "type": "string" 5310 } 5311 } 5312 ], 5313 "responses": { 5314 "200": { 5315 "description": "OK", 5316 "content": { 5317 "application/json": { 5318 "schema": { 5319 "type": "array", 5320 "items": { 5321 "$ref": "#/components/schemas/locale_report" 5322 } 5323 } 5324 } 5325 }, 5326 "headers": { 5327 "X-Rate-Limit-Limit": { 5328 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5329 }, 5330 "X-Rate-Limit-Remaining": { 5331 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5332 }, 5333 "X-Rate-Limit-Reset": { 5334 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5335 }, 5336 "Link": { 5337 "$ref": "#/components/headers/Link" 5338 } 5339 } 5340 }, 5341 "400": { 5342 "$ref": "#/components/responses/400" 5343 }, 5344 "404": { 5345 "$ref": "#/components/responses/404" 5346 }, 5347 "429": { 5348 "$ref": "#/components/responses/429" 5349 } 5350 }, 5351 "x-code-samples": [ 5352 { 5353 "lang": "Curl", 5354 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/report/locales?locale_codes[]=de&locale_codes[]=en&branch=my-feature-branch\" \\\n -X GET \\\n -u USERNAME_OR_ACCESS_TOKEN" 5355 }, 5356 { 5357 "lang": "CLI v2", 5358 "source": "phrase report locales list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--locale_codes de \\\n--access_token <token>" 5359 } 5360 ], 5361 "x-cli-version": "2.13" 5362 } 5363 }, 5364 "/projects/{project_id}/figma_attachments": { 5365 "get": { 5366 "summary": "List Figma attachments", 5367 "description": "List all Figma attachments for the given project", 5368 "operationId": "figma_attachments/list", 5369 "tags": [ 5370 "Figma attachments" 5371 ], 5372 "parameters": [ 5373 { 5374 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5375 }, 5376 { 5377 "$ref": "#/components/parameters/project_id" 5378 }, 5379 { 5380 "$ref": "#/components/parameters/page" 5381 }, 5382 { 5383 "$ref": "#/components/parameters/per_page" 5384 }, 5385 { 5386 "description": "specify the branch to use", 5387 "example": "my-feature-branch", 5388 "name": "branch", 5389 "in": "query", 5390 "schema": { 5391 "type": "string" 5392 } 5393 } 5394 ], 5395 "responses": { 5396 "200": { 5397 "description": "OK", 5398 "content": { 5399 "application/json": { 5400 "schema": { 5401 "type": "array", 5402 "items": { 5403 "$ref": "#/components/schemas/figma_attachment" 5404 } 5405 } 5406 } 5407 }, 5408 "headers": { 5409 "X-Rate-Limit-Limit": { 5410 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5411 }, 5412 "X-Rate-Limit-Remaining": { 5413 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5414 }, 5415 "X-Rate-Limit-Reset": { 5416 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5417 }, 5418 "Link": { 5419 "$ref": "#/components/headers/Link" 5420 }, 5421 "Pagination": { 5422 "$ref": "#/components/headers/Pagination" 5423 } 5424 } 5425 }, 5426 "400": { 5427 "$ref": "#/components/responses/400" 5428 }, 5429 "404": { 5430 "$ref": "#/components/responses/404" 5431 }, 5432 "429": { 5433 "$ref": "#/components/responses/429" 5434 } 5435 }, 5436 "x-code-samples": [ 5437 { 5438 "lang": "Curl", 5439 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments?branch=my-feature-branch\" \\\n -X GET \\\n -u USERNAME_OR_ACCESS_TOKEN" 5440 }, 5441 { 5442 "lang": "CLI v2", 5443 "source": "phrase figma_attachments list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5444 } 5445 ], 5446 "x-cli-version": "2.13" 5447 }, 5448 "post": { 5449 "summary": "Create a Figma attachment", 5450 "description": "Create a new Figma attachment.", 5451 "operationId": "figma_attachment/create", 5452 "tags": [ 5453 "Figma attachments" 5454 ], 5455 "parameters": [ 5456 { 5457 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5458 }, 5459 { 5460 "$ref": "#/components/parameters/project_id" 5461 }, 5462 { 5463 "description": "specify the branch to use", 5464 "example": "my-feature-branch", 5465 "name": "branch", 5466 "in": "query", 5467 "schema": { 5468 "type": "string" 5469 } 5470 } 5471 ], 5472 "responses": { 5473 "201": { 5474 "description": "Created", 5475 "content": { 5476 "application/json": { 5477 "schema": { 5478 "$ref": "#/components/schemas/figma_attachment" 5479 } 5480 } 5481 }, 5482 "headers": { 5483 "X-Rate-Limit-Limit": { 5484 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5485 }, 5486 "X-Rate-Limit-Remaining": { 5487 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5488 }, 5489 "X-Rate-Limit-Reset": { 5490 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5491 } 5492 } 5493 }, 5494 "400": { 5495 "$ref": "#/components/responses/400" 5496 }, 5497 "404": { 5498 "$ref": "#/components/responses/404" 5499 }, 5500 "429": { 5501 "$ref": "#/components/responses/429" 5502 } 5503 }, 5504 "x-code-samples": [ 5505 { 5506 "lang": "Curl", 5507 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F branch=my-feature-branch \\\n -F url=https://figma.com/file/xxxxx/sample \\" 5508 }, 5509 { 5510 "lang": "CLI v2", 5511 "source": "phrase figma_attachment create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"url\":\"https://figma.com/file/xxxxx/sample\"}' \\\n--access_token <token>" 5512 } 5513 ], 5514 "requestBody": { 5515 "required": true, 5516 "content": { 5517 "application/json": { 5518 "schema": { 5519 "type": "object", 5520 "title": "figma_attachment/create/parameters", 5521 "required": [ 5522 "url" 5523 ], 5524 "properties": { 5525 "branch": { 5526 "description": "specify the branch to use", 5527 "type": "string", 5528 "example": "my-feature-branch" 5529 }, 5530 "url": { 5531 "description": "Figma file url", 5532 "type": "string", 5533 "example": "https://figma.com/file/xxxxx/sample" 5534 } 5535 } 5536 } 5537 } 5538 } 5539 }, 5540 "x-cli-version": "2.13" 5541 } 5542 }, 5543 "/projects/{project_id}/figma_attachments/{id}": { 5544 "get": { 5545 "summary": "Get a single Figma attachment", 5546 "description": "Get details on a single Figma attachment for a given project.", 5547 "operationId": "figma_attachment/show", 5548 "tags": [ 5549 "Figma attachments" 5550 ], 5551 "parameters": [ 5552 { 5553 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5554 }, 5555 { 5556 "$ref": "#/components/parameters/project_id" 5557 }, 5558 { 5559 "$ref": "#/components/parameters/id" 5560 }, 5561 { 5562 "description": "specify the branch to use", 5563 "example": "my-feature-branch", 5564 "name": "branch", 5565 "in": "query", 5566 "schema": { 5567 "type": "string" 5568 } 5569 } 5570 ], 5571 "responses": { 5572 "200": { 5573 "description": "OK", 5574 "content": { 5575 "application/json": { 5576 "schema": { 5577 "$ref": "#/components/schemas/figma_attachment" 5578 } 5579 } 5580 }, 5581 "headers": { 5582 "X-Rate-Limit-Limit": { 5583 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5584 }, 5585 "X-Rate-Limit-Remaining": { 5586 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5587 }, 5588 "X-Rate-Limit-Reset": { 5589 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5590 } 5591 } 5592 }, 5593 "400": { 5594 "$ref": "#/components/responses/400" 5595 }, 5596 "404": { 5597 "$ref": "#/components/responses/404" 5598 }, 5599 "429": { 5600 "$ref": "#/components/responses/429" 5601 } 5602 }, 5603 "x-code-samples": [ 5604 { 5605 "lang": "Curl", 5606 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id?branch=my-feature-branch\" \\\n -X GET \\\n -u USERNAME_OR_ACCESS_TOKEN" 5607 }, 5608 { 5609 "lang": "CLI v2", 5610 "source": "phrase figma_attachment show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5611 } 5612 ], 5613 "x-cli-version": "2.13" 5614 }, 5615 "patch": { 5616 "summary": "Update a Figma attachment", 5617 "description": "Update an existing Figma attachment.", 5618 "operationId": "figma_attachment/update", 5619 "tags": [ 5620 "Figma attachments" 5621 ], 5622 "parameters": [ 5623 { 5624 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5625 }, 5626 { 5627 "$ref": "#/components/parameters/project_id" 5628 }, 5629 { 5630 "$ref": "#/components/parameters/id" 5631 }, 5632 { 5633 "description": "specify the branch to use", 5634 "example": "my-feature-branch", 5635 "name": "branch", 5636 "in": "query", 5637 "schema": { 5638 "type": "string" 5639 } 5640 } 5641 ], 5642 "responses": { 5643 "200": { 5644 "description": "OK", 5645 "content": { 5646 "application/json": { 5647 "schema": { 5648 "$ref": "#/components/schemas/figma_attachment" 5649 } 5650 } 5651 }, 5652 "headers": { 5653 "X-Rate-Limit-Limit": { 5654 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5655 }, 5656 "X-Rate-Limit-Remaining": { 5657 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5658 }, 5659 "X-Rate-Limit-Reset": { 5660 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5661 } 5662 } 5663 }, 5664 "400": { 5665 "$ref": "#/components/responses/400" 5666 }, 5667 "404": { 5668 "$ref": "#/components/responses/404" 5669 }, 5670 "429": { 5671 "$ref": "#/components/responses/429" 5672 } 5673 }, 5674 "x-code-samples": [ 5675 { 5676 "lang": "Curl", 5677 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -F branch=my-feature-branch \\\n -F url=https://figma.com/file/xxxxx/sample \\" 5678 }, 5679 { 5680 "lang": "CLI v2", 5681 "source": "phrase figma_attachment update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"url\":\"https://figma.com/file/xxxxx/sample\" }' \\\n--access_token <token>" 5682 } 5683 ], 5684 "requestBody": { 5685 "required": true, 5686 "content": { 5687 "application/json": { 5688 "schema": { 5689 "type": "object", 5690 "title": "figma_attachment/update/parameters", 5691 "properties": { 5692 "branch": { 5693 "description": "specify the branch to use", 5694 "type": "string", 5695 "example": "my-feature-branch" 5696 }, 5697 "url": { 5698 "description": "Figma file url", 5699 "type": "string", 5700 "example": "https://figma.com/file/xxxxx/sample" 5701 } 5702 } 5703 } 5704 } 5705 } 5706 }, 5707 "x-cli-version": "2.13" 5708 }, 5709 "delete": { 5710 "summary": "Delete a Figma attachment", 5711 "description": "Delete an existing Figma attachment.", 5712 "operationId": "figma_attachment/delete", 5713 "tags": [ 5714 "Figma attachments" 5715 ], 5716 "parameters": [ 5717 { 5718 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5719 }, 5720 { 5721 "$ref": "#/components/parameters/project_id" 5722 }, 5723 { 5724 "$ref": "#/components/parameters/id" 5725 }, 5726 { 5727 "description": "specify the branch to use", 5728 "example": "my-feature-branch", 5729 "name": "branch", 5730 "in": "query", 5731 "schema": { 5732 "type": "string" 5733 } 5734 } 5735 ], 5736 "responses": { 5737 "204": { 5738 "$ref": "#/components/responses/204" 5739 }, 5740 "400": { 5741 "$ref": "#/components/responses/400" 5742 }, 5743 "404": { 5744 "$ref": "#/components/responses/404" 5745 }, 5746 "429": { 5747 "$ref": "#/components/responses/429" 5748 } 5749 }, 5750 "x-code-samples": [ 5751 { 5752 "lang": "Curl", 5753 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 5754 }, 5755 { 5756 "lang": "CLI v2", 5757 "source": "phrase figma_attachment delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5758 } 5759 ], 5760 "x-cli-version": "2.13" 5761 } 5762 }, 5763 "/projects/{project_id}/figma_attachments/{figma_attachment_id}/keys": { 5764 "post": { 5765 "summary": "Attach the Figma attachment to a key", 5766 "description": "Attach the Figma attachment to a key", 5767 "operationId": "figma_attachment/attach_to_key", 5768 "tags": [ 5769 "Key's Figma attachments" 5770 ], 5771 "parameters": [ 5772 { 5773 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5774 }, 5775 { 5776 "$ref": "#/components/parameters/project_id" 5777 }, 5778 { 5779 "$ref": "#/components/parameters/figma_attachment_id" 5780 }, 5781 { 5782 "$ref": "#/components/parameters/id" 5783 }, 5784 { 5785 "description": "specify the branch to use", 5786 "example": "my-feature-branch", 5787 "name": "branch", 5788 "in": "query", 5789 "schema": { 5790 "type": "string" 5791 } 5792 } 5793 ], 5794 "responses": { 5795 "204": { 5796 "$ref": "#/components/responses/204" 5797 }, 5798 "400": { 5799 "$ref": "#/components/responses/400" 5800 }, 5801 "404": { 5802 "$ref": "#/components/responses/404" 5803 }, 5804 "429": { 5805 "$ref": "#/components/responses/429" 5806 } 5807 }, 5808 "x-code-samples": [ 5809 { 5810 "lang": "Curl", 5811 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments/:figma_attachment_id/keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F branch=my-feature-branch \\\n -F id=key_id \\\n -H 'Content-Type: application/json'" 5812 }, 5813 { 5814 "lang": "CLI v2", 5815 "source": "phrase figma_attachment attach_to_key \\\n--project_id <project_id> \\\n--figma_attachment_id <figma_attachment_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5816 } 5817 ], 5818 "x-cli-version": "2.13" 5819 } 5820 }, 5821 "/projects/{project_id}/figma_attachments/{figma_attachment_id}/keys/{id}": { 5822 "delete": { 5823 "summary": "Detach the Figma attachment from a key", 5824 "description": "Detach the Figma attachment from a key", 5825 "operationId": "figma_attachment/detach_from_key", 5826 "tags": [ 5827 "Key's Figma attachments" 5828 ], 5829 "parameters": [ 5830 { 5831 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5832 }, 5833 { 5834 "$ref": "#/components/parameters/project_id" 5835 }, 5836 { 5837 "$ref": "#/components/parameters/figma_attachment_id" 5838 }, 5839 { 5840 "$ref": "#/components/parameters/id" 5841 }, 5842 { 5843 "description": "specify the branch to use", 5844 "example": "my-feature-branch", 5845 "name": "branch", 5846 "in": "query", 5847 "schema": { 5848 "type": "string" 5849 } 5850 } 5851 ], 5852 "responses": { 5853 "204": { 5854 "$ref": "#/components/responses/204" 5855 }, 5856 "400": { 5857 "$ref": "#/components/responses/400" 5858 }, 5859 "404": { 5860 "$ref": "#/components/responses/404" 5861 }, 5862 "429": { 5863 "$ref": "#/components/responses/429" 5864 } 5865 }, 5866 "x-code-samples": [ 5867 { 5868 "lang": "Curl", 5869 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/figma_attachments/:figma_attachment_id/keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -F branch=my-feature-branch \\\n -H 'Content-Type: application/json'" 5870 }, 5871 { 5872 "lang": "CLI v2", 5873 "source": "phrase figma_attachment detach_from_key \\\n--project_id <project_id> \\\n--figma_attachment_id <figma_attachment_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 5874 } 5875 ], 5876 "x-cli-version": "2.13" 5877 } 5878 }, 5879 "/projects/{project_id}/styleguides": { 5880 "get": { 5881 "summary": "List style guides", 5882 "description": "List all styleguides for the given project.", 5883 "operationId": "styleguides/list", 5884 "tags": [ 5885 "Style guides" 5886 ], 5887 "parameters": [ 5888 { 5889 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5890 }, 5891 { 5892 "$ref": "#/components/parameters/project_id" 5893 }, 5894 { 5895 "$ref": "#/components/parameters/page" 5896 }, 5897 { 5898 "$ref": "#/components/parameters/per_page" 5899 } 5900 ], 5901 "responses": { 5902 "200": { 5903 "description": "OK", 5904 "content": { 5905 "application/json": { 5906 "schema": { 5907 "type": "array", 5908 "items": { 5909 "$ref": "#/components/schemas/styleguide" 5910 } 5911 } 5912 } 5913 }, 5914 "headers": { 5915 "X-Rate-Limit-Limit": { 5916 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5917 }, 5918 "X-Rate-Limit-Remaining": { 5919 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5920 }, 5921 "X-Rate-Limit-Reset": { 5922 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5923 }, 5924 "Link": { 5925 "$ref": "#/components/headers/Link" 5926 }, 5927 "Pagination": { 5928 "$ref": "#/components/headers/Pagination" 5929 } 5930 } 5931 }, 5932 "400": { 5933 "$ref": "#/components/responses/400" 5934 }, 5935 "404": { 5936 "$ref": "#/components/responses/404" 5937 }, 5938 "429": { 5939 "$ref": "#/components/responses/429" 5940 } 5941 }, 5942 "x-code-samples": [ 5943 { 5944 "lang": "Curl", 5945 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/styleguides\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 5946 }, 5947 { 5948 "lang": "CLI v2", 5949 "source": "phrase styleguides list \\\n--project_id <project_id> \\\n--access_token <token>" 5950 } 5951 ], 5952 "x-cli-version": "2.5" 5953 }, 5954 "post": { 5955 "summary": "Create a style guide", 5956 "description": "Create a new style guide.", 5957 "operationId": "styleguide/create", 5958 "tags": [ 5959 "Style guides" 5960 ], 5961 "parameters": [ 5962 { 5963 "$ref": "#/components/parameters/X-PhraseApp-OTP" 5964 }, 5965 { 5966 "$ref": "#/components/parameters/project_id" 5967 } 5968 ], 5969 "responses": { 5970 "201": { 5971 "description": "Created", 5972 "content": { 5973 "application/json": { 5974 "schema": { 5975 "$ref": "#/components/schemas/styleguide_details" 5976 } 5977 } 5978 }, 5979 "headers": { 5980 "X-Rate-Limit-Limit": { 5981 "$ref": "#/components/headers/X-Rate-Limit-Limit" 5982 }, 5983 "X-Rate-Limit-Remaining": { 5984 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 5985 }, 5986 "X-Rate-Limit-Reset": { 5987 "$ref": "#/components/headers/X-Rate-Limit-Reset" 5988 } 5989 } 5990 }, 5991 "400": { 5992 "$ref": "#/components/responses/400" 5993 }, 5994 "404": { 5995 "$ref": "#/components/responses/404" 5996 }, 5997 "429": { 5998 "$ref": "#/components/responses/429" 5999 } 6000 }, 6001 "x-code-samples": [ 6002 { 6003 "lang": "Curl", 6004 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/styleguides\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"title\":\"Web application style guide\",\"audience\":\"customer-facing\",\"target_audience\":\"teenager\",\"grammatical_person\":\"first_person_singular\",\"vocabulary_type\":\"technical\",\"business\":\"We are a travel site that helps customers find the best hotels and flights.\",\"company_branding\":\"ACME Inc. should never be translated.\",\"formatting\":\"Never use capital letters\",\"glossary_terms\":\"Apartment, cabin, loft\",\"grammar_consistency\":\",\"literal_translation\":\"Neutral\",\"overall_tone\":\"Tone should be fun and light\",\"samples\":\"http://www.myexample.com/my/document/path/to/samples.pdf\"}' \\\n -H 'Content-Type: application/json'" 6005 }, 6006 { 6007 "lang": "CLI v2", 6008 "source": "phrase styleguides create \\\n--project_id <project_id> \\\n--data '{\"title\": \"Web application style guide\", \"audience\":\"customer-facing\", \"target_audience\":\"teenager\", \"grammatical_person\":\"first_person_singular\", \"vocabulary_type\":\"technical\", \"business\": \"We are a travel site that helps customers find the best hotels and flights.\", \"company_branding\": \"ACME Inc. should never be translated.\", \"formatting\": \"Never use capital letters\", \"glossary_terms\": \"Apartment, cabin, loft\", \"grammar_consistency\":\", \"literal_translation\":\"Neutral\", \"overall_tone\": \"Tone should be fun and light\", \"samples\": \"http://www.myexample.com/my/document/path/to/samples.pdf\"}' \\\n--access_token <token>" 6009 } 6010 ], 6011 "requestBody": { 6012 "required": true, 6013 "content": { 6014 "application/json": { 6015 "schema": { 6016 "type": "object", 6017 "title": "styleguide/create/parameters", 6018 "required": [ 6019 "title" 6020 ], 6021 "properties": { 6022 "title": { 6023 "description": "Style guide title", 6024 "type": "string", 6025 "example": "Web application style guide" 6026 }, 6027 "audience": { 6028 "description": "Audience description", 6029 "type": "string", 6030 "example": "customer-facing" 6031 }, 6032 "target_audience": { 6033 "description": "Can be one of: not_specified, children, teenager, young_adults, adults, old_adults.", 6034 "type": "string", 6035 "example": "teenager" 6036 }, 6037 "grammatical_person": { 6038 "description": "Can be one of: not_specified, first_person_singular, second_person_singular, third_person_singular_masculine, third_person_singular_feminine, third_person_singular_neuter, first_person_plural, second_person_plural, third_person_plural.", 6039 "type": "string", 6040 "example": "first_person_singular" 6041 }, 6042 "vocabulary_type": { 6043 "description": "Can be one of: not_specified, popular, technical, fictional.", 6044 "type": "string", 6045 "example": "technical" 6046 }, 6047 "business": { 6048 "description": "Description of the business", 6049 "type": "string", 6050 "example": "We are a travel site that helps customers find the best hotels and flights." 6051 }, 6052 "company_branding": { 6053 "description": "Company branding to remain consistent.", 6054 "type": "string", 6055 "example": "ACME Inc. should never be translated." 6056 }, 6057 "formatting": { 6058 "description": "Formatting requirements and character limitations.", 6059 "type": "string", 6060 "example": "Never use capital letters" 6061 }, 6062 "glossary_terms": { 6063 "description": "List of terms and/or phrases that need to be translated consistently.", 6064 "type": "string", 6065 "example": "Apartment, cabin, loft" 6066 }, 6067 "grammar_consistency": { 6068 "description": "Formal or informal pronouns, consistent conjugation, grammatical gender", 6069 "type": "string", 6070 "example": "" 6071 }, 6072 "literal_translation": { 6073 "description": "Can be one of: Cultural/Conversational, Literal, Neutral.", 6074 "type": "string", 6075 "example": "Neutral" 6076 }, 6077 "overall_tone": { 6078 "description": "Tone requirement descriptions", 6079 "type": "string", 6080 "example": "Tone should be fun and light" 6081 }, 6082 "samples": { 6083 "description": "Provide links to sample product pages, FAQ pages, etc. to give the translator a point of reference. You can also provide past translations. Even snippets or short paragraphs are helpful for maintaining consistency.", 6084 "type": "string", 6085 "example": "http://www.myexample.com/my/document/path/to/samples.pdf" 6086 } 6087 } 6088 } 6089 } 6090 } 6091 }, 6092 "x-cli-version": "2.5" 6093 } 6094 }, 6095 "/projects/{project_id}/styleguides/{id}": { 6096 "get": { 6097 "summary": "Get a single style guide", 6098 "description": "Get details on a single style guide.", 6099 "operationId": "styleguide/show", 6100 "tags": [ 6101 "Style guides" 6102 ], 6103 "parameters": [ 6104 { 6105 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6106 }, 6107 { 6108 "$ref": "#/components/parameters/project_id" 6109 }, 6110 { 6111 "$ref": "#/components/parameters/id" 6112 } 6113 ], 6114 "responses": { 6115 "200": { 6116 "description": "OK", 6117 "content": { 6118 "application/json": { 6119 "schema": { 6120 "$ref": "#/components/schemas/styleguide_details" 6121 } 6122 } 6123 }, 6124 "headers": { 6125 "X-Rate-Limit-Limit": { 6126 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6127 }, 6128 "X-Rate-Limit-Remaining": { 6129 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6130 }, 6131 "X-Rate-Limit-Reset": { 6132 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6133 } 6134 } 6135 }, 6136 "400": { 6137 "$ref": "#/components/responses/400" 6138 }, 6139 "404": { 6140 "$ref": "#/components/responses/404" 6141 }, 6142 "429": { 6143 "$ref": "#/components/responses/429" 6144 } 6145 }, 6146 "x-code-samples": [ 6147 { 6148 "lang": "Curl", 6149 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/styleguides/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 6150 }, 6151 { 6152 "lang": "CLI v2", 6153 "source": "phrase styleguides show \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 6154 } 6155 ], 6156 "x-cli-version": "2.5" 6157 }, 6158 "patch": { 6159 "summary": "Update a style guide", 6160 "description": "Update an existing style guide.", 6161 "operationId": "styleguide/update", 6162 "tags": [ 6163 "Style guides" 6164 ], 6165 "parameters": [ 6166 { 6167 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6168 }, 6169 { 6170 "$ref": "#/components/parameters/project_id" 6171 }, 6172 { 6173 "$ref": "#/components/parameters/id" 6174 } 6175 ], 6176 "responses": { 6177 "200": { 6178 "description": "OK", 6179 "content": { 6180 "application/json": { 6181 "schema": { 6182 "$ref": "#/components/schemas/styleguide_details" 6183 } 6184 } 6185 }, 6186 "headers": { 6187 "X-Rate-Limit-Limit": { 6188 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6189 }, 6190 "X-Rate-Limit-Remaining": { 6191 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6192 }, 6193 "X-Rate-Limit-Reset": { 6194 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6195 } 6196 } 6197 }, 6198 "400": { 6199 "$ref": "#/components/responses/400" 6200 }, 6201 "404": { 6202 "$ref": "#/components/responses/404" 6203 }, 6204 "429": { 6205 "$ref": "#/components/responses/429" 6206 } 6207 }, 6208 "x-code-samples": [ 6209 { 6210 "lang": "Curl", 6211 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/styleguides/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"title\":\"Web application style guide\",\"audience\":\"customer-facing\",\"target_audience\":\"teenager\",\"grammatical_person\":\"first_person_singular\",\"vocabulary_type\":\"technical\",\"business\":\"We are a travel site that helps customers find the best hotels and flights.\",\"company_branding\":\"ACME Inc. should never be translated.\",\"formatting\":\"Never use capital letters\",\"glossary_terms\":\"Apartment, cabin, loft\",\"grammar_consistency\":\",\"literal_translation\":\"Neutral\",\"overall_tone\":\"Tone should be fun and light\",\"samples\":\"http://www.myexample.com/my/document/path/to/samples.pdf\"}' \\\n -H 'Content-Type: application/json'" 6212 }, 6213 { 6214 "lang": "CLI v2", 6215 "source": "phrase styleguides update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"title\": \"Web application style guide\", \"audience\":\"customer-facing\", \"target_audience\":\"teenager\", \"grammatical_person\":\"first_person_singular\", \"vocabulary_type\":\"technical\", \"business\": \"We are a travel site that helps customers find the best hotels and flights.\", \"company_branding\": \"ACME Inc. should never be translated.\", \"formatting\": \"Never use capital letters\", \"glossary_terms\": \"Apartment, cabin, loft\", \"grammar_consistency\":\", \"literal_translation\":\"Neutral\", \"overall_tone\": \"Tone should be fun and light\", \"samples\": \"http://www.myexample.com/my/document/path/to/samples.pdf\"}' \\\n--access_token <token>" 6216 } 6217 ], 6218 "requestBody": { 6219 "required": true, 6220 "content": { 6221 "application/json": { 6222 "schema": { 6223 "type": "object", 6224 "title": "styleguide/update/parameters", 6225 "properties": { 6226 "title": { 6227 "description": "Style guide title", 6228 "type": "string", 6229 "example": "Web application style guide" 6230 }, 6231 "audience": { 6232 "description": "Audience description", 6233 "type": "string", 6234 "example": "customer-facing" 6235 }, 6236 "target_audience": { 6237 "description": "Can be one of: not_specified, children, teenager, young_adults, adults, old_adults.", 6238 "type": "string", 6239 "example": "teenager" 6240 }, 6241 "grammatical_person": { 6242 "description": "Can be one of: not_specified, first_person_singular, second_person_singular, third_person_singular_masculine, third_person_singular_feminine, third_person_singular_neuter, first_person_plural, second_person_plural, third_person_plural.", 6243 "type": "string", 6244 "example": "first_person_singular" 6245 }, 6246 "vocabulary_type": { 6247 "description": "Can be one of: not_specified, popular, technical, fictional.", 6248 "type": "string", 6249 "example": "technical" 6250 }, 6251 "business": { 6252 "description": "Description of the business", 6253 "type": "string", 6254 "example": "We are a travel site that helps customers find the best hotels and flights." 6255 }, 6256 "company_branding": { 6257 "description": "Company branding to remain consistent.", 6258 "type": "string", 6259 "example": "ACME Inc. should never be translated." 6260 }, 6261 "formatting": { 6262 "description": "Formatting requirements and character limitations.", 6263 "type": "string", 6264 "example": "Never use capital letters" 6265 }, 6266 "glossary_terms": { 6267 "description": "List of terms and/or phrases that need to be translated consistently.", 6268 "type": "string", 6269 "example": "Apartment, cabin, loft" 6270 }, 6271 "grammar_consistency": { 6272 "description": "Formal or informal pronouns, consistent conjugation, grammatical gender", 6273 "type": "string", 6274 "example": "" 6275 }, 6276 "literal_translation": { 6277 "description": "Can be one of: Cultural/Conversational, Literal, Neutral.", 6278 "type": "string", 6279 "example": "Neutral" 6280 }, 6281 "overall_tone": { 6282 "description": "Tone requirement descriptions", 6283 "type": "string", 6284 "example": "Tone should be fun and light" 6285 }, 6286 "samples": { 6287 "description": "Provide links to sample product pages, FAQ pages, etc. to give the translator a point of reference. You can also provide past translations. Even snippets or short paragraphs are helpful for maintaining consistency.", 6288 "type": "string", 6289 "example": "http://www.myexample.com/my/document/path/to/samples.pdf" 6290 } 6291 } 6292 } 6293 } 6294 } 6295 }, 6296 "x-cli-version": "2.5" 6297 }, 6298 "delete": { 6299 "summary": "Delete a style guide", 6300 "description": "Delete an existing style guide.", 6301 "operationId": "styleguide/delete", 6302 "tags": [ 6303 "Style guides" 6304 ], 6305 "parameters": [ 6306 { 6307 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6308 }, 6309 { 6310 "$ref": "#/components/parameters/project_id" 6311 }, 6312 { 6313 "$ref": "#/components/parameters/id" 6314 } 6315 ], 6316 "responses": { 6317 "204": { 6318 "$ref": "#/components/responses/204" 6319 }, 6320 "400": { 6321 "$ref": "#/components/responses/400" 6322 }, 6323 "404": { 6324 "$ref": "#/components/responses/404" 6325 }, 6326 "429": { 6327 "$ref": "#/components/responses/429" 6328 } 6329 }, 6330 "x-code-samples": [ 6331 { 6332 "lang": "Curl", 6333 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/styleguides/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 6334 }, 6335 { 6336 "lang": "CLI v2", 6337 "source": "phrase styleguides delete \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 6338 } 6339 ], 6340 "x-cli-version": "2.5" 6341 } 6342 }, 6343 "/accounts/{account_id}/custom_metadata/properties": { 6344 "get": { 6345 "summary": "List properties", 6346 "description": "List all custom metadata properties for an account.\n\nThis endpoint is only available to accounts with advanced plans or above.\n", 6347 "operationId": "custom_metadata_properties/list", 6348 "tags": [ 6349 "Custom Metadata" 6350 ], 6351 "parameters": [ 6352 { 6353 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6354 }, 6355 { 6356 "$ref": "#/components/parameters/account_id" 6357 }, 6358 { 6359 "$ref": "#/components/parameters/custom_metadata_data_type" 6360 }, 6361 { 6362 "description": "id of project that the properties belong to", 6363 "example": "abcd1234cdef1234abcd1234cdef1234", 6364 "name": "project_id", 6365 "in": "query", 6366 "schema": { 6367 "type": "string" 6368 } 6369 }, 6370 { 6371 "$ref": "#/components/parameters/page" 6372 }, 6373 { 6374 "$ref": "#/components/parameters/per_page" 6375 }, 6376 { 6377 "description": "query to find a property by name", 6378 "example": "character_name", 6379 "name": "q", 6380 "in": "query", 6381 "schema": { 6382 "type": "string" 6383 } 6384 }, 6385 { 6386 "description": "Sort criteria. Can be one of: name, data_type, created_at.", 6387 "example": "updated_at", 6388 "name": "sort", 6389 "in": "query", 6390 "schema": { 6391 "type": "string" 6392 } 6393 }, 6394 { 6395 "description": "Order direction. Can be one of: asc, desc.", 6396 "example": "desc", 6397 "name": "order", 6398 "in": "query", 6399 "schema": { 6400 "type": "string" 6401 } 6402 } 6403 ], 6404 "responses": { 6405 "200": { 6406 "description": "OK", 6407 "content": { 6408 "application/json": { 6409 "schema": { 6410 "type": "array", 6411 "items": { 6412 "$ref": "#/components/schemas/custom_metadata_property" 6413 } 6414 } 6415 } 6416 }, 6417 "headers": { 6418 "X-Rate-Limit-Limit": { 6419 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6420 }, 6421 "X-Rate-Limit-Remaining": { 6422 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6423 }, 6424 "X-Rate-Limit-Reset": { 6425 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6426 }, 6427 "Link": { 6428 "$ref": "#/components/headers/Link" 6429 }, 6430 "Pagination": { 6431 "$ref": "#/components/headers/Pagination" 6432 } 6433 } 6434 }, 6435 "400": { 6436 "$ref": "#/components/responses/400" 6437 }, 6438 "404": { 6439 "$ref": "#/components/responses/404" 6440 }, 6441 "429": { 6442 "$ref": "#/components/responses/429" 6443 } 6444 }, 6445 "x-code-samples": [ 6446 { 6447 "lang": "Curl", 6448 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties?data_type=boolean&project_id=1&page=1&per_page=10&sort=created_at&order=desc\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 6449 }, 6450 { 6451 "lang": "CLI v2", 6452 "source": "phrase custom_metadata_properties list \\\n--account_id <account_id> \\\n--data_type boolean \\\n--project_id 1 \\\n--page 1 \\\n--per_page 10 \\\n--sort created_at \\\n--order desc \\\n--access_token <token>" 6453 } 6454 ], 6455 "x-cli-version": "2.9" 6456 }, 6457 "post": { 6458 "summary": "Create a property", 6459 "description": "Create a new custom metadata property.", 6460 "operationId": "custom_metadata_property/create", 6461 "tags": [ 6462 "Custom Metadata" 6463 ], 6464 "parameters": [ 6465 { 6466 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6467 }, 6468 { 6469 "$ref": "#/components/parameters/account_id" 6470 } 6471 ], 6472 "requestBody": { 6473 "required": true, 6474 "content": { 6475 "application/json": { 6476 "schema": { 6477 "required": [ 6478 "name", 6479 "data_type" 6480 ], 6481 "type": "object", 6482 "title": "custom_metadata_properties/create/parameters", 6483 "properties": { 6484 "name": { 6485 "description": "name of the property", 6486 "example": "Fruit", 6487 "type": "string" 6488 }, 6489 "data_type": { 6490 "$ref": "#/components/schemas/custom_metadata_data_type" 6491 }, 6492 "project_ids": { 6493 "description": "ids of projects that the property belongs to", 6494 "type": "array", 6495 "example": [ 6496 "abcd1234cdef1234abcd1234cdef1234", 6497 "abcd1234cdef1234abcd1234cdef4321" 6498 ], 6499 "items": { 6500 "type": "string" 6501 } 6502 }, 6503 "description": { 6504 "description": "description of property", 6505 "example": "A healthy snack for all ages", 6506 "type": "string" 6507 }, 6508 "value_options": { 6509 "description": "value options of property (only applies to single or multi select properties)", 6510 "example": [ 6511 "Apple", 6512 "Banana", 6513 "Coconut" 6514 ], 6515 "type": "array", 6516 "items": { 6517 "type": "string" 6518 } 6519 } 6520 } 6521 } 6522 } 6523 } 6524 }, 6525 "responses": { 6526 "200": { 6527 "description": "OK", 6528 "content": { 6529 "application/json": { 6530 "schema": { 6531 "$ref": "#/components/schemas/custom_metadata_property" 6532 } 6533 } 6534 }, 6535 "headers": { 6536 "X-Rate-Limit-Limit": { 6537 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6538 }, 6539 "X-Rate-Limit-Remaining": { 6540 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6541 }, 6542 "X-Rate-Limit-Reset": { 6543 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6544 } 6545 } 6546 }, 6547 "400": { 6548 "$ref": "#/components/responses/400" 6549 }, 6550 "404": { 6551 "$ref": "#/components/responses/404" 6552 }, 6553 "422": { 6554 "$ref": "#/components/responses/422" 6555 }, 6556 "429": { 6557 "$ref": "#/components/responses/429" 6558 } 6559 }, 6560 "x-code-samples": [ 6561 { 6562 "lang": "Curl", 6563 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"Fruit\",\"data_type\":\"multi_select\",\"description\":\"A healthy snack for all ages\",\"project_ids\":[\"1\",\"2\",\"3\"],\"value_options\":[\"apple\",\"banana\",\"coconut\"]}' \\\n -H 'Content-Type: application/json'" 6564 }, 6565 { 6566 "lang": "CLI v2", 6567 "source": "phrase custom_metadata_properties create \\\n--account_id <account_id> \\\n--data '{\"name\":\"Fruit\",\"data_type\":\"multi_select\",\"description\":\"A healthy snack for all ages\",\"project_ids\":[\"1\",\"2\",\"3\"],\"value_options\":[\"apple\",\"banana\",\"coconut\"]}' \\\n--access_token <token>" 6568 } 6569 ], 6570 "x-cli-version": "2.9" 6571 } 6572 }, 6573 "/accounts/{account_id}/custom_metadata/properties/{id}": { 6574 "get": { 6575 "summary": "Get a single property", 6576 "description": "Get details of a single custom property.", 6577 "operationId": "custom_metadata_property/show", 6578 "tags": [ 6579 "Custom Metadata" 6580 ], 6581 "parameters": [ 6582 { 6583 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6584 }, 6585 { 6586 "$ref": "#/components/parameters/account_id" 6587 }, 6588 { 6589 "$ref": "#/components/parameters/id" 6590 } 6591 ], 6592 "responses": { 6593 "200": { 6594 "description": "OK", 6595 "content": { 6596 "application/json": { 6597 "schema": { 6598 "$ref": "#/components/schemas/custom_metadata_property" 6599 } 6600 } 6601 }, 6602 "headers": { 6603 "X-Rate-Limit-Limit": { 6604 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6605 }, 6606 "X-Rate-Limit-Remaining": { 6607 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6608 }, 6609 "X-Rate-Limit-Reset": { 6610 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6611 } 6612 } 6613 }, 6614 "400": { 6615 "$ref": "#/components/responses/400" 6616 }, 6617 "404": { 6618 "$ref": "#/components/responses/404" 6619 }, 6620 "429": { 6621 "$ref": "#/components/responses/429" 6622 } 6623 }, 6624 "x-code-samples": [ 6625 { 6626 "lang": "Curl", 6627 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 6628 }, 6629 { 6630 "lang": "CLI v2", 6631 "source": "phrase custom_metadata_properties show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 6632 } 6633 ], 6634 "x-cli-version": "2.9" 6635 }, 6636 "patch": { 6637 "summary": "Update a property", 6638 "description": "Update an existing custom metadata property.", 6639 "operationId": "custom_metadata_property/update", 6640 "tags": [ 6641 "Custom Metadata" 6642 ], 6643 "parameters": [ 6644 { 6645 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6646 }, 6647 { 6648 "$ref": "#/components/parameters/account_id" 6649 }, 6650 { 6651 "$ref": "#/components/parameters/id" 6652 } 6653 ], 6654 "requestBody": { 6655 "required": true, 6656 "content": { 6657 "application/json": { 6658 "schema": { 6659 "type": "object", 6660 "title": "custom_metadata_properties/update/parameters", 6661 "properties": { 6662 "name": { 6663 "description": "name of the property", 6664 "example": "Fruit", 6665 "type": "string" 6666 }, 6667 "project_ids": { 6668 "description": "ids of projects that the property belongs to", 6669 "type": "array", 6670 "example": [ 6671 "abcd1234cdef1234abcd1234cdef1234", 6672 "abcd1234cdef1234abcd1234cdef4321" 6673 ], 6674 "items": { 6675 "type": "string" 6676 } 6677 }, 6678 "description": { 6679 "description": "description of property", 6680 "example": "A healthy snack for all ages", 6681 "type": "string" 6682 }, 6683 "value_options": { 6684 "description": "value options of property (only applies to single or multi select properties)", 6685 "example": [ 6686 "Apple", 6687 "Banana", 6688 "Coconut" 6689 ], 6690 "type": "array", 6691 "items": { 6692 "type": "string" 6693 } 6694 } 6695 } 6696 } 6697 } 6698 } 6699 }, 6700 "responses": { 6701 "200": { 6702 "description": "OK", 6703 "content": { 6704 "application/json": { 6705 "schema": { 6706 "$ref": "#/components/schemas/custom_metadata_property" 6707 } 6708 } 6709 }, 6710 "headers": { 6711 "X-Rate-Limit-Limit": { 6712 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6713 }, 6714 "X-Rate-Limit-Remaining": { 6715 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6716 }, 6717 "X-Rate-Limit-Reset": { 6718 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6719 } 6720 } 6721 }, 6722 "400": { 6723 "$ref": "#/components/responses/400" 6724 }, 6725 "404": { 6726 "$ref": "#/components/responses/404" 6727 }, 6728 "429": { 6729 "$ref": "#/components/responses/429" 6730 } 6731 }, 6732 "x-code-samples": [ 6733 { 6734 "lang": "Curl", 6735 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"Fruit\",\"description\":\"A healthy snack for all ages\",\"project_ids\":[\"1\",\"2\",\"3\"],\"value_options\":[\"apple\",\"banana\",\"coconut\"]}' \\\n -H 'Content-Type: application/json'" 6736 }, 6737 { 6738 "lang": "CLI v2", 6739 "source": "phrase custom_metadata_properties update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"name\":\"Fruit\",\"description\":\"A healthy snack for all ages\",\"project_ids\":[\"1\",\"2\",\"3\"],\"value_options\":[\"apple\",\"banana\",\"coconut\"]}' \\\n--access_token <token>" 6740 } 6741 ], 6742 "x-cli-version": "2.9" 6743 }, 6744 "delete": { 6745 "summary": "Destroy property", 6746 "description": "Destroy a custom metadata property of an account.\n\nThis endpoint is only available to accounts with advanced plans or above.\n", 6747 "operationId": "custom_metadata_properties/delete", 6748 "tags": [ 6749 "Custom Metadata" 6750 ], 6751 "parameters": [ 6752 { 6753 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6754 }, 6755 { 6756 "$ref": "#/components/parameters/account_id" 6757 }, 6758 { 6759 "$ref": "#/components/parameters/id" 6760 } 6761 ], 6762 "responses": { 6763 "204": { 6764 "$ref": "#/components/responses/204" 6765 }, 6766 "400": { 6767 "$ref": "#/components/responses/400" 6768 }, 6769 "404": { 6770 "$ref": "#/components/responses/404" 6771 }, 6772 "429": { 6773 "$ref": "#/components/responses/429" 6774 } 6775 }, 6776 "x-code-samples": [ 6777 { 6778 "lang": "Curl", 6779 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN\n -X DELETE\n -H 'Content-Type: application/json'" 6780 }, 6781 { 6782 "lang": "CLI v2", 6783 "source": "phrase custom_metadata_properties delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 6784 } 6785 ], 6786 "x-cli-version": "2.9" 6787 } 6788 }, 6789 "/accounts/{account_id}/invitations": { 6790 "get": { 6791 "summary": "List invitations", 6792 "description": "List invitations for an account. It will also list the accessible resources like projects and locales the invited user has access to. In case nothing is shown the default access from the role is used. Access token scope must include <code>team.manage</code>.", 6793 "operationId": "invitations/list", 6794 "tags": [ 6795 "Invitations" 6796 ], 6797 "parameters": [ 6798 { 6799 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6800 }, 6801 { 6802 "$ref": "#/components/parameters/account_id" 6803 }, 6804 { 6805 "$ref": "#/components/parameters/page" 6806 }, 6807 { 6808 "$ref": "#/components/parameters/per_page" 6809 } 6810 ], 6811 "responses": { 6812 "200": { 6813 "description": "OK", 6814 "content": { 6815 "application/json": { 6816 "schema": { 6817 "type": "array", 6818 "items": { 6819 "$ref": "#/components/schemas/invitation" 6820 } 6821 } 6822 } 6823 }, 6824 "headers": { 6825 "X-Rate-Limit-Limit": { 6826 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6827 }, 6828 "X-Rate-Limit-Remaining": { 6829 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6830 }, 6831 "X-Rate-Limit-Reset": { 6832 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6833 }, 6834 "Link": { 6835 "$ref": "#/components/headers/Link" 6836 }, 6837 "Pagination": { 6838 "$ref": "#/components/headers/Pagination" 6839 } 6840 } 6841 }, 6842 "400": { 6843 "$ref": "#/components/responses/400" 6844 }, 6845 "401": { 6846 "$ref": "#/components/responses/401" 6847 }, 6848 "403": { 6849 "$ref": "#/components/responses/403" 6850 }, 6851 "404": { 6852 "$ref": "#/components/responses/404" 6853 }, 6854 "429": { 6855 "$ref": "#/components/responses/429" 6856 } 6857 }, 6858 "x-code-samples": [ 6859 { 6860 "lang": "Curl", 6861 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 6862 }, 6863 { 6864 "lang": "CLI v2", 6865 "source": "phrase invitations list \\\n--account_id <account_id> \\\n--access_token <token>" 6866 } 6867 ], 6868 "x-cli-version": "2.5" 6869 }, 6870 "post": { 6871 "summary": "Create a new invitation", 6872 "description": "Invite a person to an account. Developers and translators need <code>project_ids</code> and <code>locale_ids</code> assigned to access them. Access token scope must include <code>team.manage</code>.", 6873 "operationId": "invitation/create", 6874 "tags": [ 6875 "Invitations" 6876 ], 6877 "parameters": [ 6878 { 6879 "$ref": "#/components/parameters/X-PhraseApp-OTP" 6880 }, 6881 { 6882 "$ref": "#/components/parameters/account_id" 6883 } 6884 ], 6885 "responses": { 6886 "201": { 6887 "description": "Created", 6888 "content": { 6889 "application/json": { 6890 "schema": { 6891 "$ref": "#/components/schemas/invitation" 6892 } 6893 } 6894 }, 6895 "headers": { 6896 "X-Rate-Limit-Limit": { 6897 "$ref": "#/components/headers/X-Rate-Limit-Limit" 6898 }, 6899 "X-Rate-Limit-Remaining": { 6900 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 6901 }, 6902 "X-Rate-Limit-Reset": { 6903 "$ref": "#/components/headers/X-Rate-Limit-Reset" 6904 } 6905 } 6906 }, 6907 "400": { 6908 "$ref": "#/components/responses/400" 6909 }, 6910 "401": { 6911 "$ref": "#/components/responses/401" 6912 }, 6913 "403": { 6914 "$ref": "#/components/responses/403" 6915 }, 6916 "404": { 6917 "$ref": "#/components/responses/404" 6918 }, 6919 "422": { 6920 "$ref": "#/components/responses/422" 6921 }, 6922 "429": { 6923 "$ref": "#/components/responses/429" 6924 } 6925 }, 6926 "x-code-samples": [ 6927 { 6928 "lang": "Curl", 6929 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"email\":\"example@mail.com\",\"role\":\"Developer\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"team_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"default_locale_codes\":[\"de\",\"en\"],\"permissions\":{\"create_upload\":true,\"review_translations\":true}}' \\\n -H 'Content-Type: application/json'" 6930 }, 6931 { 6932 "lang": "CLI v2", 6933 "source": "phrase invitations create \\\n--account_id <account_id> \\\n--data '{\"email\":\"example@mail.com\", \"role\":\"Developer\", \"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"team_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"], \"default_locale_codes\":[\"de\",\"en\"], \"permissions\":\"{\"create_upload\"=>true, \"review_translations\"=>true}\"}' \\\n--access_token <token>" 6934 } 6935 ], 6936 "requestBody": { 6937 "required": true, 6938 "content": { 6939 "application/json": { 6940 "schema": { 6941 "type": "object", 6942 "title": "invitation/create/parameters", 6943 "required": [ 6944 "email", 6945 "role" 6946 ], 6947 "properties": { 6948 "email": { 6949 "description": "The email of the invited user. The <code>email</code> can not be updated once created. Create a new invitation for each unique email.", 6950 "type": "string", 6951 "example": "example@mail.com" 6952 }, 6953 "role": { 6954 "description": "Invitiation role, can be any of Manager, Developer, Translator.", 6955 "type": "string", 6956 "example": "Developer" 6957 }, 6958 "project_ids": { 6959 "description": "List of project ids the invited user has access to.", 6960 "type": "string", 6961 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 6962 }, 6963 "locale_ids": { 6964 "description": "List of locale ids the invited user has access to.", 6965 "type": "string", 6966 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 6967 }, 6968 "space_ids": { 6969 "description": "List of spaces the user is assigned to.", 6970 "type": "array", 6971 "items": { 6972 "type": "string" 6973 }, 6974 "example": [ 6975 "abcd1234abcd1234abcd1234", 6976 "abcd1234abcd1234abcd1235" 6977 ] 6978 }, 6979 "team_ids": { 6980 "description": "List of teams the user is assigned to.", 6981 "type": "array", 6982 "items": { 6983 "type": "string" 6984 }, 6985 "example": [ 6986 "abcd1234abcd1234abcd1234", 6987 "abcd1234abcd1234abcd1235" 6988 ] 6989 }, 6990 "default_locale_codes": { 6991 "description": "List of default locales for the user.", 6992 "type": "array", 6993 "items": { 6994 "type": "string" 6995 }, 6996 "example": [ 6997 "en", 6998 "de" 6999 ] 7000 }, 7001 "permissions": { 7002 "description": "Additional permissions depending on invitation role. Available permissions are <code>create_upload</code> and <code>review_translations</code>", 7003 "type": "object", 7004 "additionalProperties": { 7005 "type": "string" 7006 }, 7007 "example": { 7008 "create_upload": true, 7009 "review_translations": true 7010 } 7011 } 7012 } 7013 } 7014 } 7015 } 7016 }, 7017 "x-cli-version": "2.5" 7018 } 7019 }, 7020 "/accounts/{account_id}/invitations/{id}": { 7021 "get": { 7022 "summary": "Get a single invitation", 7023 "description": "Get details on a single invitation. Access token scope must include <code>team.manage</code>.", 7024 "operationId": "invitation/show", 7025 "tags": [ 7026 "Invitations" 7027 ], 7028 "parameters": [ 7029 { 7030 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7031 }, 7032 { 7033 "$ref": "#/components/parameters/account_id" 7034 }, 7035 { 7036 "$ref": "#/components/parameters/id" 7037 } 7038 ], 7039 "responses": { 7040 "200": { 7041 "description": "OK", 7042 "content": { 7043 "application/json": { 7044 "schema": { 7045 "$ref": "#/components/schemas/invitation" 7046 } 7047 } 7048 }, 7049 "headers": { 7050 "X-Rate-Limit-Limit": { 7051 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7052 }, 7053 "X-Rate-Limit-Remaining": { 7054 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7055 }, 7056 "X-Rate-Limit-Reset": { 7057 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7058 } 7059 } 7060 }, 7061 "400": { 7062 "$ref": "#/components/responses/400" 7063 }, 7064 "401": { 7065 "$ref": "#/components/responses/401" 7066 }, 7067 "403": { 7068 "$ref": "#/components/responses/403" 7069 }, 7070 "404": { 7071 "$ref": "#/components/responses/404" 7072 }, 7073 "429": { 7074 "$ref": "#/components/responses/429" 7075 } 7076 }, 7077 "x-code-samples": [ 7078 { 7079 "lang": "Curl", 7080 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 7081 }, 7082 { 7083 "lang": "CLI v2", 7084 "source": "phrase invitations show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 7085 } 7086 ], 7087 "x-cli-version": "2.5" 7088 }, 7089 "patch": { 7090 "summary": "Update an invitation", 7091 "description": "Update an existing invitation (must not be accepted yet). The <code>email</code> cannot be updated. Developers and translators need <code>project_ids</code> and <code>locale_ids</code> assigned to access them. Access token scope must include <code>team.manage</code>.", 7092 "operationId": "invitation/update", 7093 "tags": [ 7094 "Invitations" 7095 ], 7096 "parameters": [ 7097 { 7098 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7099 }, 7100 { 7101 "$ref": "#/components/parameters/account_id" 7102 }, 7103 { 7104 "$ref": "#/components/parameters/id" 7105 } 7106 ], 7107 "responses": { 7108 "200": { 7109 "description": "OK", 7110 "content": { 7111 "application/json": { 7112 "schema": { 7113 "$ref": "#/components/schemas/invitation" 7114 } 7115 } 7116 }, 7117 "headers": { 7118 "X-Rate-Limit-Limit": { 7119 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7120 }, 7121 "X-Rate-Limit-Remaining": { 7122 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7123 }, 7124 "X-Rate-Limit-Reset": { 7125 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7126 } 7127 } 7128 }, 7129 "400": { 7130 "$ref": "#/components/responses/400" 7131 }, 7132 "401": { 7133 "$ref": "#/components/responses/401" 7134 }, 7135 "403": { 7136 "$ref": "#/components/responses/403" 7137 }, 7138 "404": { 7139 "$ref": "#/components/responses/404" 7140 }, 7141 "429": { 7142 "$ref": "#/components/responses/429" 7143 } 7144 }, 7145 "x-code-samples": [ 7146 { 7147 "lang": "Curl", 7148 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"role\":\"Invitiation role\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"team_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"default_locale_codes\":[\"de\",\"en\"],\"permissions\":{\"create_upload\":true}}' \\\n -H 'Content-Type: application/json'" 7149 }, 7150 { 7151 "lang": "CLI v2", 7152 "source": "phrase invitations update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"role\": \"Invitiation role\", \"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"team_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"], \"default_locale_codes\":[\"de\",\"en\"], \"permissions\":\"{\"create_upload\"=>true}\"}' \\\n--access_token <token>" 7153 } 7154 ], 7155 "requestBody": { 7156 "required": true, 7157 "content": { 7158 "application/json": { 7159 "schema": { 7160 "type": "object", 7161 "title": "invitation/update/parameters", 7162 "properties": { 7163 "role": { 7164 "description": "Invitiation role, can be any of Manager, Developer, Translator", 7165 "type": "string", 7166 "example": "Invitiation role" 7167 }, 7168 "project_ids": { 7169 "description": "List of project ids the invited user has access to", 7170 "type": "string", 7171 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 7172 }, 7173 "locale_ids": { 7174 "description": "List of locale ids the invited user has access to", 7175 "type": "string", 7176 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 7177 }, 7178 "space_ids": { 7179 "description": "List of spaces the user is assigned to.", 7180 "type": "array", 7181 "items": { 7182 "type": "string" 7183 }, 7184 "example": [ 7185 "abcd1234abcd1234abcd1234", 7186 "abcd1234abcd1234abcd1235" 7187 ] 7188 }, 7189 "team_ids": { 7190 "description": "List of teams the user is assigned to.", 7191 "type": "array", 7192 "items": { 7193 "type": "string" 7194 }, 7195 "example": [ 7196 "abcd1234abcd1234abcd1234", 7197 "abcd1234abcd1234abcd1235" 7198 ] 7199 }, 7200 "default_locale_codes": { 7201 "description": "List of default locales for the user.", 7202 "type": "array", 7203 "items": { 7204 "type": "string" 7205 }, 7206 "example": [ 7207 "en", 7208 "de" 7209 ] 7210 }, 7211 "permissions": { 7212 "description": "Additional permissions depending on invitation role.", 7213 "type": "object", 7214 "additionalProperties": { 7215 "type": "string" 7216 }, 7217 "example": { 7218 "create_upload": true 7219 } 7220 } 7221 } 7222 } 7223 } 7224 } 7225 }, 7226 "x-cli-version": "2.5" 7227 }, 7228 "delete": { 7229 "summary": "Delete an invitation", 7230 "description": "Delete an existing invitation (must not be accepted yet). Access token scope must include <code>team.manage</code>.", 7231 "operationId": "invitation/delete", 7232 "tags": [ 7233 "Invitations" 7234 ], 7235 "parameters": [ 7236 { 7237 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7238 }, 7239 { 7240 "$ref": "#/components/parameters/account_id" 7241 }, 7242 { 7243 "$ref": "#/components/parameters/id" 7244 } 7245 ], 7246 "responses": { 7247 "204": { 7248 "$ref": "#/components/responses/204" 7249 }, 7250 "400": { 7251 "$ref": "#/components/responses/400" 7252 }, 7253 "401": { 7254 "$ref": "#/components/responses/401" 7255 }, 7256 "403": { 7257 "$ref": "#/components/responses/403" 7258 }, 7259 "404": { 7260 "$ref": "#/components/responses/404" 7261 }, 7262 "429": { 7263 "$ref": "#/components/responses/429" 7264 } 7265 }, 7266 "x-code-samples": [ 7267 { 7268 "lang": "Curl", 7269 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 7270 }, 7271 { 7272 "lang": "CLI v2", 7273 "source": "phrase invitations delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 7274 } 7275 ], 7276 "x-cli-version": "2.5" 7277 } 7278 }, 7279 "/accounts/{account_id}/invitations/{id}/resend": { 7280 "post": { 7281 "summary": "Resend an invitation", 7282 "description": "Resend the invitation email (must not be accepted yet). Access token scope must include <code>team.manage</code>.", 7283 "operationId": "invitation/resend", 7284 "tags": [ 7285 "Invitations" 7286 ], 7287 "parameters": [ 7288 { 7289 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7290 }, 7291 { 7292 "$ref": "#/components/parameters/account_id" 7293 }, 7294 { 7295 "$ref": "#/components/parameters/id" 7296 } 7297 ], 7298 "responses": { 7299 "200": { 7300 "description": "OK", 7301 "content": { 7302 "application/json": { 7303 "schema": { 7304 "$ref": "#/components/schemas/invitation" 7305 } 7306 } 7307 }, 7308 "headers": { 7309 "X-Rate-Limit-Limit": { 7310 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7311 }, 7312 "X-Rate-Limit-Remaining": { 7313 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7314 }, 7315 "X-Rate-Limit-Reset": { 7316 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7317 } 7318 } 7319 }, 7320 "400": { 7321 "$ref": "#/components/responses/400" 7322 }, 7323 "401": { 7324 "$ref": "#/components/responses/401" 7325 }, 7326 "403": { 7327 "$ref": "#/components/responses/403" 7328 }, 7329 "404": { 7330 "$ref": "#/components/responses/404" 7331 }, 7332 "429": { 7333 "$ref": "#/components/responses/429" 7334 } 7335 }, 7336 "x-code-samples": [ 7337 { 7338 "lang": "Curl", 7339 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/invitations/:id/resend\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST" 7340 }, 7341 { 7342 "lang": "CLI v2", 7343 "source": "phrase invitations resend \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 7344 } 7345 ], 7346 "x-cli-version": "2.5" 7347 } 7348 }, 7349 "/projects/{project_id}/invitations/{id}": { 7350 "patch": { 7351 "summary": "Update a member's invitation access", 7352 "description": "Update member's settings in the invitations. Access token scope must include <code>team.manage</code>.", 7353 "operationId": "invitation/update_settings", 7354 "tags": [ 7355 "Invitations" 7356 ], 7357 "parameters": [ 7358 { 7359 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7360 }, 7361 { 7362 "$ref": "#/components/parameters/project_id" 7363 }, 7364 { 7365 "$ref": "#/components/parameters/id" 7366 } 7367 ], 7368 "responses": { 7369 "200": { 7370 "description": "OK", 7371 "content": { 7372 "application/json": { 7373 "schema": { 7374 "$ref": "#/components/schemas/invitation" 7375 } 7376 } 7377 }, 7378 "headers": { 7379 "X-Rate-Limit-Limit": { 7380 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7381 }, 7382 "X-Rate-Limit-Remaining": { 7383 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7384 }, 7385 "X-Rate-Limit-Reset": { 7386 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7387 } 7388 } 7389 }, 7390 "400": { 7391 "$ref": "#/components/responses/400" 7392 }, 7393 "401": { 7394 "$ref": "#/components/responses/401" 7395 }, 7396 "403": { 7397 "$ref": "#/components/responses/403" 7398 }, 7399 "404": { 7400 "$ref": "#/components/responses/404" 7401 }, 7402 "429": { 7403 "$ref": "#/components/responses/429" 7404 } 7405 }, 7406 "x-code-samples": [ 7407 { 7408 "lang": "Curl", 7409 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/invitations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"project_role\":\"Developer\",\"locale_ids\":[\"fff565db236400772368235db2c6117e\",\"fff565db236400772368235db2c6117f\"]}' \\\n -H 'Content-Type: application/json'" 7410 }, 7411 { 7412 "lang": "CLI v2", 7413 "source": "phrase invitations update_settings \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"project_role\":\"Developer\",\"locale_ids\":[\"fff565db236400772368235db2c6117e\",\"fff565db236400772368235db2c6117f\"]}' \\\n--access_token <token>" 7414 } 7415 ], 7416 "requestBody": { 7417 "required": true, 7418 "content": { 7419 "application/json": { 7420 "schema": { 7421 "type": "object", 7422 "title": "invitation/update_settings/parameters", 7423 "properties": { 7424 "project_role": { 7425 "description": "Member role, can be any of of Manager, Developer, Translator", 7426 "type": "string", 7427 "example": "Developer" 7428 }, 7429 "locale_ids": { 7430 "description": "List of locale ids the user has access to.", 7431 "type": "array", 7432 "items": { 7433 "type": "string" 7434 }, 7435 "example": [ 7436 "abcd1234abcd1234abcd1234", 7437 "abcd1234abcd1234abcd1235" 7438 ] 7439 } 7440 } 7441 } 7442 } 7443 } 7444 }, 7445 "x-cli-version": "2.5" 7446 } 7447 }, 7448 "/projects/{project_id}/screenshots/{id}/markers": { 7449 "get": { 7450 "summary": "List screenshot markers", 7451 "description": "List all screenshot markers for the given project.", 7452 "operationId": "screenshot_markers/list", 7453 "tags": [ 7454 "Screenshot Markers" 7455 ], 7456 "parameters": [ 7457 { 7458 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7459 }, 7460 { 7461 "$ref": "#/components/parameters/project_id" 7462 }, 7463 { 7464 "$ref": "#/components/parameters/id" 7465 }, 7466 { 7467 "$ref": "#/components/parameters/page" 7468 }, 7469 { 7470 "$ref": "#/components/parameters/per_page" 7471 }, 7472 { 7473 "description": "specify the branch to use", 7474 "example": "my-feature-branch", 7475 "name": "branch", 7476 "in": "query", 7477 "schema": { 7478 "type": "string" 7479 } 7480 } 7481 ], 7482 "responses": { 7483 "200": { 7484 "description": "OK", 7485 "content": { 7486 "application/json": { 7487 "schema": { 7488 "type": "array", 7489 "items": { 7490 "$ref": "#/components/schemas/screenshot_marker" 7491 } 7492 } 7493 } 7494 }, 7495 "headers": { 7496 "X-Rate-Limit-Limit": { 7497 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7498 }, 7499 "X-Rate-Limit-Remaining": { 7500 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7501 }, 7502 "X-Rate-Limit-Reset": { 7503 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7504 }, 7505 "Link": { 7506 "$ref": "#/components/headers/Link" 7507 }, 7508 "Pagination": { 7509 "$ref": "#/components/headers/Pagination" 7510 } 7511 } 7512 }, 7513 "400": { 7514 "$ref": "#/components/responses/400" 7515 }, 7516 "404": { 7517 "$ref": "#/components/responses/404" 7518 }, 7519 "429": { 7520 "$ref": "#/components/responses/429" 7521 } 7522 }, 7523 "x-code-samples": [ 7524 { 7525 "lang": "Curl", 7526 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:id/markers?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 7527 }, 7528 { 7529 "lang": "CLI v2", 7530 "source": "phrase screenshot_markers list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--id <id> \\\n--access_token <token>" 7531 } 7532 ], 7533 "x-cli-version": "2.5" 7534 } 7535 }, 7536 "/projects/{project_id}/screenshots/{screenshot_id}/markers/{id}": { 7537 "get": { 7538 "summary": "Get a single screenshot marker", 7539 "description": "Get details on a single screenshot marker for a given project.", 7540 "operationId": "screenshot_marker/show", 7541 "tags": [ 7542 "Screenshot Markers" 7543 ], 7544 "parameters": [ 7545 { 7546 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7547 }, 7548 { 7549 "$ref": "#/components/parameters/project_id" 7550 }, 7551 { 7552 "$ref": "#/components/parameters/screenshot_id" 7553 }, 7554 { 7555 "$ref": "#/components/parameters/id" 7556 }, 7557 { 7558 "description": "specify the branch to use", 7559 "example": "my-feature-branch", 7560 "name": "branch", 7561 "in": "query", 7562 "schema": { 7563 "type": "string" 7564 } 7565 } 7566 ], 7567 "responses": { 7568 "200": { 7569 "description": "OK", 7570 "content": { 7571 "application/json": { 7572 "schema": { 7573 "$ref": "#/components/schemas/screenshot_marker" 7574 } 7575 } 7576 }, 7577 "headers": { 7578 "X-Rate-Limit-Limit": { 7579 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7580 }, 7581 "X-Rate-Limit-Remaining": { 7582 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7583 }, 7584 "X-Rate-Limit-Reset": { 7585 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7586 } 7587 } 7588 }, 7589 "400": { 7590 "$ref": "#/components/responses/400" 7591 }, 7592 "404": { 7593 "$ref": "#/components/responses/404" 7594 }, 7595 "429": { 7596 "$ref": "#/components/responses/429" 7597 } 7598 }, 7599 "x-code-samples": [ 7600 { 7601 "lang": "Curl", 7602 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 7603 }, 7604 { 7605 "lang": "CLI v2", 7606 "source": "phrase screenshot_markers show \\\n--project_id <project_id> \\\n--screenshot_id <screenshot_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 7607 } 7608 ], 7609 "x-cli-version": "2.5" 7610 } 7611 }, 7612 "/projects/{project_id}/screenshots/{screenshot_id}/markers": { 7613 "post": { 7614 "summary": "Create a screenshot marker", 7615 "description": "Create a new screenshot marker.", 7616 "operationId": "screenshot_marker/create", 7617 "tags": [ 7618 "Screenshot Markers" 7619 ], 7620 "parameters": [ 7621 { 7622 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7623 }, 7624 { 7625 "$ref": "#/components/parameters/project_id" 7626 }, 7627 { 7628 "$ref": "#/components/parameters/screenshot_id" 7629 } 7630 ], 7631 "responses": { 7632 "201": { 7633 "description": "Created", 7634 "content": { 7635 "application/json": { 7636 "schema": { 7637 "$ref": "#/components/schemas/screenshot_marker" 7638 } 7639 } 7640 }, 7641 "headers": { 7642 "X-Rate-Limit-Limit": { 7643 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7644 }, 7645 "X-Rate-Limit-Remaining": { 7646 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7647 }, 7648 "X-Rate-Limit-Reset": { 7649 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7650 } 7651 } 7652 }, 7653 "400": { 7654 "$ref": "#/components/responses/400" 7655 }, 7656 "404": { 7657 "$ref": "#/components/responses/404" 7658 }, 7659 "429": { 7660 "$ref": "#/components/responses/429" 7661 } 7662 }, 7663 "x-code-samples": [ 7664 { 7665 "lang": "Curl", 7666 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"presentation\":\"{ \\\"x\\\": 100, \\\"y\\\": 100, \\\"w\\\": 100, \\\"h\\\": 100 }\"}' \\\n -H 'Content-Type: application/json'" 7667 }, 7668 { 7669 "lang": "CLI v2", 7670 "source": "phrase screenshot_markers create \\\n--project_id <project_id> \\\n--screenshot_id <screenshot_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"presentation\": \"{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }\"}' \\\n--access_token <token>" 7671 } 7672 ], 7673 "requestBody": { 7674 "required": true, 7675 "content": { 7676 "application/json": { 7677 "schema": { 7678 "type": "object", 7679 "title": "screenshot_marker/create/parameters", 7680 "required": [ 7681 "key_id" 7682 ], 7683 "properties": { 7684 "branch": { 7685 "description": "specify the branch to use", 7686 "type": "string", 7687 "example": "my-feature-branch" 7688 }, 7689 "key_id": { 7690 "description": "Specify the Key ID which should be highlighted on the specified screenshot. The Key must belong to the project.", 7691 "type": "string", 7692 "example": "abcd1234abcd1234abcd1234abcd1234" 7693 }, 7694 "presentation": { 7695 "description": "Presentation details of the screenshot marker in JSON format.<br/><br/>Each Screenshot Marker is represented as a rectangular shaped highlight box with the name of the specified Key attached. You can specify the marker position on the screenshot (<code>x</code>-axis and <code>y</code>-axis in pixels) from the top left corner of the screenshot and the dimensions of the marker itself (<code>w</code> and <code>h</code> in pixels).", 7696 "type": "string", 7697 "example": "{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }" 7698 } 7699 } 7700 } 7701 } 7702 } 7703 }, 7704 "x-cli-version": "2.5" 7705 }, 7706 "patch": { 7707 "summary": "Update a screenshot marker", 7708 "description": "Update an existing screenshot marker.", 7709 "operationId": "screenshot_marker/update", 7710 "tags": [ 7711 "Screenshot Markers" 7712 ], 7713 "parameters": [ 7714 { 7715 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7716 }, 7717 { 7718 "$ref": "#/components/parameters/project_id" 7719 }, 7720 { 7721 "$ref": "#/components/parameters/screenshot_id" 7722 } 7723 ], 7724 "responses": { 7725 "200": { 7726 "description": "OK", 7727 "content": { 7728 "application/json": { 7729 "schema": { 7730 "$ref": "#/components/schemas/screenshot_marker" 7731 } 7732 } 7733 }, 7734 "headers": { 7735 "X-Rate-Limit-Limit": { 7736 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7737 }, 7738 "X-Rate-Limit-Remaining": { 7739 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7740 }, 7741 "X-Rate-Limit-Reset": { 7742 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7743 } 7744 } 7745 }, 7746 "400": { 7747 "$ref": "#/components/responses/400" 7748 }, 7749 "404": { 7750 "$ref": "#/components/responses/404" 7751 }, 7752 "429": { 7753 "$ref": "#/components/responses/429" 7754 } 7755 }, 7756 "x-code-samples": [ 7757 { 7758 "lang": "Curl", 7759 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"presentation\":\"{ \\\"x\\\": 100, \\\"y\\\": 100, \\\"w\\\": 100, \\\"h\\\": 100 }\"}' \\\n -H 'Content-Type: application/json'" 7760 }, 7761 { 7762 "lang": "CLI v2", 7763 "source": "phrase screenshot_markers update \\\n--project_id <project_id> \\\n--screenshot_id <screenshot_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"presentation\": \"{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }\"}' \\\n--access_token <token>" 7764 } 7765 ], 7766 "requestBody": { 7767 "required": true, 7768 "content": { 7769 "application/json": { 7770 "schema": { 7771 "type": "object", 7772 "title": "screenshot_marker/update/parameters", 7773 "properties": { 7774 "branch": { 7775 "description": "specify the branch to use", 7776 "type": "string", 7777 "example": "my-feature-branch" 7778 }, 7779 "key_id": { 7780 "description": "Specify the Key ID which should be highlighted on the specified screenshot. The Key must belong to the project.", 7781 "type": "string", 7782 "example": "abcd1234abcd1234abcd1234abcd1234" 7783 }, 7784 "presentation": { 7785 "description": "Presentation details of the screenshot marker in JSON format.<br/><br/>Each Screenshot Marker is represented as a rectangular shaped highlight box with the name of the specified Key attached. You can specify the marker position on the screenshot (<code>x</code>-axis and <code>y</code>-axis in pixels) from the top left corner of the screenshot and the dimensions of the marker itself (<code>w</code> and <code>h</code> in pixels).", 7786 "type": "string", 7787 "example": "{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }" 7788 } 7789 } 7790 } 7791 } 7792 } 7793 }, 7794 "x-cli-version": "2.5" 7795 }, 7796 "delete": { 7797 "summary": "Delete a screenshot marker", 7798 "description": "Delete an existing screenshot marker.", 7799 "operationId": "screenshot_marker/delete", 7800 "tags": [ 7801 "Screenshot Markers" 7802 ], 7803 "parameters": [ 7804 { 7805 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7806 }, 7807 { 7808 "$ref": "#/components/parameters/project_id" 7809 }, 7810 { 7811 "$ref": "#/components/parameters/screenshot_id" 7812 }, 7813 { 7814 "description": "specify the branch to use", 7815 "example": "my-feature-branch", 7816 "name": "branch", 7817 "in": "query", 7818 "schema": { 7819 "type": "string" 7820 } 7821 } 7822 ], 7823 "responses": { 7824 "204": { 7825 "$ref": "#/components/responses/204" 7826 }, 7827 "400": { 7828 "$ref": "#/components/responses/400" 7829 }, 7830 "404": { 7831 "$ref": "#/components/responses/404" 7832 }, 7833 "429": { 7834 "$ref": "#/components/responses/429" 7835 } 7836 }, 7837 "x-code-samples": [ 7838 { 7839 "lang": "Curl", 7840 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 7841 }, 7842 { 7843 "lang": "CLI v2", 7844 "source": "phrase screenshot_markers delete \\\n--project_id <project_id> \\\n--screenshot_id <screenshot_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 7845 } 7846 ], 7847 "x-cli-version": "2.5" 7848 } 7849 }, 7850 "/accounts/{id}/locales": { 7851 "get": { 7852 "summary": "List locales used in account", 7853 "description": "List all locales unique by locale code used across all projects within an account.", 7854 "operationId": "account/locales", 7855 "tags": [ 7856 "Locales" 7857 ], 7858 "parameters": [ 7859 { 7860 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7861 }, 7862 { 7863 "$ref": "#/components/parameters/id" 7864 }, 7865 { 7866 "$ref": "#/components/parameters/page" 7867 }, 7868 { 7869 "$ref": "#/components/parameters/per_page" 7870 } 7871 ], 7872 "responses": { 7873 "200": { 7874 "description": "OK", 7875 "content": { 7876 "application/json": { 7877 "schema": { 7878 "type": "array", 7879 "items": { 7880 "type": "object", 7881 "title": "locale_preview", 7882 "properties": { 7883 "id": { 7884 "type": "string" 7885 }, 7886 "name": { 7887 "type": "string" 7888 }, 7889 "code": { 7890 "type": "string" 7891 }, 7892 "project": { 7893 "$ref": "#/components/schemas/project_short" 7894 } 7895 }, 7896 "example": { 7897 "id": "abcd1234cdef1234abcd1234cdef1234", 7898 "name": "English", 7899 "code": "en-GB", 7900 "project": { 7901 "id": "abcd1234cdef1234abcd1234cdef1234", 7902 "name": "My Android Project", 7903 "main_format": "xml", 7904 "created_at": "2015-01-28T09:52:53Z", 7905 "updated_at": "2015-01-28T09:52:53Z" 7906 } 7907 } 7908 } 7909 } 7910 } 7911 }, 7912 "headers": { 7913 "X-Rate-Limit-Limit": { 7914 "$ref": "#/components/headers/X-Rate-Limit-Limit" 7915 }, 7916 "X-Rate-Limit-Remaining": { 7917 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 7918 }, 7919 "X-Rate-Limit-Reset": { 7920 "$ref": "#/components/headers/X-Rate-Limit-Reset" 7921 }, 7922 "Link": { 7923 "$ref": "#/components/headers/Link" 7924 }, 7925 "Pagination": { 7926 "$ref": "#/components/headers/Pagination" 7927 } 7928 } 7929 }, 7930 "400": { 7931 "$ref": "#/components/responses/400" 7932 }, 7933 "404": { 7934 "$ref": "#/components/responses/404" 7935 }, 7936 "429": { 7937 "$ref": "#/components/responses/429" 7938 } 7939 }, 7940 "x-code-samples": [ 7941 { 7942 "lang": "Curl", 7943 "source": "curl \"https://api.phrase.com/v2/accounts/:id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 7944 }, 7945 { 7946 "lang": "CLI v2", 7947 "source": "phrase accounts locales \\\n--id <id> \\\n--access_token <token>" 7948 } 7949 ], 7950 "x-cli-version": "2.5" 7951 } 7952 }, 7953 "/projects/{project_id}/locales": { 7954 "get": { 7955 "summary": "List locales", 7956 "description": "List all locales for the given project.", 7957 "operationId": "locales/list", 7958 "tags": [ 7959 "Locales" 7960 ], 7961 "parameters": [ 7962 { 7963 "$ref": "#/components/parameters/X-PhraseApp-OTP" 7964 }, 7965 { 7966 "$ref": "#/components/parameters/project_id" 7967 }, 7968 { 7969 "$ref": "#/components/parameters/page" 7970 }, 7971 { 7972 "$ref": "#/components/parameters/per_page" 7973 }, 7974 { 7975 "description": "Sort locales. Valid options are \"name_asc\", \"name_desc\", \"default_asc\", \"default_desc\".", 7976 "example": null, 7977 "name": "sort_by", 7978 "in": "query", 7979 "schema": { 7980 "type": "string" 7981 } 7982 }, 7983 { 7984 "description": "specify the branch to use", 7985 "example": "my-feature-branch", 7986 "name": "branch", 7987 "in": "query", 7988 "schema": { 7989 "type": "string" 7990 } 7991 } 7992 ], 7993 "responses": { 7994 "200": { 7995 "description": "OK", 7996 "content": { 7997 "application/json": { 7998 "schema": { 7999 "type": "array", 8000 "items": { 8001 "$ref": "#/components/schemas/locale" 8002 } 8003 } 8004 } 8005 }, 8006 "headers": { 8007 "X-Rate-Limit-Limit": { 8008 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8009 }, 8010 "X-Rate-Limit-Remaining": { 8011 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8012 }, 8013 "X-Rate-Limit-Reset": { 8014 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8015 }, 8016 "Link": { 8017 "$ref": "#/components/headers/Link" 8018 }, 8019 "Pagination": { 8020 "$ref": "#/components/headers/Pagination" 8021 } 8022 } 8023 }, 8024 "400": { 8025 "$ref": "#/components/responses/400" 8026 }, 8027 "404": { 8028 "$ref": "#/components/responses/404" 8029 }, 8030 "429": { 8031 "$ref": "#/components/responses/429" 8032 } 8033 }, 8034 "x-code-samples": [ 8035 { 8036 "lang": "Curl", 8037 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 8038 }, 8039 { 8040 "lang": "CLI v2", 8041 "source": "phrase locales list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 8042 } 8043 ], 8044 "x-cli-version": "2.5" 8045 }, 8046 "post": { 8047 "summary": "Create a locale", 8048 "description": "Create a new locale.", 8049 "operationId": "locale/create", 8050 "tags": [ 8051 "Locales" 8052 ], 8053 "parameters": [ 8054 { 8055 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8056 }, 8057 { 8058 "$ref": "#/components/parameters/project_id" 8059 } 8060 ], 8061 "responses": { 8062 "201": { 8063 "description": "Created", 8064 "content": { 8065 "application/json": { 8066 "schema": { 8067 "$ref": "#/components/schemas/locale_details" 8068 } 8069 } 8070 }, 8071 "headers": { 8072 "X-Rate-Limit-Limit": { 8073 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8074 }, 8075 "X-Rate-Limit-Remaining": { 8076 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8077 }, 8078 "X-Rate-Limit-Reset": { 8079 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8080 } 8081 } 8082 }, 8083 "400": { 8084 "$ref": "#/components/responses/400" 8085 }, 8086 "404": { 8087 "$ref": "#/components/responses/404" 8088 }, 8089 "429": { 8090 "$ref": "#/components/responses/429" 8091 } 8092 }, 8093 "x-code-samples": [ 8094 { 8095 "lang": "Curl", 8096 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"de\",\"code\":\"de-DE\",\"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"fallback_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'" 8097 }, 8098 { 8099 "lang": "CLI v2", 8100 "source": "phrase locales create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"de\", \"code\":\"de-DE\", \"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"fallback_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n--access_token <token>" 8101 } 8102 ], 8103 "requestBody": { 8104 "required": true, 8105 "content": { 8106 "application/json": { 8107 "schema": { 8108 "type": "object", 8109 "title": "locale/create/parameters", 8110 "required": [ 8111 "name", 8112 "code" 8113 ], 8114 "properties": { 8115 "branch": { 8116 "description": "specify the branch to use", 8117 "type": "string", 8118 "example": "my-feature-branch" 8119 }, 8120 "name": { 8121 "description": "Locale name", 8122 "type": "string", 8123 "example": "de" 8124 }, 8125 "code": { 8126 "description": "Locale ISO code", 8127 "type": "string", 8128 "example": "de-DE" 8129 }, 8130 "default": { 8131 "description": "Indicates whether locale is the default locale. If set to true, the previous default locale the project is no longer the default locale.", 8132 "type": "boolean", 8133 "example": null 8134 }, 8135 "main": { 8136 "description": "Indicates whether locale is a main locale. Main locales are part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Verification System</a> feature.", 8137 "type": "boolean", 8138 "example": null 8139 }, 8140 "rtl": { 8141 "description": "Indicates whether locale is a RTL (Right-to-Left) locale.", 8142 "type": "boolean", 8143 "example": null 8144 }, 8145 "source_locale_id": { 8146 "description": "Source locale. Can be the name or id of the locale. Preferred is id.", 8147 "type": "string", 8148 "example": "abcd1234abcd1234abcd1234abcd1234" 8149 }, 8150 "fallback_locale_id": { 8151 "description": "Fallback locale for empty translations. Can be a locale name or id.", 8152 "type": "string", 8153 "example": "abcd1234abcd1234abcd1234abcd1234" 8154 }, 8155 "unverify_new_translations": { 8156 "description": "Indicates that new translations for this locale should be marked as unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 8157 "type": "boolean", 8158 "example": null 8159 }, 8160 "unverify_updated_translations": { 8161 "description": "Indicates that updated translations for this locale should be marked as unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 8162 "type": "boolean", 8163 "example": null 8164 }, 8165 "autotranslate": { 8166 "description": "If set, translations for this locale will be fetched automatically, right after creation.", 8167 "type": "boolean", 8168 "example": null 8169 } 8170 } 8171 } 8172 } 8173 } 8174 }, 8175 "x-cli-version": "2.5" 8176 } 8177 }, 8178 "/projects/{project_id}/locales/{id}": { 8179 "get": { 8180 "summary": "Get a single locale", 8181 "description": "Get details on a single locale for a given project.", 8182 "operationId": "locale/show", 8183 "tags": [ 8184 "Locales" 8185 ], 8186 "parameters": [ 8187 { 8188 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8189 }, 8190 { 8191 "$ref": "#/components/parameters/project_id" 8192 }, 8193 { 8194 "$ref": "#/components/parameters/locale_id_as_id" 8195 }, 8196 { 8197 "description": "specify the branch to use", 8198 "example": "my-feature-branch", 8199 "name": "branch", 8200 "in": "query", 8201 "schema": { 8202 "type": "string" 8203 } 8204 } 8205 ], 8206 "responses": { 8207 "200": { 8208 "description": "OK", 8209 "content": { 8210 "application/json": { 8211 "schema": { 8212 "$ref": "#/components/schemas/locale_details" 8213 } 8214 } 8215 }, 8216 "headers": { 8217 "X-Rate-Limit-Limit": { 8218 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8219 }, 8220 "X-Rate-Limit-Remaining": { 8221 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8222 }, 8223 "X-Rate-Limit-Reset": { 8224 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8225 } 8226 } 8227 }, 8228 "400": { 8229 "$ref": "#/components/responses/400" 8230 }, 8231 "404": { 8232 "$ref": "#/components/responses/404" 8233 }, 8234 "429": { 8235 "$ref": "#/components/responses/429" 8236 } 8237 }, 8238 "x-code-samples": [ 8239 { 8240 "lang": "Curl", 8241 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 8242 }, 8243 { 8244 "lang": "CLI v2", 8245 "source": "phrase locales show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 8246 } 8247 ], 8248 "x-cli-version": "2.5" 8249 }, 8250 "patch": { 8251 "summary": "Update a locale", 8252 "description": "Update an existing locale.", 8253 "operationId": "locale/update", 8254 "tags": [ 8255 "Locales" 8256 ], 8257 "parameters": [ 8258 { 8259 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8260 }, 8261 { 8262 "$ref": "#/components/parameters/project_id" 8263 }, 8264 { 8265 "$ref": "#/components/parameters/locale_id_as_id" 8266 } 8267 ], 8268 "responses": { 8269 "200": { 8270 "description": "OK", 8271 "content": { 8272 "application/json": { 8273 "schema": { 8274 "$ref": "#/components/schemas/locale_details" 8275 } 8276 } 8277 }, 8278 "headers": { 8279 "X-Rate-Limit-Limit": { 8280 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8281 }, 8282 "X-Rate-Limit-Remaining": { 8283 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8284 }, 8285 "X-Rate-Limit-Reset": { 8286 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8287 } 8288 } 8289 }, 8290 "400": { 8291 "$ref": "#/components/responses/400" 8292 }, 8293 "404": { 8294 "$ref": "#/components/responses/404" 8295 }, 8296 "429": { 8297 "$ref": "#/components/responses/429" 8298 } 8299 }, 8300 "x-code-samples": [ 8301 { 8302 "lang": "Curl", 8303 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"de\",\"code\":\"de-DE\",\"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'" 8304 }, 8305 { 8306 "lang": "CLI v2", 8307 "source": "phrase locales update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"de\", \"code\":\"de-DE\", \"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n--access_token <token>" 8308 } 8309 ], 8310 "requestBody": { 8311 "required": true, 8312 "content": { 8313 "application/json": { 8314 "schema": { 8315 "type": "object", 8316 "title": "locale/update/parameters", 8317 "properties": { 8318 "branch": { 8319 "description": "specify the branch to use", 8320 "type": "string", 8321 "example": "my-feature-branch" 8322 }, 8323 "name": { 8324 "description": "Locale name", 8325 "type": "string", 8326 "example": "de" 8327 }, 8328 "code": { 8329 "description": "Locale ISO code", 8330 "type": "string", 8331 "example": "de-DE" 8332 }, 8333 "default": { 8334 "description": "Indicates whether locale is the default locale. If set to true, the previous default locale the project is no longer the default locale.", 8335 "type": "boolean", 8336 "example": null 8337 }, 8338 "main": { 8339 "description": "Indicates whether locale is a main locale. Main locales are part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Verification System</a> feature.", 8340 "type": "boolean", 8341 "example": null 8342 }, 8343 "rtl": { 8344 "description": "Indicates whether locale is a RTL (Right-to-Left) locale.", 8345 "type": "boolean", 8346 "example": null 8347 }, 8348 "source_locale_id": { 8349 "description": "Source locale. Can be the name or id of the locale. Preferred is id.", 8350 "type": "string", 8351 "example": "abcd1234abcd1234abcd1234abcd1234" 8352 }, 8353 "fallback_locale_id": { 8354 "description": "Fallback locale for empty translations. Can be a locale name or id.", 8355 "type": "string", 8356 "example": "abcd1234abcd1234abcd1234abcd1234" 8357 }, 8358 "unverify_new_translations": { 8359 "description": "Indicates that new translations for this locale should be marked as unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 8360 "type": "boolean", 8361 "example": null 8362 }, 8363 "unverify_updated_translations": { 8364 "description": "Indicates that updated translations for this locale should be marked as unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 8365 "type": "boolean", 8366 "example": null 8367 }, 8368 "autotranslate": { 8369 "description": "If set, translations for this locale will be fetched automatically, right after creation.", 8370 "type": "boolean", 8371 "example": null 8372 } 8373 } 8374 } 8375 } 8376 } 8377 }, 8378 "x-cli-version": "2.5" 8379 }, 8380 "delete": { 8381 "summary": "Delete a locale", 8382 "description": "Delete an existing locale.", 8383 "operationId": "locale/delete", 8384 "tags": [ 8385 "Locales" 8386 ], 8387 "parameters": [ 8388 { 8389 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8390 }, 8391 { 8392 "$ref": "#/components/parameters/project_id" 8393 }, 8394 { 8395 "$ref": "#/components/parameters/locale_id_as_id" 8396 }, 8397 { 8398 "description": "specify the branch to use", 8399 "example": "my-feature-branch", 8400 "name": "branch", 8401 "in": "query", 8402 "schema": { 8403 "type": "string" 8404 } 8405 } 8406 ], 8407 "responses": { 8408 "204": { 8409 "$ref": "#/components/responses/204" 8410 }, 8411 "400": { 8412 "$ref": "#/components/responses/400" 8413 }, 8414 "404": { 8415 "$ref": "#/components/responses/404" 8416 }, 8417 "429": { 8418 "$ref": "#/components/responses/429" 8419 } 8420 }, 8421 "x-code-samples": [ 8422 { 8423 "lang": "Curl", 8424 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 8425 }, 8426 { 8427 "lang": "CLI v2", 8428 "source": "phrase locales delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 8429 } 8430 ], 8431 "x-cli-version": "2.5" 8432 } 8433 }, 8434 "/projects/{project_id}/locales/{id}/download": { 8435 "get": { 8436 "summary": "Download a locale", 8437 "description": "Download a locale in a specific file format.", 8438 "operationId": "locale/download", 8439 "tags": [ 8440 "Locales" 8441 ], 8442 "parameters": [ 8443 { 8444 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8445 }, 8446 { 8447 "$ref": "#/components/parameters/If-Modified-Since" 8448 }, 8449 { 8450 "$ref": "#/components/parameters/If-None-Match" 8451 }, 8452 { 8453 "$ref": "#/components/parameters/project_id" 8454 }, 8455 { 8456 "$ref": "#/components/parameters/locale_id_as_id" 8457 }, 8458 { 8459 "description": "specify the branch to use", 8460 "example": "my-feature-branch", 8461 "name": "branch", 8462 "in": "query", 8463 "schema": { 8464 "type": "string" 8465 } 8466 }, 8467 { 8468 "description": "File format name. See the <a href=\"https://support.phrase.com/hc/en-us/sections/6111343326364\">format guide</a> for all supported file formats.", 8469 "example": "yml", 8470 "name": "file_format", 8471 "in": "query", 8472 "schema": { 8473 "type": "string" 8474 } 8475 }, 8476 { 8477 "description": "Limit results to keys tagged with a list of comma separated tag names.", 8478 "example": "feature1,feature2", 8479 "name": "tags", 8480 "in": "query", 8481 "schema": { 8482 "type": "string" 8483 } 8484 }, 8485 { 8486 "description": "Limit download to tagged keys. This parameter is deprecated. Please use the \"tags\" parameter instead", 8487 "example": "feature", 8488 "deprecated": true, 8489 "name": "tag", 8490 "in": "query", 8491 "schema": { 8492 "type": "string" 8493 } 8494 }, 8495 { 8496 "description": "Indicates whether keys without translations should be included in the output as well.", 8497 "example": null, 8498 "name": "include_empty_translations", 8499 "in": "query", 8500 "schema": { 8501 "type": "boolean" 8502 } 8503 }, 8504 { 8505 "description": "Indicates whether zero forms should be included when empty in pluralized keys.", 8506 "example": null, 8507 "name": "exclude_empty_zero_forms", 8508 "in": "query", 8509 "schema": { 8510 "type": "boolean" 8511 } 8512 }, 8513 { 8514 "description": "Include translated keys in the locale file. Use in combination with include_empty_translations to obtain only untranslated keys.", 8515 "example": null, 8516 "name": "include_translated_keys", 8517 "in": "query", 8518 "schema": { 8519 "type": "boolean" 8520 } 8521 }, 8522 { 8523 "description": "Indicates whether [NOTRANSLATE] tags should be kept.", 8524 "example": null, 8525 "name": "keep_notranslate_tags", 8526 "in": "query", 8527 "schema": { 8528 "type": "boolean" 8529 } 8530 }, 8531 { 8532 "description": "This option is obsolete. Projects that were created on or after Nov 29th 2019 or that did not contain emoji by then will not require this flag any longer since emoji are now supported natively.", 8533 "example": null, 8534 "deprecated": true, 8535 "name": "convert_emoji", 8536 "in": "query", 8537 "schema": { 8538 "type": "boolean" 8539 } 8540 }, 8541 { 8542 "description": "Additional formatting and render options. See the <a href=\"https://support.phrase.com/hc/en-us/sections/6111343326364\">format guide</a> for a list of options available for each format. Specify format options like this: <code>...&format_options[foo]=bar</code>", 8543 "example": null, 8544 "name": "format_options", 8545 "in": "query", 8546 "schema": { 8547 "type": "object", 8548 "properties": {} 8549 }, 8550 "style": "deepObject", 8551 "explode": true 8552 }, 8553 { 8554 "description": "Enforces a specific encoding on the file contents. Valid options are \"UTF-8\", \"UTF-16\" and \"ISO-8859-1\".", 8555 "example": null, 8556 "name": "encoding", 8557 "in": "query", 8558 "schema": { 8559 "type": "string" 8560 } 8561 }, 8562 { 8563 "description": "Indicates whether the locale file should skip all unverified translations. This parameter is deprecated and should be replaced with <code>include_unverified_translations</code>.", 8564 "example": null, 8565 "deprecated": true, 8566 "name": "skip_unverified_translations", 8567 "in": "query", 8568 "schema": { 8569 "type": "boolean" 8570 } 8571 }, 8572 { 8573 "description": "if set to false unverified translations are excluded", 8574 "example": null, 8575 "name": "include_unverified_translations", 8576 "in": "query", 8577 "schema": { 8578 "type": "boolean" 8579 } 8580 }, 8581 { 8582 "description": "If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project.", 8583 "example": null, 8584 "name": "use_last_reviewed_version", 8585 "in": "query", 8586 "schema": { 8587 "type": "boolean" 8588 } 8589 }, 8590 { 8591 "description": "If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to <code>true</code>.", 8592 "example": null, 8593 "name": "fallback_locale_id", 8594 "in": "query", 8595 "schema": { 8596 "type": "string" 8597 } 8598 }, 8599 { 8600 "description": "Provides the source language of a corresponding job as the source language of the generated locale file. This parameter will be ignored unless used in combination with a <code>tag</code> parameter indicating a specific job.", 8601 "example": null, 8602 "name": "source_locale_id", 8603 "in": "query", 8604 "schema": { 8605 "type": "string" 8606 } 8607 }, 8608 { 8609 "name": "custom_metadata_filters", 8610 "in": "query", 8611 "description": "Custom metadata filters. Provide the name of the metadata field and the value to filter by. Only keys with matching metadata will be included in the download.\n", 8612 "schema": { 8613 "type": "object", 8614 "properties": {} 8615 }, 8616 "style": "deepObject", 8617 "explode": true 8618 } 8619 ], 8620 "responses": { 8621 "200": { 8622 "description": "OK", 8623 "content": { 8624 "*": { 8625 "schema": { 8626 "type": "string", 8627 "format": "binary" 8628 } 8629 } 8630 }, 8631 "headers": { 8632 "X-Rate-Limit-Limit": { 8633 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8634 }, 8635 "X-Rate-Limit-Remaining": { 8636 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8637 }, 8638 "X-Rate-Limit-Reset": { 8639 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8640 } 8641 } 8642 }, 8643 "400": { 8644 "$ref": "#/components/responses/400" 8645 }, 8646 "404": { 8647 "$ref": "#/components/responses/404" 8648 }, 8649 "429": { 8650 "$ref": "#/components/responses/429" 8651 } 8652 }, 8653 "x-code-samples": [ 8654 { 8655 "lang": "Curl", 8656 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales/:id/download?branch=my-feature-branch&file_format=yml&tags=feature1,feature2&tag=feature&custom_metadata_filters[tone]=friendly\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 8657 }, 8658 { 8659 "lang": "CLI v2", 8660 "source": "phrase locales download \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--file_format yml \\\n--tags feature1,feature2 \\\n--tag feature \\\n--access_token <token>" 8661 } 8662 ], 8663 "x-cli-version": "2.6.4" 8664 } 8665 }, 8666 "/accounts/{account_id}/distributions": { 8667 "get": { 8668 "summary": "List distributions", 8669 "description": "List all distributions for the given account.", 8670 "operationId": "distributions/list", 8671 "tags": [ 8672 "Distributions" 8673 ], 8674 "parameters": [ 8675 { 8676 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8677 }, 8678 { 8679 "$ref": "#/components/parameters/account_id" 8680 }, 8681 { 8682 "$ref": "#/components/parameters/page" 8683 }, 8684 { 8685 "$ref": "#/components/parameters/per_page" 8686 } 8687 ], 8688 "responses": { 8689 "200": { 8690 "description": "OK", 8691 "content": { 8692 "application/json": { 8693 "schema": { 8694 "type": "array", 8695 "items": { 8696 "$ref": "#/components/schemas/distribution_preview" 8697 } 8698 } 8699 } 8700 }, 8701 "headers": { 8702 "X-Rate-Limit-Limit": { 8703 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8704 }, 8705 "X-Rate-Limit-Remaining": { 8706 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8707 }, 8708 "X-Rate-Limit-Reset": { 8709 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8710 }, 8711 "Link": { 8712 "$ref": "#/components/headers/Link" 8713 }, 8714 "Pagination": { 8715 "$ref": "#/components/headers/Pagination" 8716 } 8717 } 8718 }, 8719 "400": { 8720 "$ref": "#/components/responses/400" 8721 }, 8722 "404": { 8723 "$ref": "#/components/responses/404" 8724 }, 8725 "429": { 8726 "$ref": "#/components/responses/429" 8727 } 8728 }, 8729 "x-code-samples": [ 8730 { 8731 "lang": "Curl", 8732 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 8733 }, 8734 { 8735 "lang": "CLI v2", 8736 "source": "phrase distributions list \\\n--account_id <account_id> \\\n--access_token <token>" 8737 } 8738 ], 8739 "x-cli-version": "2.5" 8740 }, 8741 "post": { 8742 "summary": "Create a distribution", 8743 "description": "Create a new distribution.", 8744 "operationId": "distribution/create", 8745 "tags": [ 8746 "Distributions" 8747 ], 8748 "parameters": [ 8749 { 8750 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8751 }, 8752 { 8753 "$ref": "#/components/parameters/account_id" 8754 } 8755 ], 8756 "responses": { 8757 "201": { 8758 "description": "Created", 8759 "content": { 8760 "application/json": { 8761 "schema": { 8762 "$ref": "#/components/schemas/distribution" 8763 } 8764 } 8765 }, 8766 "headers": { 8767 "X-Rate-Limit-Limit": { 8768 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8769 }, 8770 "X-Rate-Limit-Remaining": { 8771 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8772 }, 8773 "X-Rate-Limit-Reset": { 8774 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8775 } 8776 } 8777 }, 8778 "400": { 8779 "$ref": "#/components/responses/400" 8780 }, 8781 "404": { 8782 "$ref": "#/components/responses/404" 8783 }, 8784 "429": { 8785 "$ref": "#/components/responses/429" 8786 } 8787 }, 8788 "x-code-samples": [ 8789 { 8790 "lang": "Curl", 8791 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"My Android Distribution\",\"project_id\":\"abcd1234abcd1234abcd1234\",\"platforms\":[\"android\",\"ios\"],\"locale_ids\":[\"fff565db236400772368235db2c6117e,abcd1234cdef1234abcd1234cdef1234\"],\"format_options\":\"{xml:{enclose_in_cdata:'1'}}\",\"fallback_to_non_regional_locale\":true,\"fallback_to_default_locale\":true,\"use_last_reviewed_version\":true}' \\\n -H 'Content-Type: application/json'" 8792 }, 8793 { 8794 "lang": "CLI v2", 8795 "source": "phrase distributions create \\\n--account_id <account_id> \\\n--data '{\"name\": \"My Android Distribution\", \"project_id\":\"abcd1234abcd1234abcd1234\", \"platforms\": \"android,ios\", \"locale_ids\":[\"fff565db236400772368235db2c6117e,abcd1234cdef1234abcd1234cdef1234\"], \"format_options\": \"{xml:{enclose_in_cdata:'1'}}\", \"fallback_to_non_regional_locale\":true, \"fallback_to_default_locale\":true, \"use_last_reviewed_version\":true}' \\\n--access_token <token>" 8796 } 8797 ], 8798 "requestBody": { 8799 "required": true, 8800 "content": { 8801 "application/json": { 8802 "schema": { 8803 "type": "object", 8804 "title": "distribution/create/parameters", 8805 "required": [ 8806 "name", 8807 "project_id" 8808 ], 8809 "properties": { 8810 "name": { 8811 "description": "Name of the distribution", 8812 "type": "string", 8813 "example": "My Android Distribution" 8814 }, 8815 "project_id": { 8816 "description": "Project id the distribution should be assigned to.", 8817 "type": "string", 8818 "example": "abcd1234abcd1234abcd1234" 8819 }, 8820 "platforms": { 8821 "description": "List of platforms the distribution should support.\nValid values are:\n* `android`\n* `ios`\n* `flutter`\n* `i18next`\n* `rails`", 8822 "type": "array", 8823 "items": { 8824 "type": "string" 8825 }, 8826 "example": [ 8827 "android", 8828 "ios" 8829 ] 8830 }, 8831 "locale_ids": { 8832 "description": "List of locale ids that will be part of distribution releases", 8833 "type": "array", 8834 "items": { 8835 "type": "string" 8836 }, 8837 "example": [ 8838 "abcd1234cdef1234abcd1234cdef1234", 8839 "fff565db236400772368235db2c6117e" 8840 ] 8841 }, 8842 "format_options": { 8843 "description": "Additional formatting and render options. Only <code>enclose_in_cdata</code> is available for platform <code>android</code>.", 8844 "type": "object", 8845 "additionalProperties": { 8846 "type": "string" 8847 }, 8848 "example": "{xml:{enclose_in_cdata:'1'}}" 8849 }, 8850 "fallback_locales_enabled": { 8851 "description": "Use fallback locale if there is no translation in the current locale.", 8852 "type": "boolean", 8853 "example": true 8854 }, 8855 "fallback_to_non_regional_locale": { 8856 "description": "Indicates whether to fallback to non regional locale when locale can not be found", 8857 "type": "boolean", 8858 "example": true 8859 }, 8860 "fallback_to_default_locale": { 8861 "description": "Indicates whether to fallback to projects default locale when locale can not be found", 8862 "type": "boolean", 8863 "example": true 8864 }, 8865 "use_last_reviewed_version": { 8866 "description": "Use last reviewed instead of latest translation in a project", 8867 "type": "boolean", 8868 "example": true 8869 } 8870 } 8871 } 8872 } 8873 } 8874 }, 8875 "x-cli-version": "2.5" 8876 } 8877 }, 8878 "/accounts/{account_id}/distributions/{id}": { 8879 "get": { 8880 "summary": "Get a single distribution", 8881 "description": "Get details on a single distribution.", 8882 "operationId": "distribution/show", 8883 "tags": [ 8884 "Distributions" 8885 ], 8886 "parameters": [ 8887 { 8888 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8889 }, 8890 { 8891 "$ref": "#/components/parameters/account_id" 8892 }, 8893 { 8894 "$ref": "#/components/parameters/id" 8895 } 8896 ], 8897 "responses": { 8898 "200": { 8899 "description": "OK", 8900 "content": { 8901 "application/json": { 8902 "schema": { 8903 "$ref": "#/components/schemas/distribution" 8904 } 8905 } 8906 }, 8907 "headers": { 8908 "X-Rate-Limit-Limit": { 8909 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8910 }, 8911 "X-Rate-Limit-Remaining": { 8912 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8913 }, 8914 "X-Rate-Limit-Reset": { 8915 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8916 } 8917 } 8918 }, 8919 "400": { 8920 "$ref": "#/components/responses/400" 8921 }, 8922 "404": { 8923 "$ref": "#/components/responses/404" 8924 }, 8925 "429": { 8926 "$ref": "#/components/responses/429" 8927 } 8928 }, 8929 "x-code-samples": [ 8930 { 8931 "lang": "Curl", 8932 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 8933 }, 8934 { 8935 "lang": "CLI v2", 8936 "source": "phrase distributions show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 8937 } 8938 ], 8939 "x-cli-version": "2.5" 8940 }, 8941 "patch": { 8942 "summary": "Update a distribution", 8943 "description": "Update an existing distribution.", 8944 "operationId": "distribution/update", 8945 "tags": [ 8946 "Distributions" 8947 ], 8948 "parameters": [ 8949 { 8950 "$ref": "#/components/parameters/X-PhraseApp-OTP" 8951 }, 8952 { 8953 "$ref": "#/components/parameters/account_id" 8954 }, 8955 { 8956 "$ref": "#/components/parameters/id" 8957 } 8958 ], 8959 "responses": { 8960 "200": { 8961 "description": "OK", 8962 "content": { 8963 "application/json": { 8964 "schema": { 8965 "$ref": "#/components/schemas/distribution" 8966 } 8967 } 8968 }, 8969 "headers": { 8970 "X-Rate-Limit-Limit": { 8971 "$ref": "#/components/headers/X-Rate-Limit-Limit" 8972 }, 8973 "X-Rate-Limit-Remaining": { 8974 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 8975 }, 8976 "X-Rate-Limit-Reset": { 8977 "$ref": "#/components/headers/X-Rate-Limit-Reset" 8978 } 8979 } 8980 }, 8981 "400": { 8982 "$ref": "#/components/responses/400" 8983 }, 8984 "404": { 8985 "$ref": "#/components/responses/404" 8986 }, 8987 "429": { 8988 "$ref": "#/components/responses/429" 8989 } 8990 }, 8991 "x-code-samples": [ 8992 { 8993 "lang": "Curl", 8994 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"My Android Distribution\",\"project_id\":\"abcd1234abcd1234abcd1234\",\"platforms\":[\"android\",\"ios\"],\"locale_ids\":[\"fff565db236400772368235db2c6117e,abcd1234cdef1234abcd1234cdef1234\"],\"format_options\":\"{xml:{enclose_in_cdata:'1'}}\",\"fallback_to_non_regional_locale\":true,\"fallback_to_default_locale\":true,\"use_last_reviewed_version\":true}' \\\n -H 'Content-Type: application/json'" 8995 }, 8996 { 8997 "lang": "CLI v2", 8998 "source": "phrase distributions update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"name\": \"My Android Distribution\", \"project_id\":\"abcd1234abcd1234abcd1234\", \"platforms\": \"android,ios\", \"locale_ids\": \"fff565db236400772368235db2c6117e,abcd1234cdef1234abcd1234cdef1234\", \"format_options\": \"{xml:{enclose_in_cdata:'1'}}\", \"fallback_to_non_regional_locale\":true, \"fallback_to_default_locale\":true, \"use_last_reviewed_version\":true}' \\\n--access_token <token>" 8999 } 9000 ], 9001 "requestBody": { 9002 "required": true, 9003 "content": { 9004 "application/json": { 9005 "schema": { 9006 "type": "object", 9007 "title": "distribution/update/parameters", 9008 "properties": { 9009 "name": { 9010 "description": "Name of the distribution", 9011 "type": "string", 9012 "example": "My Android Distribution" 9013 }, 9014 "project_id": { 9015 "description": "Project id the distribution should be assigned to.", 9016 "type": "string", 9017 "example": "abcd1234abcd1234abcd1234" 9018 }, 9019 "platforms": { 9020 "description": "List of platforms the distribution should support.", 9021 "type": "array", 9022 "items": { 9023 "type": "string" 9024 }, 9025 "example": [ 9026 "android", 9027 "ios" 9028 ] 9029 }, 9030 "locale_ids": { 9031 "description": "List of locale ids that will be part of distribution releases", 9032 "type": "array", 9033 "items": { 9034 "type": "string" 9035 }, 9036 "example": [ 9037 "abcd1234cdef1234abcd1234cdef1234", 9038 "fff565db236400772368235db2c6117e" 9039 ] 9040 }, 9041 "format_options": { 9042 "description": "Additional formatting and render options. Only <code>enclose_in_cdata</code> is available for platform <code>android</code>.", 9043 "type": "object", 9044 "additionalProperties": { 9045 "type": "string" 9046 }, 9047 "example": "{xml:{enclose_in_cdata:'1'}}" 9048 }, 9049 "fallback_locales_enabled": { 9050 "description": "Use fallback locale if there is no translation in the current locale.", 9051 "type": "boolean", 9052 "example": true 9053 }, 9054 "fallback_to_non_regional_locale": { 9055 "description": "Indicates whether to fallback to non regional locale when locale can not be found", 9056 "type": "boolean", 9057 "example": true 9058 }, 9059 "fallback_to_default_locale": { 9060 "description": "Indicates whether to fallback to projects default locale when locale can not be found", 9061 "type": "boolean", 9062 "example": true 9063 }, 9064 "use_last_reviewed_version": { 9065 "description": "Use last reviewed instead of latest translation in a project", 9066 "type": "boolean", 9067 "example": true 9068 } 9069 } 9070 } 9071 } 9072 } 9073 }, 9074 "x-cli-version": "2.5" 9075 }, 9076 "delete": { 9077 "summary": "Delete a distribution", 9078 "description": "Delete an existing distribution.", 9079 "operationId": "distribution/delete", 9080 "tags": [ 9081 "Distributions" 9082 ], 9083 "parameters": [ 9084 { 9085 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9086 }, 9087 { 9088 "$ref": "#/components/parameters/account_id" 9089 }, 9090 { 9091 "$ref": "#/components/parameters/id" 9092 } 9093 ], 9094 "responses": { 9095 "204": { 9096 "$ref": "#/components/responses/204" 9097 }, 9098 "400": { 9099 "$ref": "#/components/responses/400" 9100 }, 9101 "404": { 9102 "$ref": "#/components/responses/404" 9103 }, 9104 "429": { 9105 "$ref": "#/components/responses/429" 9106 } 9107 }, 9108 "x-code-samples": [ 9109 { 9110 "lang": "Curl", 9111 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 9112 }, 9113 { 9114 "lang": "CLI v2", 9115 "source": "phrase distributions delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 9116 } 9117 ], 9118 "x-cli-version": "2.5" 9119 } 9120 }, 9121 "/accounts/{account_id}/distributions/{distribution_id}/releases": { 9122 "get": { 9123 "summary": "List releases", 9124 "description": "List all releases for the given distribution.", 9125 "operationId": "releases/list", 9126 "tags": [ 9127 "Releases" 9128 ], 9129 "parameters": [ 9130 { 9131 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9132 }, 9133 { 9134 "$ref": "#/components/parameters/account_id" 9135 }, 9136 { 9137 "$ref": "#/components/parameters/distribution_id" 9138 }, 9139 { 9140 "$ref": "#/components/parameters/page" 9141 }, 9142 { 9143 "$ref": "#/components/parameters/per_page" 9144 } 9145 ], 9146 "responses": { 9147 "200": { 9148 "description": "OK", 9149 "content": { 9150 "application/json": { 9151 "schema": { 9152 "type": "array", 9153 "items": { 9154 "$ref": "#/components/schemas/release_preview" 9155 } 9156 } 9157 } 9158 }, 9159 "headers": { 9160 "X-Rate-Limit-Limit": { 9161 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9162 }, 9163 "X-Rate-Limit-Remaining": { 9164 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9165 }, 9166 "X-Rate-Limit-Reset": { 9167 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9168 }, 9169 "Link": { 9170 "$ref": "#/components/headers/Link" 9171 }, 9172 "Pagination": { 9173 "$ref": "#/components/headers/Pagination" 9174 } 9175 } 9176 }, 9177 "400": { 9178 "$ref": "#/components/responses/400" 9179 }, 9180 "404": { 9181 "$ref": "#/components/responses/404" 9182 }, 9183 "429": { 9184 "$ref": "#/components/responses/429" 9185 } 9186 }, 9187 "x-code-samples": [ 9188 { 9189 "lang": "Curl", 9190 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 9191 }, 9192 { 9193 "lang": "CLI v2", 9194 "source": "phrase releases list \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--access_token <token>" 9195 } 9196 ], 9197 "x-cli-version": "2.5" 9198 }, 9199 "post": { 9200 "summary": "Create a release", 9201 "description": "Create a new release.", 9202 "operationId": "release/create", 9203 "tags": [ 9204 "Releases" 9205 ], 9206 "parameters": [ 9207 { 9208 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9209 }, 9210 { 9211 "$ref": "#/components/parameters/account_id" 9212 }, 9213 { 9214 "$ref": "#/components/parameters/distribution_id" 9215 } 9216 ], 9217 "responses": { 9218 "201": { 9219 "description": "Created", 9220 "content": { 9221 "application/json": { 9222 "schema": { 9223 "$ref": "#/components/schemas/release" 9224 } 9225 } 9226 }, 9227 "headers": { 9228 "X-Rate-Limit-Limit": { 9229 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9230 }, 9231 "X-Rate-Limit-Remaining": { 9232 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9233 }, 9234 "X-Rate-Limit-Reset": { 9235 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9236 } 9237 } 9238 }, 9239 "400": { 9240 "$ref": "#/components/responses/400" 9241 }, 9242 "404": { 9243 "$ref": "#/components/responses/404" 9244 }, 9245 "429": { 9246 "$ref": "#/components/responses/429" 9247 } 9248 }, 9249 "x-code-samples": [ 9250 { 9251 "lang": "Curl", 9252 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"description\":\"My first Release\",\"platforms\":[\"android\",\"ios\"],\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 9253 }, 9254 { 9255 "lang": "CLI v2", 9256 "source": "phrase releases create \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--data '{\"description\": \"My first Release\", \"platforms\": [\"android\", \"ios\"], \"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 9257 } 9258 ], 9259 "requestBody": { 9260 "required": true, 9261 "content": { 9262 "application/json": { 9263 "schema": { 9264 "type": "object", 9265 "title": "release/create/parameters", 9266 "properties": { 9267 "description": { 9268 "description": "Description of the release", 9269 "type": "string", 9270 "example": "My first Release" 9271 }, 9272 "platforms": { 9273 "description": "List of platforms the release should support.", 9274 "type": "array", 9275 "items": { 9276 "type": "string" 9277 }, 9278 "example": [ 9279 "android", 9280 "ios" 9281 ] 9282 }, 9283 "locale_ids": { 9284 "description": "List of locale ids that will be included in the release. If empty, distribution locales will be used", 9285 "type": "array", 9286 "items": { 9287 "type": "string" 9288 }, 9289 "example": [ 9290 "abcd1234cdef1234abcd1234cdef1234", 9291 "fff565db236400772368235db2c6117e" 9292 ] 9293 }, 9294 "tags": { 9295 "description": "Only include tagged keys in the release. For a key to be included it must be tagged with all tags provided", 9296 "type": "array", 9297 "items": { 9298 "type": "string" 9299 }, 9300 "example": [ 9301 "android", 9302 "feature1" 9303 ] 9304 }, 9305 "branch": { 9306 "description": "Branch used for release", 9307 "type": "string", 9308 "example": "my-feature-branch" 9309 } 9310 } 9311 } 9312 } 9313 } 9314 }, 9315 "x-cli-version": "2.8" 9316 } 9317 }, 9318 "/accounts/{account_id}/distributions/{distribution_id}/releases/{id}": { 9319 "get": { 9320 "summary": "Get a single release", 9321 "description": "Get details on a single release.", 9322 "operationId": "release/show", 9323 "tags": [ 9324 "Releases" 9325 ], 9326 "parameters": [ 9327 { 9328 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9329 }, 9330 { 9331 "$ref": "#/components/parameters/account_id" 9332 }, 9333 { 9334 "$ref": "#/components/parameters/distribution_id" 9335 }, 9336 { 9337 "$ref": "#/components/parameters/id" 9338 } 9339 ], 9340 "responses": { 9341 "200": { 9342 "description": "OK", 9343 "content": { 9344 "application/json": { 9345 "schema": { 9346 "$ref": "#/components/schemas/release" 9347 } 9348 } 9349 }, 9350 "headers": { 9351 "X-Rate-Limit-Limit": { 9352 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9353 }, 9354 "X-Rate-Limit-Remaining": { 9355 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9356 }, 9357 "X-Rate-Limit-Reset": { 9358 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9359 } 9360 } 9361 }, 9362 "400": { 9363 "$ref": "#/components/responses/400" 9364 }, 9365 "404": { 9366 "$ref": "#/components/responses/404" 9367 }, 9368 "429": { 9369 "$ref": "#/components/responses/429" 9370 } 9371 }, 9372 "x-code-samples": [ 9373 { 9374 "lang": "Curl", 9375 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 9376 }, 9377 { 9378 "lang": "CLI v2", 9379 "source": "phrase releases show \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--id <id> \\\n--access_token <token>" 9380 } 9381 ], 9382 "x-cli-version": "2.5" 9383 }, 9384 "patch": { 9385 "summary": "Update a release", 9386 "description": "Update an existing release.", 9387 "operationId": "release/update", 9388 "tags": [ 9389 "Releases" 9390 ], 9391 "parameters": [ 9392 { 9393 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9394 }, 9395 { 9396 "$ref": "#/components/parameters/account_id" 9397 }, 9398 { 9399 "$ref": "#/components/parameters/distribution_id" 9400 }, 9401 { 9402 "$ref": "#/components/parameters/id" 9403 } 9404 ], 9405 "responses": { 9406 "200": { 9407 "description": "OK", 9408 "content": { 9409 "application/json": { 9410 "schema": { 9411 "$ref": "#/components/schemas/release" 9412 } 9413 } 9414 }, 9415 "headers": { 9416 "X-Rate-Limit-Limit": { 9417 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9418 }, 9419 "X-Rate-Limit-Remaining": { 9420 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9421 }, 9422 "X-Rate-Limit-Reset": { 9423 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9424 } 9425 } 9426 }, 9427 "400": { 9428 "$ref": "#/components/responses/400" 9429 }, 9430 "404": { 9431 "$ref": "#/components/responses/404" 9432 }, 9433 "429": { 9434 "$ref": "#/components/responses/429" 9435 } 9436 }, 9437 "x-code-samples": [ 9438 { 9439 "lang": "Curl", 9440 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"description\":\"My first Release\",\"platforms\":[\"android\",\"ios\"],\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 9441 }, 9442 { 9443 "lang": "CLI v2", 9444 "source": "phrase releases update \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--id <id> \\\n--data '{\"description\": \"My first Release\", \"platforms\": \"android,ios\", \"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 9445 } 9446 ], 9447 "requestBody": { 9448 "required": true, 9449 "content": { 9450 "application/json": { 9451 "schema": { 9452 "type": "object", 9453 "title": "release/update/parameters", 9454 "properties": { 9455 "description": { 9456 "description": "Description of the release", 9457 "type": "string", 9458 "example": "My first Release" 9459 }, 9460 "platforms": { 9461 "description": "List of platforms the release should support.", 9462 "type": "array", 9463 "items": { 9464 "type": "string" 9465 }, 9466 "example": [ 9467 "android", 9468 "ios" 9469 ] 9470 }, 9471 "branch": { 9472 "description": "Branch used for release", 9473 "type": "string", 9474 "example": "my-feature-branch" 9475 } 9476 } 9477 } 9478 } 9479 } 9480 }, 9481 "x-cli-version": "2.5" 9482 }, 9483 "delete": { 9484 "summary": "Delete a release", 9485 "description": "Delete an existing release.", 9486 "operationId": "release/delete", 9487 "tags": [ 9488 "Releases" 9489 ], 9490 "parameters": [ 9491 { 9492 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9493 }, 9494 { 9495 "$ref": "#/components/parameters/account_id" 9496 }, 9497 { 9498 "$ref": "#/components/parameters/distribution_id" 9499 }, 9500 { 9501 "$ref": "#/components/parameters/id" 9502 } 9503 ], 9504 "responses": { 9505 "204": { 9506 "$ref": "#/components/responses/204" 9507 }, 9508 "400": { 9509 "$ref": "#/components/responses/400" 9510 }, 9511 "404": { 9512 "$ref": "#/components/responses/404" 9513 }, 9514 "429": { 9515 "$ref": "#/components/responses/429" 9516 } 9517 }, 9518 "x-code-samples": [ 9519 { 9520 "lang": "Curl", 9521 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 9522 }, 9523 { 9524 "lang": "CLI v2", 9525 "source": "phrase releases delete \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--id <id> \\\n--access_token <token>" 9526 } 9527 ], 9528 "x-cli-version": "2.5" 9529 } 9530 }, 9531 "/accounts/{account_id}/distributions/{distribution_id}/releases/{id}/publish": { 9532 "post": { 9533 "summary": "Publish a release", 9534 "description": "Publish a release for production.", 9535 "operationId": "release/publish", 9536 "tags": [ 9537 "Releases" 9538 ], 9539 "parameters": [ 9540 { 9541 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9542 }, 9543 { 9544 "$ref": "#/components/parameters/account_id" 9545 }, 9546 { 9547 "$ref": "#/components/parameters/distribution_id" 9548 }, 9549 { 9550 "$ref": "#/components/parameters/id" 9551 } 9552 ], 9553 "responses": { 9554 "200": { 9555 "description": "OK", 9556 "content": { 9557 "application/json": { 9558 "schema": { 9559 "$ref": "#/components/schemas/release" 9560 } 9561 } 9562 }, 9563 "headers": { 9564 "X-Rate-Limit-Limit": { 9565 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9566 }, 9567 "X-Rate-Limit-Remaining": { 9568 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9569 }, 9570 "X-Rate-Limit-Reset": { 9571 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9572 } 9573 } 9574 }, 9575 "400": { 9576 "$ref": "#/components/responses/400" 9577 }, 9578 "404": { 9579 "$ref": "#/components/responses/404" 9580 }, 9581 "429": { 9582 "$ref": "#/components/responses/429" 9583 } 9584 }, 9585 "x-code-samples": [ 9586 { 9587 "lang": "Curl", 9588 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id/publish\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST" 9589 }, 9590 { 9591 "lang": "CLI v2", 9592 "source": "phrase releases publish \\\n--account_id <account_id> \\\n--distribution_id <distribution_id> \\\n--id <id> \\\n--access_token <token>" 9593 } 9594 ], 9595 "x-cli-version": "2.5" 9596 } 9597 }, 9598 "/projects/{project_id}/jobs": { 9599 "get": { 9600 "summary": "List jobs", 9601 "description": "List all jobs for the given project.", 9602 "operationId": "jobs/list", 9603 "tags": [ 9604 "Jobs" 9605 ], 9606 "parameters": [ 9607 { 9608 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9609 }, 9610 { 9611 "$ref": "#/components/parameters/project_id" 9612 }, 9613 { 9614 "$ref": "#/components/parameters/page" 9615 }, 9616 { 9617 "$ref": "#/components/parameters/per_page" 9618 }, 9619 { 9620 "description": "specify the branch to use", 9621 "example": "my-feature-branch", 9622 "name": "branch", 9623 "in": "query", 9624 "schema": { 9625 "type": "string" 9626 } 9627 }, 9628 { 9629 "description": "filter by user owning job", 9630 "example": "abcd1234cdef1234abcd1234cdef1234", 9631 "name": "owned_by", 9632 "in": "query", 9633 "schema": { 9634 "type": "string" 9635 } 9636 }, 9637 { 9638 "description": "filter by user assigned to job", 9639 "example": "abcd1234cdef1234abcd1234cdef1234", 9640 "name": "assigned_to", 9641 "in": "query", 9642 "schema": { 9643 "type": "string" 9644 } 9645 }, 9646 { 9647 "description": "filter by state of job Valid states are <code>draft</code>, <code>in_progress</code>, <code>completed</code>", 9648 "example": "completed", 9649 "name": "state", 9650 "in": "query", 9651 "schema": { 9652 "type": "string" 9653 } 9654 } 9655 ], 9656 "responses": { 9657 "200": { 9658 "description": "OK", 9659 "content": { 9660 "application/json": { 9661 "schema": { 9662 "type": "array", 9663 "items": { 9664 "$ref": "#/components/schemas/job" 9665 } 9666 } 9667 } 9668 }, 9669 "headers": { 9670 "X-Rate-Limit-Limit": { 9671 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9672 }, 9673 "X-Rate-Limit-Remaining": { 9674 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9675 }, 9676 "X-Rate-Limit-Reset": { 9677 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9678 }, 9679 "Link": { 9680 "$ref": "#/components/headers/Link" 9681 }, 9682 "Pagination": { 9683 "$ref": "#/components/headers/Pagination" 9684 } 9685 } 9686 }, 9687 "400": { 9688 "$ref": "#/components/responses/400" 9689 }, 9690 "404": { 9691 "$ref": "#/components/responses/404" 9692 }, 9693 "429": { 9694 "$ref": "#/components/responses/429" 9695 } 9696 }, 9697 "x-code-samples": [ 9698 { 9699 "lang": "Curl", 9700 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs?branch=my-feature-branch&owned_by=abcd1234cdef1234abcd1234cdef1234&assigned_to=abcd1234cdef1234abcd1234cdef1234&state=completed\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 9701 }, 9702 { 9703 "lang": "CLI v2", 9704 "source": "phrase jobs list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--owned_by abcd1234cdef1234abcd1234cdef1234 \\\n--assigned_to abcd1234cdef1234abcd1234cdef1234 \\\n--state completed \\\n--access_token <token>" 9705 } 9706 ], 9707 "x-cli-version": "2.5" 9708 }, 9709 "post": { 9710 "summary": "Create a job", 9711 "description": "Create a new job.", 9712 "operationId": "job/create", 9713 "tags": [ 9714 "Jobs" 9715 ], 9716 "parameters": [ 9717 { 9718 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9719 }, 9720 { 9721 "$ref": "#/components/parameters/project_id" 9722 } 9723 ], 9724 "responses": { 9725 "201": { 9726 "description": "Created", 9727 "content": { 9728 "application/json": { 9729 "schema": { 9730 "$ref": "#/components/schemas/job_details" 9731 } 9732 } 9733 }, 9734 "headers": { 9735 "X-Rate-Limit-Limit": { 9736 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9737 }, 9738 "X-Rate-Limit-Remaining": { 9739 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9740 }, 9741 "X-Rate-Limit-Reset": { 9742 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9743 } 9744 } 9745 }, 9746 "400": { 9747 "$ref": "#/components/responses/400" 9748 }, 9749 "404": { 9750 "$ref": "#/components/responses/404" 9751 }, 9752 "429": { 9753 "$ref": "#/components/responses/429" 9754 } 9755 }, 9756 "x-code-samples": [ 9757 { 9758 "lang": "Curl", 9759 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"de\",\"briefing\":\"de-DE\",\"due_date\":\"2017-08-15\",\"ticket_url\":\"https://example.atlassian.net/browse/FOO\",\"tags\":[\"myUploadTag\"],\"translation_key_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 9760 }, 9761 { 9762 "lang": "CLI v2", 9763 "source": "phrase jobs create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"de\", \"briefing\":\"de-DE\", \"due_date\":\"2017-08-15\", \"ticket_url\":\"https://example.atlassian.net/browse/FOO\", \"tags\": [\"myUploadTag\"], \"translation_key_ids\": [\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n--access_token <token>" 9764 } 9765 ], 9766 "requestBody": { 9767 "required": true, 9768 "content": { 9769 "application/json": { 9770 "schema": { 9771 "type": "object", 9772 "title": "job/create/parameters", 9773 "required": [ 9774 "name" 9775 ], 9776 "properties": { 9777 "branch": { 9778 "description": "specify the branch to use", 9779 "type": "string", 9780 "example": "my-feature-branch" 9781 }, 9782 "name": { 9783 "description": "Job name", 9784 "type": "string", 9785 "example": "de" 9786 }, 9787 "source_locale_id": { 9788 "description": "The API id of the source language", 9789 "type": "string", 9790 "example": "abcd1234cdef1234abcd1234cdef1234" 9791 }, 9792 "briefing": { 9793 "description": "Briefing for the translators", 9794 "type": "string", 9795 "example": "de-DE" 9796 }, 9797 "due_date": { 9798 "description": "Date the job should be finished", 9799 "type": "string", 9800 "format": "date-time", 9801 "example": "2017-08-15", 9802 "nullable": true 9803 }, 9804 "ticket_url": { 9805 "description": "URL to a ticket for this job (e.g. Jira, Trello)", 9806 "type": "string", 9807 "example": "https://example.atlassian.net/browse/FOO" 9808 }, 9809 "tags": { 9810 "description": "tags of keys that should be included within the job", 9811 "type": "array", 9812 "items": { 9813 "type": "string" 9814 }, 9815 "example": [ 9816 "myUploadTag" 9817 ] 9818 }, 9819 "translation_key_ids": { 9820 "description": "ids of keys that should be included within the job", 9821 "type": "array", 9822 "items": { 9823 "type": "string" 9824 }, 9825 "example": [ 9826 "abcd1234cdef1234abcd1234cdef1234" 9827 ] 9828 }, 9829 "job_template_id": { 9830 "description": "id of a job template you would like to model the created job after. Any manually added parameters will take preference over template attributes.", 9831 "type": "string", 9832 "example": "abcd1234cdef1234abcd1234cdef1234" 9833 } 9834 } 9835 } 9836 } 9837 } 9838 }, 9839 "x-cli-version": "2.5" 9840 } 9841 }, 9842 "/accounts/{account_id}/jobs": { 9843 "get": { 9844 "summary": "List account jobs", 9845 "description": "List all jobs for the given account.", 9846 "operationId": "jobs/by_account", 9847 "tags": [ 9848 "Jobs" 9849 ], 9850 "parameters": [ 9851 { 9852 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9853 }, 9854 { 9855 "$ref": "#/components/parameters/account_id" 9856 }, 9857 { 9858 "$ref": "#/components/parameters/page" 9859 }, 9860 { 9861 "$ref": "#/components/parameters/per_page" 9862 }, 9863 { 9864 "description": "filter by user owning job", 9865 "example": "abcd1234cdef1234abcd1234cdef1234", 9866 "name": "owned_by", 9867 "in": "query", 9868 "schema": { 9869 "type": "string" 9870 } 9871 }, 9872 { 9873 "description": "filter by user assigned to job", 9874 "example": "abcd1234cdef1234abcd1234cdef1234", 9875 "name": "assigned_to", 9876 "in": "query", 9877 "schema": { 9878 "type": "string" 9879 } 9880 }, 9881 { 9882 "description": "filter by state of job Valid states are <code>draft</code>, <code>in_progress</code>, <code>completed</code>", 9883 "example": "completed", 9884 "name": "state", 9885 "in": "query", 9886 "schema": { 9887 "type": "string" 9888 } 9889 } 9890 ], 9891 "responses": { 9892 "200": { 9893 "description": "OK", 9894 "content": { 9895 "application/json": { 9896 "schema": { 9897 "type": "array", 9898 "items": { 9899 "$ref": "#/components/schemas/job" 9900 } 9901 } 9902 } 9903 }, 9904 "headers": { 9905 "X-Rate-Limit-Limit": { 9906 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9907 }, 9908 "X-Rate-Limit-Remaining": { 9909 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9910 }, 9911 "X-Rate-Limit-Reset": { 9912 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9913 }, 9914 "Link": { 9915 "$ref": "#/components/headers/Link" 9916 }, 9917 "Pagination": { 9918 "$ref": "#/components/headers/Pagination" 9919 } 9920 } 9921 }, 9922 "400": { 9923 "$ref": "#/components/responses/400" 9924 }, 9925 "404": { 9926 "$ref": "#/components/responses/404" 9927 }, 9928 "429": { 9929 "$ref": "#/components/responses/429" 9930 } 9931 }, 9932 "x-code-samples": [ 9933 { 9934 "lang": "Curl", 9935 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/jobs?owned_by=abcd1234cdef1234abcd1234cdef1234&assigned_to=abcd1234cdef1234abcd1234cdef1234&state=completed\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 9936 }, 9937 { 9938 "lang": "CLI v2", 9939 "source": "phrase jobs by_account \\\n--account_id <account_id> \\\n--owned_by abcd1234cdef1234abcd1234cdef1234 \\\n--assigned_to abcd1234cdef1234abcd1234cdef1234 \\\n--state completed \\\n--access_token <token>" 9940 } 9941 ], 9942 "x-cli-version": "2.5" 9943 } 9944 }, 9945 "/projects/{project_id}/jobs/{id}": { 9946 "get": { 9947 "summary": "Get a single job", 9948 "description": "Get details on a single job for a given project.", 9949 "operationId": "job/show", 9950 "tags": [ 9951 "Jobs" 9952 ], 9953 "parameters": [ 9954 { 9955 "$ref": "#/components/parameters/X-PhraseApp-OTP" 9956 }, 9957 { 9958 "$ref": "#/components/parameters/project_id" 9959 }, 9960 { 9961 "$ref": "#/components/parameters/id" 9962 }, 9963 { 9964 "description": "specify the branch to use", 9965 "example": "my-feature-branch", 9966 "name": "branch", 9967 "in": "query", 9968 "schema": { 9969 "type": "string" 9970 } 9971 } 9972 ], 9973 "responses": { 9974 "200": { 9975 "description": "OK", 9976 "content": { 9977 "application/json": { 9978 "schema": { 9979 "$ref": "#/components/schemas/job_details" 9980 } 9981 } 9982 }, 9983 "headers": { 9984 "X-Rate-Limit-Limit": { 9985 "$ref": "#/components/headers/X-Rate-Limit-Limit" 9986 }, 9987 "X-Rate-Limit-Remaining": { 9988 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 9989 }, 9990 "X-Rate-Limit-Reset": { 9991 "$ref": "#/components/headers/X-Rate-Limit-Reset" 9992 } 9993 } 9994 }, 9995 "400": { 9996 "$ref": "#/components/responses/400" 9997 }, 9998 "404": { 9999 "$ref": "#/components/responses/404" 10000 }, 10001 "429": { 10002 "$ref": "#/components/responses/429" 10003 } 10004 }, 10005 "x-code-samples": [ 10006 { 10007 "lang": "Curl", 10008 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 10009 }, 10010 { 10011 "lang": "CLI v2", 10012 "source": "phrase jobs show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10013 } 10014 ], 10015 "x-cli-version": "2.5" 10016 }, 10017 "patch": { 10018 "summary": "Update a job", 10019 "description": "Update an existing job.", 10020 "operationId": "job/update", 10021 "tags": [ 10022 "Jobs" 10023 ], 10024 "parameters": [ 10025 { 10026 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10027 }, 10028 { 10029 "$ref": "#/components/parameters/project_id" 10030 }, 10031 { 10032 "$ref": "#/components/parameters/id" 10033 } 10034 ], 10035 "responses": { 10036 "200": { 10037 "description": "OK", 10038 "content": { 10039 "application/json": { 10040 "schema": { 10041 "$ref": "#/components/schemas/job_details" 10042 } 10043 } 10044 }, 10045 "headers": { 10046 "X-Rate-Limit-Limit": { 10047 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10048 }, 10049 "X-Rate-Limit-Remaining": { 10050 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10051 }, 10052 "X-Rate-Limit-Reset": { 10053 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10054 } 10055 } 10056 }, 10057 "400": { 10058 "$ref": "#/components/responses/400" 10059 }, 10060 "404": { 10061 "$ref": "#/components/responses/404" 10062 }, 10063 "429": { 10064 "$ref": "#/components/responses/429" 10065 } 10066 }, 10067 "x-code-samples": [ 10068 { 10069 "lang": "Curl", 10070 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"de\",\"briefing\":\"de-DE\",\"due_date\":\"2017-08-15\",\"ticket_url\":\"https://example.atlassian.net/browse/FOO\"}' \\\n -H 'Content-Type: application/json'" 10071 }, 10072 { 10073 "lang": "CLI v2", 10074 "source": "phrase jobs update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"de\", \"briefing\":\"de-DE\", \"due_date\":\"2017-08-15\", \"ticket_url\":\"https://example.atlassian.net/browse/FOO\"}' \\\n--access_token <token>" 10075 } 10076 ], 10077 "requestBody": { 10078 "required": true, 10079 "content": { 10080 "application/json": { 10081 "schema": { 10082 "type": "object", 10083 "title": "job/update/parameters", 10084 "properties": { 10085 "branch": { 10086 "description": "specify the branch to use", 10087 "type": "string", 10088 "example": "my-feature-branch" 10089 }, 10090 "name": { 10091 "description": "Job name", 10092 "type": "string", 10093 "example": "de" 10094 }, 10095 "briefing": { 10096 "description": "Briefing for the translators", 10097 "type": "string", 10098 "example": "de-DE" 10099 }, 10100 "due_date": { 10101 "description": "Date the job should be finished", 10102 "type": "string", 10103 "format": "date-time", 10104 "example": "2017-08-15", 10105 "nullable": true 10106 }, 10107 "ticket_url": { 10108 "description": "URL to a ticket for this job (e.g. Jira, Trello)", 10109 "type": "string", 10110 "example": "https://example.atlassian.net/browse/FOO" 10111 } 10112 } 10113 } 10114 } 10115 } 10116 }, 10117 "x-cli-version": "2.5" 10118 }, 10119 "delete": { 10120 "summary": "Delete a job", 10121 "description": "Delete an existing job.", 10122 "operationId": "job/delete", 10123 "tags": [ 10124 "Jobs" 10125 ], 10126 "parameters": [ 10127 { 10128 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10129 }, 10130 { 10131 "$ref": "#/components/parameters/project_id" 10132 }, 10133 { 10134 "$ref": "#/components/parameters/id" 10135 }, 10136 { 10137 "description": "specify the branch to use", 10138 "example": "my-feature-branch", 10139 "name": "branch", 10140 "in": "query", 10141 "schema": { 10142 "type": "string" 10143 } 10144 } 10145 ], 10146 "responses": { 10147 "204": { 10148 "$ref": "#/components/responses/204" 10149 }, 10150 "400": { 10151 "$ref": "#/components/responses/400" 10152 }, 10153 "404": { 10154 "$ref": "#/components/responses/404" 10155 }, 10156 "429": { 10157 "$ref": "#/components/responses/429" 10158 } 10159 }, 10160 "x-code-samples": [ 10161 { 10162 "lang": "Curl", 10163 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 10164 }, 10165 { 10166 "lang": "CLI v2", 10167 "source": "phrase jobs delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10168 } 10169 ], 10170 "x-cli-version": "2.5" 10171 } 10172 }, 10173 "/projects/{project_id}/jobs/{id}/start": { 10174 "post": { 10175 "summary": "Start a job", 10176 "description": "Starts an existing job in state draft.", 10177 "operationId": "job/start", 10178 "tags": [ 10179 "Jobs" 10180 ], 10181 "parameters": [ 10182 { 10183 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10184 }, 10185 { 10186 "$ref": "#/components/parameters/project_id" 10187 }, 10188 { 10189 "$ref": "#/components/parameters/id" 10190 } 10191 ], 10192 "responses": { 10193 "200": { 10194 "description": "OK", 10195 "content": { 10196 "application/json": { 10197 "schema": { 10198 "$ref": "#/components/schemas/job_details" 10199 } 10200 } 10201 }, 10202 "headers": { 10203 "X-Rate-Limit-Limit": { 10204 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10205 }, 10206 "X-Rate-Limit-Remaining": { 10207 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10208 }, 10209 "X-Rate-Limit-Reset": { 10210 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10211 } 10212 } 10213 }, 10214 "400": { 10215 "$ref": "#/components/responses/400" 10216 }, 10217 "404": { 10218 "$ref": "#/components/responses/404" 10219 }, 10220 "429": { 10221 "$ref": "#/components/responses/429" 10222 } 10223 }, 10224 "x-code-samples": [ 10225 { 10226 "lang": "Curl", 10227 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/start\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 10228 }, 10229 { 10230 "lang": "CLI v2", 10231 "source": "phrase jobs start \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 10232 } 10233 ], 10234 "requestBody": { 10235 "required": true, 10236 "content": { 10237 "application/json": { 10238 "schema": { 10239 "type": "object", 10240 "title": "job/start/parameters", 10241 "properties": { 10242 "branch": { 10243 "description": "specify the branch to use", 10244 "type": "string", 10245 "example": "my-feature-branch" 10246 } 10247 } 10248 } 10249 } 10250 } 10251 }, 10252 "x-cli-version": "2.5" 10253 } 10254 }, 10255 "/projects/{project_id}/jobs/{id}/complete": { 10256 "post": { 10257 "summary": "Complete a job", 10258 "description": "Mark a job as completed.", 10259 "operationId": "job/complete", 10260 "tags": [ 10261 "Jobs" 10262 ], 10263 "parameters": [ 10264 { 10265 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10266 }, 10267 { 10268 "$ref": "#/components/parameters/project_id" 10269 }, 10270 { 10271 "$ref": "#/components/parameters/id" 10272 } 10273 ], 10274 "responses": { 10275 "200": { 10276 "description": "OK", 10277 "content": { 10278 "application/json": { 10279 "schema": { 10280 "$ref": "#/components/schemas/job_details" 10281 } 10282 } 10283 }, 10284 "headers": { 10285 "X-Rate-Limit-Limit": { 10286 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10287 }, 10288 "X-Rate-Limit-Remaining": { 10289 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10290 }, 10291 "X-Rate-Limit-Reset": { 10292 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10293 } 10294 } 10295 }, 10296 "400": { 10297 "$ref": "#/components/responses/400" 10298 }, 10299 "404": { 10300 "$ref": "#/components/responses/404" 10301 }, 10302 "429": { 10303 "$ref": "#/components/responses/429" 10304 } 10305 }, 10306 "x-code-samples": [ 10307 { 10308 "lang": "Curl", 10309 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/complete\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 10310 }, 10311 { 10312 "lang": "CLI v2", 10313 "source": "phrase jobs complete \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 10314 } 10315 ], 10316 "requestBody": { 10317 "required": true, 10318 "content": { 10319 "application/json": { 10320 "schema": { 10321 "type": "object", 10322 "title": "job/complete/parameters", 10323 "properties": { 10324 "branch": { 10325 "description": "specify the branch to use", 10326 "type": "string", 10327 "example": "my-feature-branch" 10328 } 10329 } 10330 } 10331 } 10332 } 10333 }, 10334 "x-cli-version": "2.5" 10335 } 10336 }, 10337 "/projects/{project_id}/jobs/{id}/reopen": { 10338 "post": { 10339 "summary": "Reopen a job", 10340 "description": "Mark a job as uncompleted.", 10341 "operationId": "job/reopen", 10342 "tags": [ 10343 "Jobs" 10344 ], 10345 "parameters": [ 10346 { 10347 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10348 }, 10349 { 10350 "$ref": "#/components/parameters/project_id" 10351 }, 10352 { 10353 "$ref": "#/components/parameters/id" 10354 } 10355 ], 10356 "responses": { 10357 "200": { 10358 "description": "OK", 10359 "content": { 10360 "application/json": { 10361 "schema": { 10362 "$ref": "#/components/schemas/job_details" 10363 } 10364 } 10365 }, 10366 "headers": { 10367 "X-Rate-Limit-Limit": { 10368 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10369 }, 10370 "X-Rate-Limit-Remaining": { 10371 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10372 }, 10373 "X-Rate-Limit-Reset": { 10374 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10375 } 10376 } 10377 }, 10378 "400": { 10379 "$ref": "#/components/responses/400" 10380 }, 10381 "404": { 10382 "$ref": "#/components/responses/404" 10383 }, 10384 "429": { 10385 "$ref": "#/components/responses/429" 10386 } 10387 }, 10388 "x-code-samples": [ 10389 { 10390 "lang": "Curl", 10391 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/reopen\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 10392 }, 10393 { 10394 "lang": "CLI v2", 10395 "source": "phrase jobs reopen \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 10396 } 10397 ], 10398 "requestBody": { 10399 "required": true, 10400 "content": { 10401 "application/json": { 10402 "schema": { 10403 "type": "object", 10404 "title": "job/reopen/parameters", 10405 "properties": { 10406 "branch": { 10407 "description": "specify the branch to use", 10408 "type": "string", 10409 "example": "my-feature-branch" 10410 } 10411 } 10412 } 10413 } 10414 } 10415 }, 10416 "x-cli-version": "2.5" 10417 } 10418 }, 10419 "/projects/{project_id}/jobs/{id}/lock": { 10420 "post": { 10421 "summary": "Lock a job", 10422 "description": "If you are the job owner, you may lock a job using this API request.", 10423 "operationId": "job/lock", 10424 "tags": [ 10425 "Jobs" 10426 ], 10427 "parameters": [ 10428 { 10429 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10430 }, 10431 { 10432 "$ref": "#/components/parameters/project_id" 10433 }, 10434 { 10435 "$ref": "#/components/parameters/id" 10436 }, 10437 { 10438 "description": "specify the branch to use", 10439 "example": "my-feature-branch", 10440 "name": "branch", 10441 "in": "query", 10442 "schema": { 10443 "type": "string" 10444 } 10445 } 10446 ], 10447 "responses": { 10448 "204": { 10449 "$ref": "#/components/responses/204" 10450 }, 10451 "400": { 10452 "$ref": "#/components/responses/400" 10453 }, 10454 "404": { 10455 "$ref": "#/components/responses/404" 10456 }, 10457 "429": { 10458 "$ref": "#/components/responses/429" 10459 } 10460 }, 10461 "x-code-samples": [ 10462 { 10463 "lang": "Curl", 10464 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/lock\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"' \\\n -H 'Content-Type: application/json'" 10465 }, 10466 { 10467 "lang": "CLI v2", 10468 "source": "phrase jobs lock \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10469 } 10470 ], 10471 "x-cli-version": "2.5" 10472 } 10473 }, 10474 "/projects/{project_id}/jobs/{id}/unlock": { 10475 "post": { 10476 "summary": "Unlock a job", 10477 "description": "If you are the job owner, you may unlock a locked job using this API request.", 10478 "operationId": "job/unlock", 10479 "tags": [ 10480 "Jobs" 10481 ], 10482 "parameters": [ 10483 { 10484 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10485 }, 10486 { 10487 "$ref": "#/components/parameters/project_id" 10488 }, 10489 { 10490 "$ref": "#/components/parameters/id" 10491 }, 10492 { 10493 "description": "specify the branch to use", 10494 "example": "my-feature-branch", 10495 "name": "branch", 10496 "in": "query", 10497 "schema": { 10498 "type": "string" 10499 } 10500 } 10501 ], 10502 "responses": { 10503 "204": { 10504 "$ref": "#/components/responses/204" 10505 }, 10506 "400": { 10507 "$ref": "#/components/responses/400" 10508 }, 10509 "404": { 10510 "$ref": "#/components/responses/404" 10511 }, 10512 "429": { 10513 "$ref": "#/components/responses/429" 10514 } 10515 }, 10516 "x-code-samples": [ 10517 { 10518 "lang": "Curl", 10519 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/unlock\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"' \\\n -H 'Content-Type: application/json'" 10520 }, 10521 { 10522 "lang": "CLI v2", 10523 "source": "phrase jobs unlock \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10524 } 10525 ], 10526 "x-cli-version": "2.5" 10527 } 10528 }, 10529 "/projects/{project_id}/jobs/{id}/keys": { 10530 "post": { 10531 "summary": "Add keys to job", 10532 "description": "Add multiple keys to a existing job.", 10533 "operationId": "job/keys/create", 10534 "tags": [ 10535 "Jobs" 10536 ], 10537 "parameters": [ 10538 { 10539 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10540 }, 10541 { 10542 "$ref": "#/components/parameters/project_id" 10543 }, 10544 { 10545 "$ref": "#/components/parameters/id" 10546 } 10547 ], 10548 "responses": { 10549 "200": { 10550 "description": "OK", 10551 "content": { 10552 "application/json": { 10553 "schema": { 10554 "$ref": "#/components/schemas/job_details" 10555 } 10556 } 10557 }, 10558 "headers": { 10559 "X-Rate-Limit-Limit": { 10560 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10561 }, 10562 "X-Rate-Limit-Remaining": { 10563 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10564 }, 10565 "X-Rate-Limit-Reset": { 10566 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10567 } 10568 } 10569 }, 10570 "400": { 10571 "$ref": "#/components/responses/400" 10572 }, 10573 "404": { 10574 "$ref": "#/components/responses/404" 10575 }, 10576 "429": { 10577 "$ref": "#/components/responses/429" 10578 } 10579 }, 10580 "x-code-samples": [ 10581 { 10582 "lang": "Curl", 10583 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"translation_key_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 10584 }, 10585 { 10586 "lang": "CLI v2", 10587 "source": "phrase jobs keys_create \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"translation_key_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 10588 } 10589 ], 10590 "requestBody": { 10591 "required": true, 10592 "content": { 10593 "application/json": { 10594 "schema": { 10595 "type": "object", 10596 "title": "job/keys/create/parameters", 10597 "properties": { 10598 "branch": { 10599 "description": "specify the branch to use", 10600 "type": "string", 10601 "example": "my-feature-branch" 10602 }, 10603 "translation_key_ids": { 10604 "description": "ids of keys that should added to the job", 10605 "type": "array", 10606 "items": { 10607 "type": "string" 10608 }, 10609 "example": [ 10610 "abcd1234cdef1234abcd1234cdef1234" 10611 ] 10612 } 10613 } 10614 } 10615 } 10616 } 10617 }, 10618 "x-cli-version": "2.5" 10619 }, 10620 "delete": { 10621 "summary": "Remove keys from job", 10622 "description": "Remove multiple keys from existing job.", 10623 "operationId": "job/keys/delete", 10624 "tags": [ 10625 "Jobs" 10626 ], 10627 "parameters": [ 10628 { 10629 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10630 }, 10631 { 10632 "$ref": "#/components/parameters/project_id" 10633 }, 10634 { 10635 "$ref": "#/components/parameters/id" 10636 }, 10637 { 10638 "description": "specify the branch to use", 10639 "example": "my-feature-branch", 10640 "name": "branch", 10641 "in": "query", 10642 "schema": { 10643 "type": "string" 10644 } 10645 }, 10646 { 10647 "description": "ids of keys that should added to the job", 10648 "example": [ 10649 "abcd1234cdef1234abcd1234cdef1234" 10650 ], 10651 "name": "translation_key_ids", 10652 "in": "query", 10653 "schema": { 10654 "type": "array", 10655 "items": { 10656 "type": "string" 10657 } 10658 } 10659 } 10660 ], 10661 "responses": { 10662 "204": { 10663 "$ref": "#/components/responses/204" 10664 }, 10665 "400": { 10666 "$ref": "#/components/responses/400" 10667 }, 10668 "404": { 10669 "$ref": "#/components/responses/404" 10670 }, 10671 "429": { 10672 "$ref": "#/components/responses/429" 10673 } 10674 }, 10675 "x-code-samples": [ 10676 { 10677 "lang": "Curl", 10678 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:id/keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\",\"translation_key_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 10679 }, 10680 { 10681 "lang": "CLI v2", 10682 "source": "phrase jobs keys_delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--translation_key_ids \"abcd1234cdef1234abcd1234cdef1234\" \\\n--access_token <token>" 10683 } 10684 ], 10685 "x-cli-version": "2.5" 10686 } 10687 }, 10688 "/projects/{project_id}/job_templates": { 10689 "get": { 10690 "summary": "List job templates", 10691 "description": "List all job templates for the given project.", 10692 "operationId": "job_templates/list", 10693 "tags": [ 10694 "Job Templates" 10695 ], 10696 "parameters": [ 10697 { 10698 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10699 }, 10700 { 10701 "$ref": "#/components/parameters/project_id" 10702 }, 10703 { 10704 "$ref": "#/components/parameters/page" 10705 }, 10706 { 10707 "$ref": "#/components/parameters/per_page" 10708 }, 10709 { 10710 "description": "specify the branch to use", 10711 "example": "my-feature-branch", 10712 "name": "branch", 10713 "in": "query", 10714 "schema": { 10715 "type": "string" 10716 } 10717 } 10718 ], 10719 "responses": { 10720 "200": { 10721 "description": "OK", 10722 "content": { 10723 "application/json": { 10724 "schema": { 10725 "type": "array", 10726 "items": { 10727 "$ref": "#/components/schemas/job_template" 10728 } 10729 } 10730 } 10731 }, 10732 "headers": { 10733 "X-Rate-Limit-Limit": { 10734 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10735 }, 10736 "X-Rate-Limit-Remaining": { 10737 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10738 }, 10739 "X-Rate-Limit-Reset": { 10740 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10741 }, 10742 "Link": { 10743 "$ref": "#/components/headers/Link" 10744 }, 10745 "Pagination": { 10746 "$ref": "#/components/headers/Pagination" 10747 } 10748 } 10749 }, 10750 "400": { 10751 "$ref": "#/components/responses/400" 10752 }, 10753 "404": { 10754 "$ref": "#/components/responses/404" 10755 }, 10756 "429": { 10757 "$ref": "#/components/responses/429" 10758 } 10759 }, 10760 "x-code-samples": [ 10761 { 10762 "lang": "Curl", 10763 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 10764 }, 10765 { 10766 "lang": "CLI v2", 10767 "source": "phrase job_templates list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10768 } 10769 ], 10770 "x-cli-version": "2.5" 10771 }, 10772 "post": { 10773 "summary": "Create a job template", 10774 "description": "Create a new job template.", 10775 "operationId": "job_template/create", 10776 "tags": [ 10777 "Job Templates" 10778 ], 10779 "parameters": [ 10780 { 10781 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10782 }, 10783 { 10784 "$ref": "#/components/parameters/project_id" 10785 } 10786 ], 10787 "responses": { 10788 "201": { 10789 "description": "Created", 10790 "content": { 10791 "application/json": { 10792 "schema": { 10793 "$ref": "#/components/schemas/job_template_details" 10794 } 10795 } 10796 }, 10797 "headers": { 10798 "X-Rate-Limit-Limit": { 10799 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10800 }, 10801 "X-Rate-Limit-Remaining": { 10802 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10803 }, 10804 "X-Rate-Limit-Reset": { 10805 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10806 } 10807 } 10808 }, 10809 "400": { 10810 "$ref": "#/components/responses/400" 10811 }, 10812 "404": { 10813 "$ref": "#/components/responses/404" 10814 }, 10815 "429": { 10816 "$ref": "#/components/responses/429" 10817 } 10818 }, 10819 "x-code-samples": [ 10820 { 10821 "lang": "Curl", 10822 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"template\",\"briefing\":\"text\"}' \\\n -H 'Content-Type: application/json'" 10823 }, 10824 { 10825 "lang": "CLI v2", 10826 "source": "phrase job_templates create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"template\", \"briefing\":\"text\"}' \\\n--access_token <token>" 10827 } 10828 ], 10829 "requestBody": { 10830 "required": true, 10831 "content": { 10832 "application/json": { 10833 "schema": { 10834 "type": "object", 10835 "title": "job_template/create/parameters", 10836 "properties": { 10837 "branch": { 10838 "description": "specify the branch to use", 10839 "type": "string", 10840 "example": "my-feature-branch" 10841 }, 10842 "name": { 10843 "description": "Job template name", 10844 "type": "string", 10845 "example": "template" 10846 }, 10847 "briefing": { 10848 "description": "Briefing for the translators", 10849 "type": "string", 10850 "example": "text" 10851 } 10852 }, 10853 "required": [ 10854 "name" 10855 ] 10856 } 10857 } 10858 } 10859 }, 10860 "x-cli-version": "2.5" 10861 } 10862 }, 10863 "/projects/{project_id}/job_templates/{id}": { 10864 "get": { 10865 "summary": "Get a single job template", 10866 "description": "Get details on a single job template for a given project.", 10867 "operationId": "job_templates/show", 10868 "tags": [ 10869 "Job Templates" 10870 ], 10871 "parameters": [ 10872 { 10873 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10874 }, 10875 { 10876 "$ref": "#/components/parameters/project_id" 10877 }, 10878 { 10879 "$ref": "#/components/parameters/id" 10880 }, 10881 { 10882 "description": "specify the branch to use", 10883 "example": "my-feature-branch", 10884 "name": "branch", 10885 "in": "query", 10886 "schema": { 10887 "type": "string" 10888 } 10889 } 10890 ], 10891 "responses": { 10892 "200": { 10893 "description": "OK", 10894 "content": { 10895 "application/json": { 10896 "schema": { 10897 "$ref": "#/components/schemas/job_template_details" 10898 } 10899 } 10900 }, 10901 "headers": { 10902 "X-Rate-Limit-Limit": { 10903 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10904 }, 10905 "X-Rate-Limit-Remaining": { 10906 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10907 }, 10908 "X-Rate-Limit-Reset": { 10909 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10910 } 10911 } 10912 }, 10913 "400": { 10914 "$ref": "#/components/responses/400" 10915 }, 10916 "404": { 10917 "$ref": "#/components/responses/404" 10918 }, 10919 "429": { 10920 "$ref": "#/components/responses/429" 10921 } 10922 }, 10923 "x-code-samples": [ 10924 { 10925 "lang": "Curl", 10926 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 10927 }, 10928 { 10929 "lang": "CLI v2", 10930 "source": "phrase job_templates show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 10931 } 10932 ], 10933 "x-cli-version": "2.5" 10934 }, 10935 "patch": { 10936 "summary": "Update a job template", 10937 "description": "Update an existing job template.", 10938 "operationId": "job_template/update", 10939 "tags": [ 10940 "Job Templates" 10941 ], 10942 "parameters": [ 10943 { 10944 "$ref": "#/components/parameters/X-PhraseApp-OTP" 10945 }, 10946 { 10947 "$ref": "#/components/parameters/project_id" 10948 }, 10949 { 10950 "$ref": "#/components/parameters/id" 10951 } 10952 ], 10953 "responses": { 10954 "200": { 10955 "description": "OK", 10956 "content": { 10957 "application/json": { 10958 "schema": { 10959 "$ref": "#/components/schemas/job_template_details" 10960 } 10961 } 10962 }, 10963 "headers": { 10964 "X-Rate-Limit-Limit": { 10965 "$ref": "#/components/headers/X-Rate-Limit-Limit" 10966 }, 10967 "X-Rate-Limit-Remaining": { 10968 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 10969 }, 10970 "X-Rate-Limit-Reset": { 10971 "$ref": "#/components/headers/X-Rate-Limit-Reset" 10972 } 10973 } 10974 }, 10975 "400": { 10976 "$ref": "#/components/responses/400" 10977 }, 10978 "404": { 10979 "$ref": "#/components/responses/404" 10980 }, 10981 "429": { 10982 "$ref": "#/components/responses/429" 10983 } 10984 }, 10985 "x-code-samples": [ 10986 { 10987 "lang": "Curl", 10988 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"template\",\"briefing\":\"text\"}' \\\n -H 'Content-Type: application/json'" 10989 }, 10990 { 10991 "lang": "CLI v2", 10992 "source": "phrase job_templates update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"template\", \"briefing\":\"text\"}' \\\n--access_token <token>" 10993 } 10994 ], 10995 "requestBody": { 10996 "required": true, 10997 "content": { 10998 "application/json": { 10999 "schema": { 11000 "type": "object", 11001 "title": "job_template/update/parameters", 11002 "properties": { 11003 "branch": { 11004 "description": "specify the branch to use", 11005 "type": "string", 11006 "example": "my-feature-branch" 11007 }, 11008 "name": { 11009 "description": "Job template name", 11010 "type": "string", 11011 "example": "template" 11012 }, 11013 "briefing": { 11014 "description": "Briefing for the translators", 11015 "type": "string", 11016 "example": "text" 11017 } 11018 }, 11019 "required": [ 11020 "name" 11021 ] 11022 } 11023 } 11024 } 11025 }, 11026 "x-cli-version": "2.5" 11027 }, 11028 "delete": { 11029 "summary": "Delete a job template", 11030 "description": "Delete an existing job template.", 11031 "operationId": "job_template/delete", 11032 "tags": [ 11033 "Job Templates" 11034 ], 11035 "parameters": [ 11036 { 11037 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11038 }, 11039 { 11040 "$ref": "#/components/parameters/project_id" 11041 }, 11042 { 11043 "$ref": "#/components/parameters/id" 11044 }, 11045 { 11046 "description": "specify the branch to use", 11047 "example": "my-feature-branch", 11048 "name": "branch", 11049 "in": "query", 11050 "schema": { 11051 "type": "string" 11052 } 11053 } 11054 ], 11055 "responses": { 11056 "204": { 11057 "$ref": "#/components/responses/204" 11058 }, 11059 "400": { 11060 "$ref": "#/components/responses/400" 11061 }, 11062 "404": { 11063 "$ref": "#/components/responses/404" 11064 }, 11065 "429": { 11066 "$ref": "#/components/responses/429" 11067 } 11068 }, 11069 "x-code-samples": [ 11070 { 11071 "lang": "Curl", 11072 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 11073 }, 11074 { 11075 "lang": "CLI v2", 11076 "source": "phrase job_templates delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 11077 } 11078 ], 11079 "x-cli-version": "2.5" 11080 } 11081 }, 11082 "/accounts/{account_id}/glossaries": { 11083 "get": { 11084 "summary": "List term bases", 11085 "description": "List all term bases (previously: glossaries) the current user has access to.", 11086 "operationId": "glossaries/list", 11087 "tags": [ 11088 "Glossaries" 11089 ], 11090 "parameters": [ 11091 { 11092 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11093 }, 11094 { 11095 "$ref": "#/components/parameters/account_id" 11096 }, 11097 { 11098 "$ref": "#/components/parameters/page" 11099 }, 11100 { 11101 "$ref": "#/components/parameters/per_page" 11102 } 11103 ], 11104 "responses": { 11105 "200": { 11106 "description": "OK", 11107 "content": { 11108 "application/json": { 11109 "schema": { 11110 "type": "array", 11111 "items": { 11112 "$ref": "#/components/schemas/glossary" 11113 } 11114 } 11115 } 11116 }, 11117 "headers": { 11118 "X-Rate-Limit-Limit": { 11119 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11120 }, 11121 "X-Rate-Limit-Remaining": { 11122 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11123 }, 11124 "X-Rate-Limit-Reset": { 11125 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11126 }, 11127 "Link": { 11128 "$ref": "#/components/headers/Link" 11129 }, 11130 "Pagination": { 11131 "$ref": "#/components/headers/Pagination" 11132 } 11133 } 11134 }, 11135 "400": { 11136 "$ref": "#/components/responses/400" 11137 }, 11138 "404": { 11139 "$ref": "#/components/responses/404" 11140 }, 11141 "429": { 11142 "$ref": "#/components/responses/429" 11143 } 11144 }, 11145 "x-code-samples": [ 11146 { 11147 "lang": "Curl", 11148 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 11149 }, 11150 { 11151 "lang": "CLI v2", 11152 "source": "phrase glossaries list \\\n--account_id <account_id> \\\n--access_token <token>" 11153 } 11154 ], 11155 "x-cli-version": "2.5" 11156 }, 11157 "post": { 11158 "summary": "Create a term base", 11159 "description": "Create a new term base (previously: glossary).", 11160 "operationId": "glossary/create", 11161 "tags": [ 11162 "Glossaries" 11163 ], 11164 "parameters": [ 11165 { 11166 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11167 }, 11168 { 11169 "$ref": "#/components/parameters/account_id" 11170 } 11171 ], 11172 "responses": { 11173 "201": { 11174 "description": "Created", 11175 "content": { 11176 "application/json": { 11177 "schema": { 11178 "$ref": "#/components/schemas/glossary" 11179 } 11180 } 11181 }, 11182 "headers": { 11183 "X-Rate-Limit-Limit": { 11184 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11185 }, 11186 "X-Rate-Limit-Remaining": { 11187 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11188 }, 11189 "X-Rate-Limit-Reset": { 11190 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11191 } 11192 } 11193 }, 11194 "400": { 11195 "$ref": "#/components/responses/400" 11196 }, 11197 "404": { 11198 "$ref": "#/components/responses/404" 11199 }, 11200 "429": { 11201 "$ref": "#/components/responses/429" 11202 } 11203 }, 11204 "x-code-samples": [ 11205 { 11206 "lang": "Curl", 11207 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"My term base\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"]}' \\\n -H 'Content-Type: application/json'" 11208 }, 11209 { 11210 "lang": "CLI v2", 11211 "source": "phrase glossaries create \\\n--account_id <account_id> \\\n--data '{\"name\":\"My term base\", \"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"space_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\"}' \\\n--access_token <token>" 11212 } 11213 ], 11214 "requestBody": { 11215 "required": true, 11216 "content": { 11217 "application/json": { 11218 "schema": { 11219 "type": "object", 11220 "title": "glossary/create/parameters", 11221 "required": [ 11222 "name" 11223 ], 11224 "properties": { 11225 "name": { 11226 "description": "Name of the glossary", 11227 "type": "string", 11228 "example": "My glossary" 11229 }, 11230 "project_ids": { 11231 "description": "List of project ids the glossary should be assigned to.", 11232 "type": "string", 11233 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 11234 }, 11235 "space_ids": { 11236 "description": "List of space ids the glossary should be assigned to.", 11237 "type": "array", 11238 "items": { 11239 "type": "string" 11240 }, 11241 "example": [ 11242 "abcd1234abcd1234abcd1234", 11243 "abcd1234abcd1234abcd1235" 11244 ] 11245 } 11246 } 11247 } 11248 } 11249 } 11250 }, 11251 "x-cli-version": "2.5" 11252 } 11253 }, 11254 "/accounts/{account_id}/glossaries/{id}": { 11255 "get": { 11256 "summary": "Get a single term base", 11257 "description": "Get details on a single term base (previously: glossary).", 11258 "operationId": "glossary/show", 11259 "tags": [ 11260 "Glossaries" 11261 ], 11262 "parameters": [ 11263 { 11264 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11265 }, 11266 { 11267 "$ref": "#/components/parameters/account_id" 11268 }, 11269 { 11270 "$ref": "#/components/parameters/id" 11271 } 11272 ], 11273 "responses": { 11274 "200": { 11275 "description": "OK", 11276 "content": { 11277 "application/json": { 11278 "schema": { 11279 "$ref": "#/components/schemas/glossary" 11280 } 11281 } 11282 }, 11283 "headers": { 11284 "X-Rate-Limit-Limit": { 11285 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11286 }, 11287 "X-Rate-Limit-Remaining": { 11288 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11289 }, 11290 "X-Rate-Limit-Reset": { 11291 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11292 } 11293 } 11294 }, 11295 "400": { 11296 "$ref": "#/components/responses/400" 11297 }, 11298 "404": { 11299 "$ref": "#/components/responses/404" 11300 }, 11301 "429": { 11302 "$ref": "#/components/responses/429" 11303 } 11304 }, 11305 "x-code-samples": [ 11306 { 11307 "lang": "Curl", 11308 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 11309 }, 11310 { 11311 "lang": "CLI v2", 11312 "source": "phrase glossaries show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 11313 } 11314 ], 11315 "x-cli-version": "2.5" 11316 }, 11317 "patch": { 11318 "summary": "Update a term base", 11319 "description": "Update an existing term base (previously: glossary).", 11320 "operationId": "glossary/update", 11321 "tags": [ 11322 "Glossaries" 11323 ], 11324 "parameters": [ 11325 { 11326 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11327 }, 11328 { 11329 "$ref": "#/components/parameters/account_id" 11330 }, 11331 { 11332 "$ref": "#/components/parameters/id" 11333 } 11334 ], 11335 "responses": { 11336 "200": { 11337 "description": "OK", 11338 "content": { 11339 "application/json": { 11340 "schema": { 11341 "$ref": "#/components/schemas/glossary" 11342 } 11343 } 11344 }, 11345 "headers": { 11346 "X-Rate-Limit-Limit": { 11347 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11348 }, 11349 "X-Rate-Limit-Remaining": { 11350 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11351 }, 11352 "X-Rate-Limit-Reset": { 11353 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11354 } 11355 } 11356 }, 11357 "400": { 11358 "$ref": "#/components/responses/400" 11359 }, 11360 "404": { 11361 "$ref": "#/components/responses/404" 11362 }, 11363 "429": { 11364 "$ref": "#/components/responses/429" 11365 } 11366 }, 11367 "x-code-samples": [ 11368 { 11369 "lang": "Curl", 11370 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"My glossary\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"]}' \\\n -H 'Content-Type: application/json'" 11371 }, 11372 { 11373 "lang": "CLI v2", 11374 "source": "phrase glossaries update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"name\": \"My glossary\", \"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"space_ids\": \"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\"}' \\\n--access_token <token>" 11375 } 11376 ], 11377 "requestBody": { 11378 "required": true, 11379 "content": { 11380 "application/json": { 11381 "schema": { 11382 "type": "object", 11383 "title": "glossary/update/parameters", 11384 "properties": { 11385 "name": { 11386 "description": "Name of the glossary", 11387 "type": "string", 11388 "example": "My glossary" 11389 }, 11390 "project_ids": { 11391 "description": "List of project ids the glossary should be assigned to.", 11392 "type": "string", 11393 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 11394 }, 11395 "space_ids": { 11396 "description": "List of space ids the glossary should be assigned to.", 11397 "type": "array", 11398 "items": { 11399 "type": "string" 11400 }, 11401 "example": [ 11402 "abcd1234abcd1234abcd1234", 11403 "abcd1234abcd1234abcd1235" 11404 ] 11405 } 11406 } 11407 } 11408 } 11409 } 11410 }, 11411 "x-cli-version": "2.5" 11412 }, 11413 "delete": { 11414 "summary": "Delete a term base", 11415 "description": "Delete an existing term base (previously: glossary).", 11416 "operationId": "glossary/delete", 11417 "tags": [ 11418 "Glossaries" 11419 ], 11420 "parameters": [ 11421 { 11422 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11423 }, 11424 { 11425 "$ref": "#/components/parameters/account_id" 11426 }, 11427 { 11428 "$ref": "#/components/parameters/id" 11429 } 11430 ], 11431 "responses": { 11432 "204": { 11433 "$ref": "#/components/responses/204" 11434 }, 11435 "400": { 11436 "$ref": "#/components/responses/400" 11437 }, 11438 "404": { 11439 "$ref": "#/components/responses/404" 11440 }, 11441 "429": { 11442 "$ref": "#/components/responses/429" 11443 } 11444 }, 11445 "x-code-samples": [ 11446 { 11447 "lang": "Curl", 11448 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 11449 }, 11450 { 11451 "lang": "CLI v2", 11452 "source": "phrase glossaries delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 11453 } 11454 ], 11455 "x-cli-version": "2.5" 11456 } 11457 }, 11458 "/authorizations": { 11459 "get": { 11460 "summary": "List authorizations", 11461 "description": "List all your authorizations.", 11462 "operationId": "authorizations/list", 11463 "tags": [ 11464 "Authorizations" 11465 ], 11466 "parameters": [ 11467 { 11468 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11469 }, 11470 { 11471 "$ref": "#/components/parameters/page" 11472 }, 11473 { 11474 "$ref": "#/components/parameters/per_page" 11475 } 11476 ], 11477 "responses": { 11478 "200": { 11479 "description": "OK", 11480 "content": { 11481 "application/json": { 11482 "schema": { 11483 "type": "array", 11484 "items": { 11485 "$ref": "#/components/schemas/authorization" 11486 } 11487 } 11488 } 11489 }, 11490 "headers": { 11491 "X-Rate-Limit-Limit": { 11492 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11493 }, 11494 "X-Rate-Limit-Remaining": { 11495 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11496 }, 11497 "X-Rate-Limit-Reset": { 11498 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11499 }, 11500 "Link": { 11501 "$ref": "#/components/headers/Link" 11502 }, 11503 "Pagination": { 11504 "$ref": "#/components/headers/Pagination" 11505 } 11506 } 11507 }, 11508 "400": { 11509 "$ref": "#/components/responses/400" 11510 }, 11511 "404": { 11512 "$ref": "#/components/responses/404" 11513 }, 11514 "429": { 11515 "$ref": "#/components/responses/429" 11516 } 11517 }, 11518 "x-code-samples": [ 11519 { 11520 "lang": "Curl", 11521 "source": "curl \"https://api.phrase.com/v2/authorizations\" \\\n -u USERNAME" 11522 }, 11523 { 11524 "lang": "CLI v2", 11525 "source": "phrase authorizations list" 11526 } 11527 ], 11528 "x-cli-version": "2.5" 11529 }, 11530 "post": { 11531 "summary": "Create an authorization", 11532 "description": "Create a new authorization.", 11533 "operationId": "authorization/create", 11534 "tags": [ 11535 "Authorizations" 11536 ], 11537 "parameters": [ 11538 { 11539 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11540 } 11541 ], 11542 "responses": { 11543 "201": { 11544 "description": "Created", 11545 "content": { 11546 "application/json": { 11547 "schema": { 11548 "$ref": "#/components/schemas/authorization_with_token" 11549 } 11550 } 11551 }, 11552 "headers": { 11553 "X-Rate-Limit-Limit": { 11554 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11555 }, 11556 "X-Rate-Limit-Remaining": { 11557 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11558 }, 11559 "X-Rate-Limit-Reset": { 11560 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11561 } 11562 } 11563 }, 11564 "400": { 11565 "$ref": "#/components/responses/400" 11566 }, 11567 "404": { 11568 "$ref": "#/components/responses/404" 11569 }, 11570 "429": { 11571 "$ref": "#/components/responses/429" 11572 } 11573 }, 11574 "x-code-samples": [ 11575 { 11576 "lang": "Curl", 11577 "source": "curl \"https://api.phrase.com/v2/authorizations\" \\\n -u USERNAME \\\n -X POST \\\n -d '{\"note\":\"My Deploy Script\",\"scopes\":[\"read\",\"write\"],\"expires_at\":\"2015-03-30T09:52:53Z\"}' \\\n -H 'Content-Type: application/json'" 11578 }, 11579 { 11580 "lang": "CLI v2", 11581 "source": "phrase authorizations create \\\n--data '{\"note\": \"My Deploy Script\", \"scopes\": \"read,write\", \"expires_at\": \"2015-03-30T09:52:53Z\"}'" 11582 } 11583 ], 11584 "requestBody": { 11585 "required": true, 11586 "content": { 11587 "application/json": { 11588 "schema": { 11589 "type": "object", 11590 "title": "authorization/create/parameters", 11591 "required": [ 11592 "note" 11593 ], 11594 "properties": { 11595 "note": { 11596 "description": "A note to help you remember what the access is used for.", 11597 "type": "string", 11598 "example": "My Deploy Script" 11599 }, 11600 "scopes": { 11601 "description": "A list of scopes that the access can be used for.", 11602 "type": "array", 11603 "items": { 11604 "type": "string" 11605 }, 11606 "example": [ 11607 "read", 11608 "write" 11609 ] 11610 }, 11611 "expires_at": { 11612 "description": "Expiration date for the authorization token. Null means no expiration date (default).", 11613 "type": "string", 11614 "format": "date-time", 11615 "example": "2015-03-30T09:52:53Z" 11616 } 11617 } 11618 } 11619 } 11620 } 11621 }, 11622 "x-cli-version": "2.5" 11623 } 11624 }, 11625 "/authorizations/{id}": { 11626 "get": { 11627 "summary": "Get a single authorization", 11628 "description": "Get details on a single authorization.", 11629 "operationId": "authorization/show", 11630 "tags": [ 11631 "Authorizations" 11632 ], 11633 "parameters": [ 11634 { 11635 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11636 }, 11637 { 11638 "$ref": "#/components/parameters/id" 11639 } 11640 ], 11641 "responses": { 11642 "200": { 11643 "description": "OK", 11644 "content": { 11645 "application/json": { 11646 "schema": { 11647 "$ref": "#/components/schemas/authorization" 11648 } 11649 } 11650 }, 11651 "headers": { 11652 "X-Rate-Limit-Limit": { 11653 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11654 }, 11655 "X-Rate-Limit-Remaining": { 11656 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11657 }, 11658 "X-Rate-Limit-Reset": { 11659 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11660 } 11661 } 11662 }, 11663 "400": { 11664 "$ref": "#/components/responses/400" 11665 }, 11666 "404": { 11667 "$ref": "#/components/responses/404" 11668 }, 11669 "429": { 11670 "$ref": "#/components/responses/429" 11671 } 11672 }, 11673 "x-code-samples": [ 11674 { 11675 "lang": "Curl", 11676 "source": "curl \"https://api.phrase.com/v2/authorizations/:id\" \\\n -u USERNAME" 11677 }, 11678 { 11679 "lang": "CLI v2", 11680 "source": "phrase authorizations show \\\n--id <id>" 11681 } 11682 ], 11683 "x-cli-version": "2.5" 11684 }, 11685 "patch": { 11686 "summary": "Update an authorization", 11687 "description": "Update an existing authorization.", 11688 "operationId": "authorization/update", 11689 "tags": [ 11690 "Authorizations" 11691 ], 11692 "parameters": [ 11693 { 11694 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11695 }, 11696 { 11697 "$ref": "#/components/parameters/id" 11698 } 11699 ], 11700 "responses": { 11701 "200": { 11702 "description": "OK", 11703 "content": { 11704 "application/json": { 11705 "schema": { 11706 "$ref": "#/components/schemas/authorization" 11707 } 11708 } 11709 }, 11710 "headers": { 11711 "X-Rate-Limit-Limit": { 11712 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11713 }, 11714 "X-Rate-Limit-Remaining": { 11715 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11716 }, 11717 "X-Rate-Limit-Reset": { 11718 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11719 } 11720 } 11721 }, 11722 "400": { 11723 "$ref": "#/components/responses/400" 11724 }, 11725 "404": { 11726 "$ref": "#/components/responses/404" 11727 }, 11728 "429": { 11729 "$ref": "#/components/responses/429" 11730 } 11731 }, 11732 "x-code-samples": [ 11733 { 11734 "lang": "Curl", 11735 "source": "curl \"https://api.phrase.com/v2/authorizations/:id\" \\\n -u USERNAME \\\n -X PATCH \\\n -d '{\"note\":\"My Deploy Script\",\"scopes\":[\"read\",\"write\"],\"expires_at\":\"2015-03-30T09:52:53Z\"}' \\\n -H 'Content-Type: application/json'" 11736 }, 11737 { 11738 "lang": "CLI v2", 11739 "source": "phrase authorizations update \\\n--id <id> \\\n--data '{\"note\": \"My Deploy Script\", \"scopes\": \"read,write\", \"expires_at\": \"2015-03-30T09:52:53Z\"}'" 11740 } 11741 ], 11742 "requestBody": { 11743 "required": true, 11744 "content": { 11745 "application/json": { 11746 "schema": { 11747 "type": "object", 11748 "title": "authorization/update/parameters", 11749 "properties": { 11750 "note": { 11751 "description": "A note to help you remember what the access is used for.", 11752 "type": "string", 11753 "example": "My Deploy Script" 11754 }, 11755 "scopes": { 11756 "description": "A list of scopes that the access can be used for.", 11757 "type": "array", 11758 "items": { 11759 "type": "string" 11760 }, 11761 "example": [ 11762 "read", 11763 "write" 11764 ] 11765 }, 11766 "expires_at": { 11767 "description": "Expiration date for the authorization token. Null means no expiration date (default).", 11768 "type": "string", 11769 "format": "date-time", 11770 "example": "2015-03-30T09:52:53Z" 11771 } 11772 } 11773 } 11774 } 11775 } 11776 }, 11777 "x-cli-version": "2.5" 11778 }, 11779 "delete": { 11780 "summary": "Delete an authorization", 11781 "description": "Delete an existing authorization. API calls using that token will stop working.", 11782 "operationId": "authorization/delete", 11783 "tags": [ 11784 "Authorizations" 11785 ], 11786 "parameters": [ 11787 { 11788 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11789 }, 11790 { 11791 "$ref": "#/components/parameters/id" 11792 } 11793 ], 11794 "responses": { 11795 "204": { 11796 "$ref": "#/components/responses/204" 11797 }, 11798 "400": { 11799 "$ref": "#/components/responses/400" 11800 }, 11801 "404": { 11802 "$ref": "#/components/responses/404" 11803 }, 11804 "429": { 11805 "$ref": "#/components/responses/429" 11806 } 11807 }, 11808 "x-code-samples": [ 11809 { 11810 "lang": "Curl", 11811 "source": "curl \"https://api.phrase.com/v2/authorizations/:id\" \\\n -u USERNAME \\\n -X DELETE" 11812 }, 11813 { 11814 "lang": "CLI v2", 11815 "source": "phrase authorizations delete \\\n--id <id>" 11816 } 11817 ], 11818 "x-cli-version": "2.5" 11819 } 11820 }, 11821 "/bitbucket_syncs": { 11822 "get": { 11823 "summary": "List Bitbucket syncs", 11824 "description": "List all Bitbucket repositories for which synchronisation with Phrase Strings is activated.", 11825 "operationId": "bitbucket_syncs/list", 11826 "tags": [ 11827 "Bitbucket Sync" 11828 ], 11829 "parameters": [ 11830 { 11831 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11832 }, 11833 { 11834 "description": "Account ID to specify the actual account the project should be created in. Required if the requesting user is a member of multiple accounts.", 11835 "example": "abcd1234", 11836 "name": "account_id", 11837 "in": "query", 11838 "schema": { 11839 "type": "string" 11840 } 11841 } 11842 ], 11843 "responses": { 11844 "200": { 11845 "description": "OK", 11846 "content": { 11847 "application/json": { 11848 "schema": { 11849 "type": "array", 11850 "items": { 11851 "$ref": "#/components/schemas/bitbucket_sync" 11852 } 11853 } 11854 } 11855 }, 11856 "headers": { 11857 "X-Rate-Limit-Limit": { 11858 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11859 }, 11860 "X-Rate-Limit-Remaining": { 11861 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11862 }, 11863 "X-Rate-Limit-Reset": { 11864 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11865 }, 11866 "Link": { 11867 "$ref": "#/components/headers/Link" 11868 }, 11869 "Pagination": { 11870 "$ref": "#/components/headers/Pagination" 11871 } 11872 } 11873 }, 11874 "400": { 11875 "$ref": "#/components/responses/400" 11876 }, 11877 "404": { 11878 "$ref": "#/components/responses/404" 11879 }, 11880 "429": { 11881 "$ref": "#/components/responses/429" 11882 } 11883 }, 11884 "x-code-samples": [ 11885 { 11886 "lang": "Curl", 11887 "source": "curl \"https://api.phrase.com/v2/bitbucket_syncs?account_id=abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 11888 }, 11889 { 11890 "lang": "CLI v2", 11891 "source": "phrase bitbucket_sync list \\\n--account_id abcd1234 \\\n--access_token <token>" 11892 } 11893 ], 11894 "x-cli-version": "2.5" 11895 } 11896 }, 11897 "/bitbucket_syncs/{id}/export": { 11898 "post": { 11899 "summary": "Export from Phrase Strings to Bitbucket", 11900 "description": "Export translations from Phrase Strings to Bitbucket according to the .phraseapp.yml file within the Bitbucket Repository. <br><br><i>Note: Export is done asynchronously and may take several seconds depending on the project size.</i>", 11901 "operationId": "bitbucket_sync/export", 11902 "tags": [ 11903 "Bitbucket Sync" 11904 ], 11905 "parameters": [ 11906 { 11907 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11908 }, 11909 { 11910 "$ref": "#/components/parameters/id" 11911 } 11912 ], 11913 "responses": { 11914 "200": { 11915 "description": "OK", 11916 "content": { 11917 "application/json": { 11918 "schema": { 11919 "$ref": "#/components/schemas/bitbucket_sync_export_response" 11920 } 11921 } 11922 }, 11923 "headers": { 11924 "X-Rate-Limit-Limit": { 11925 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11926 }, 11927 "X-Rate-Limit-Remaining": { 11928 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 11929 }, 11930 "X-Rate-Limit-Reset": { 11931 "$ref": "#/components/headers/X-Rate-Limit-Reset" 11932 } 11933 } 11934 }, 11935 "400": { 11936 "$ref": "#/components/responses/400" 11937 }, 11938 "404": { 11939 "$ref": "#/components/responses/404" 11940 }, 11941 "429": { 11942 "$ref": "#/components/responses/429" 11943 } 11944 }, 11945 "x-code-samples": [ 11946 { 11947 "lang": "Curl", 11948 "source": "curl \"https://api.phrase.com/v2/bitbucket_syncs/:id/export\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"account_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 11949 }, 11950 { 11951 "lang": "CLI v2", 11952 "source": "phrase bitbucket_sync export \\\n--id <id> \\\n--data '{\"account_id\":\"abcd1234\"}' \\\n--access_token <token>" 11953 } 11954 ], 11955 "requestBody": { 11956 "required": true, 11957 "content": { 11958 "application/json": { 11959 "schema": { 11960 "type": "object", 11961 "title": "bitbucket_sync/export/parameters", 11962 "properties": { 11963 "account_id": { 11964 "description": "Account ID to specify the actual account the project should be created in. Required if the requesting user is a member of multiple accounts.", 11965 "type": "string", 11966 "example": "abcd1234" 11967 } 11968 } 11969 } 11970 } 11971 } 11972 }, 11973 "x-cli-version": "2.5" 11974 } 11975 }, 11976 "/bitbucket_syncs/{id}/import": { 11977 "post": { 11978 "summary": "Import to Phrase Strings from Bitbucket", 11979 "description": "Import translations from Bitbucket to Phrase Strings according to the .phraseapp.yml file within the Bitbucket repository. <br><br><i>Note: Import is done asynchronously and may take several seconds depending on the project size.</i>", 11980 "operationId": "bitbucket_sync/import", 11981 "tags": [ 11982 "Bitbucket Sync" 11983 ], 11984 "parameters": [ 11985 { 11986 "$ref": "#/components/parameters/X-PhraseApp-OTP" 11987 }, 11988 { 11989 "$ref": "#/components/parameters/id" 11990 } 11991 ], 11992 "responses": { 11993 "200": { 11994 "description": "OK", 11995 "headers": { 11996 "X-Rate-Limit-Limit": { 11997 "$ref": "#/components/headers/X-Rate-Limit-Limit" 11998 }, 11999 "X-Rate-Limit-Remaining": { 12000 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12001 }, 12002 "X-Rate-Limit-Reset": { 12003 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12004 } 12005 } 12006 }, 12007 "400": { 12008 "$ref": "#/components/responses/400" 12009 }, 12010 "404": { 12011 "$ref": "#/components/responses/404" 12012 }, 12013 "429": { 12014 "$ref": "#/components/responses/429" 12015 } 12016 }, 12017 "x-code-samples": [ 12018 { 12019 "lang": "Curl", 12020 "source": "curl \"https://api.phrase.com/v2/bitbucket_syncs/:id/import\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"account_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 12021 }, 12022 { 12023 "lang": "CLI v2", 12024 "source": "phrase bitbucket_sync import \\\n--id <id> \\\n--data '{\"account_id\":\"abcd1234\"}' \\\n--access_token <token>" 12025 } 12026 ], 12027 "requestBody": { 12028 "required": true, 12029 "content": { 12030 "application/json": { 12031 "schema": { 12032 "type": "object", 12033 "title": "bitbucket_sync/import/parameters", 12034 "properties": { 12035 "account_id": { 12036 "description": "Account ID to specify the actual account the project should be created in. Required if the requesting user is a member of multiple accounts.", 12037 "type": "string", 12038 "example": "abcd1234" 12039 } 12040 } 12041 } 12042 } 12043 } 12044 }, 12045 "x-cli-version": "2.5" 12046 } 12047 }, 12048 "/projects/{project_id}/keys/{key_id}/comments": { 12049 "get": { 12050 "summary": "List comments", 12051 "description": "List all comments for a key.", 12052 "operationId": "comments/list", 12053 "tags": [ 12054 "Comments" 12055 ], 12056 "parameters": [ 12057 { 12058 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12059 }, 12060 { 12061 "$ref": "#/components/parameters/project_id" 12062 }, 12063 { 12064 "$ref": "#/components/parameters/key_id" 12065 }, 12066 { 12067 "$ref": "#/components/parameters/page" 12068 }, 12069 { 12070 "$ref": "#/components/parameters/per_page" 12071 }, 12072 { 12073 "description": "specify the branch to use", 12074 "example": "my-feature-branch", 12075 "name": "branch", 12076 "in": "query", 12077 "schema": { 12078 "type": "string" 12079 } 12080 }, 12081 { 12082 "description": "Search query for comment messages", 12083 "example": "Some comment content", 12084 "name": "query", 12085 "in": "query", 12086 "schema": { 12087 "type": "string" 12088 } 12089 }, 12090 { 12091 "description": "Search comments by their assigned locales", 12092 "example": [ 12093 "someId" 12094 ], 12095 "name": "locale_ids", 12096 "in": "query", 12097 "schema": { 12098 "type": "array", 12099 "items": { 12100 "type": "string" 12101 } 12102 } 12103 }, 12104 { 12105 "description": "Specify the filter for the comments", 12106 "name": "filters", 12107 "in": "query", 12108 "schema": { 12109 "type": "array", 12110 "example": [ 12111 "read", 12112 "unread" 12113 ], 12114 "items": { 12115 "type": "string" 12116 } 12117 } 12118 }, 12119 { 12120 "description": "Order direction. Can be one of: asc, desc.", 12121 "name": "order", 12122 "in": "query", 12123 "example": "desc", 12124 "schema": { 12125 "type": "string" 12126 } 12127 } 12128 ], 12129 "responses": { 12130 "200": { 12131 "description": "OK", 12132 "content": { 12133 "application/json": { 12134 "schema": { 12135 "type": "array", 12136 "items": { 12137 "$ref": "#/components/schemas/comment" 12138 } 12139 } 12140 } 12141 }, 12142 "headers": { 12143 "X-Rate-Limit-Limit": { 12144 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12145 }, 12146 "X-Rate-Limit-Remaining": { 12147 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12148 }, 12149 "X-Rate-Limit-Reset": { 12150 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12151 }, 12152 "Link": { 12153 "$ref": "#/components/headers/Link" 12154 }, 12155 "Pagination": { 12156 "$ref": "#/components/headers/Pagination" 12157 } 12158 } 12159 }, 12160 "400": { 12161 "$ref": "#/components/responses/400" 12162 }, 12163 "404": { 12164 "$ref": "#/components/responses/404" 12165 }, 12166 "429": { 12167 "$ref": "#/components/responses/429" 12168 } 12169 }, 12170 "x-code-samples": [ 12171 { 12172 "lang": "Curl", 12173 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments?branch=my-feature-branch&filters=unread&query=something&locale_ids=someId&order=desc\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X GET \\\n -H 'Content-Type: application/json'" 12174 }, 12175 { 12176 "lang": "CLI v2", 12177 "source": "phrase comments list \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--branch \"my-feature-branch\" \\\n--filters unread \\\n--order desc \\\n--query \"Some comment content\" \\\n--locale_ids someId \\\n--access_token <token>" 12178 } 12179 ], 12180 "requestBody": { 12181 "required": true, 12182 "content": { 12183 "application/json": { 12184 "schema": { 12185 "type": "object", 12186 "title": "comments/list/parameters", 12187 "properties": { 12188 "branch": { 12189 "description": "Specify the branch to use", 12190 "type": "string", 12191 "example": "my-feature-branch" 12192 }, 12193 "query": { 12194 "description": "Search query for comment messages", 12195 "type": "string", 12196 "example": "Some comment content" 12197 }, 12198 "locale_ids": { 12199 "description": "Search comments by their assigned locales", 12200 "type": "array", 12201 "items": { 12202 "type": "string" 12203 }, 12204 "example": [ 12205 "someId", 12206 "otherId" 12207 ] 12208 }, 12209 "filters": { 12210 "description": "Specify filters to find comments by", 12211 "type": "array", 12212 "items": { 12213 "type": "string" 12214 }, 12215 "example": [ 12216 "read", 12217 "unread" 12218 ] 12219 }, 12220 "order": { 12221 "description": "Specify ordering of comments", 12222 "type": "string", 12223 "example": "desc" 12224 } 12225 } 12226 } 12227 } 12228 } 12229 }, 12230 "x-cli-version": "2.5" 12231 }, 12232 "post": { 12233 "summary": "Create a comment", 12234 "description": "Create a new comment for a key.", 12235 "operationId": "comment/create", 12236 "tags": [ 12237 "Comments" 12238 ], 12239 "parameters": [ 12240 { 12241 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12242 }, 12243 { 12244 "$ref": "#/components/parameters/project_id" 12245 }, 12246 { 12247 "$ref": "#/components/parameters/key_id" 12248 }, 12249 { 12250 "description": "specify the message for the comment", 12251 "example": "some message...", 12252 "name": "message", 12253 "in": "query", 12254 "schema": { 12255 "type": "string" 12256 } 12257 }, 12258 { 12259 "description": "specify the locales for the comment", 12260 "example": "someId", 12261 "name": "locale_ids", 12262 "in": "query", 12263 "schema": { 12264 "type": "array", 12265 "items": { 12266 "type": "string" 12267 } 12268 } 12269 } 12270 ], 12271 "responses": { 12272 "201": { 12273 "description": "Created", 12274 "content": { 12275 "application/json": { 12276 "schema": { 12277 "$ref": "#/components/schemas/comment" 12278 } 12279 } 12280 }, 12281 "headers": { 12282 "X-Rate-Limit-Limit": { 12283 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12284 }, 12285 "X-Rate-Limit-Remaining": { 12286 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12287 }, 12288 "X-Rate-Limit-Reset": { 12289 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12290 } 12291 } 12292 }, 12293 "400": { 12294 "$ref": "#/components/responses/400" 12295 }, 12296 "404": { 12297 "$ref": "#/components/responses/404" 12298 }, 12299 "429": { 12300 "$ref": "#/components/responses/429" 12301 } 12302 }, 12303 "x-code-samples": [ 12304 { 12305 "lang": "Curl", 12306 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\", \"message\":\"Some message...\", \"locale_ids\": [\"someId\"]}' \\\n -H 'Content-Type: application/json'" 12307 }, 12308 { 12309 "lang": "CLI v2", 12310 "source": "phrase comments create \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"message\": \"Some message...\", \"locale_ids\": [\"someId\"]}' \\\n--access_token <token>" 12311 } 12312 ], 12313 "requestBody": { 12314 "required": true, 12315 "content": { 12316 "application/json": { 12317 "schema": { 12318 "type": "object", 12319 "title": "comment/create/parameters", 12320 "properties": { 12321 "branch": { 12322 "description": "specify the branch to use", 12323 "type": "string", 12324 "example": "my-feature-branch" 12325 }, 12326 "message": { 12327 "description": "Comment message", 12328 "type": "string", 12329 "example": "Some message..." 12330 } 12331 } 12332 } 12333 } 12334 } 12335 }, 12336 "x-cli-version": "2.5" 12337 } 12338 }, 12339 "/projects/{project_id}/keys/{key_id}/comments/{id}": { 12340 "get": { 12341 "summary": "Get a single comment", 12342 "description": "Get details on a single comment.", 12343 "operationId": "comment/show", 12344 "tags": [ 12345 "Comments" 12346 ], 12347 "parameters": [ 12348 { 12349 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12350 }, 12351 { 12352 "$ref": "#/components/parameters/project_id" 12353 }, 12354 { 12355 "$ref": "#/components/parameters/key_id" 12356 }, 12357 { 12358 "$ref": "#/components/parameters/id" 12359 }, 12360 { 12361 "description": "specify the branch to use", 12362 "example": "my-feature-branch", 12363 "name": "branch", 12364 "in": "query", 12365 "schema": { 12366 "type": "string" 12367 } 12368 } 12369 ], 12370 "responses": { 12371 "200": { 12372 "description": "OK", 12373 "content": { 12374 "application/json": { 12375 "schema": { 12376 "$ref": "#/components/schemas/comment" 12377 } 12378 } 12379 }, 12380 "headers": { 12381 "X-Rate-Limit-Limit": { 12382 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12383 }, 12384 "X-Rate-Limit-Remaining": { 12385 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12386 }, 12387 "X-Rate-Limit-Reset": { 12388 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12389 } 12390 } 12391 }, 12392 "400": { 12393 "$ref": "#/components/responses/400" 12394 }, 12395 "404": { 12396 "$ref": "#/components/responses/404" 12397 }, 12398 "429": { 12399 "$ref": "#/components/responses/429" 12400 } 12401 }, 12402 "x-code-samples": [ 12403 { 12404 "lang": "Curl", 12405 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 12406 }, 12407 { 12408 "lang": "CLI v2", 12409 "source": "phrase comments show \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12410 } 12411 ], 12412 "x-cli-version": "2.5" 12413 }, 12414 "patch": { 12415 "summary": "Update a comment", 12416 "description": "Update an existing comment.", 12417 "operationId": "comment/update", 12418 "tags": [ 12419 "Comments" 12420 ], 12421 "parameters": [ 12422 { 12423 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12424 }, 12425 { 12426 "$ref": "#/components/parameters/project_id" 12427 }, 12428 { 12429 "$ref": "#/components/parameters/key_id" 12430 }, 12431 { 12432 "$ref": "#/components/parameters/id" 12433 } 12434 ], 12435 "responses": { 12436 "200": { 12437 "description": "OK", 12438 "content": { 12439 "application/json": { 12440 "schema": { 12441 "$ref": "#/components/schemas/comment" 12442 } 12443 } 12444 }, 12445 "headers": { 12446 "X-Rate-Limit-Limit": { 12447 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12448 }, 12449 "X-Rate-Limit-Remaining": { 12450 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12451 }, 12452 "X-Rate-Limit-Reset": { 12453 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12454 } 12455 } 12456 }, 12457 "400": { 12458 "$ref": "#/components/responses/400" 12459 }, 12460 "404": { 12461 "$ref": "#/components/responses/404" 12462 }, 12463 "429": { 12464 "$ref": "#/components/responses/429" 12465 } 12466 }, 12467 "x-code-samples": [ 12468 { 12469 "lang": "Curl", 12470 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"message\":\"Some message...\"}' \\\n -H 'Content-Type: application/json'" 12471 }, 12472 { 12473 "lang": "CLI v2", 12474 "source": "phrase comments update \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"message\": \"Some message...\"}' \\\n--access_token <token>" 12475 } 12476 ], 12477 "requestBody": { 12478 "required": true, 12479 "content": { 12480 "application/json": { 12481 "schema": { 12482 "type": "object", 12483 "title": "comment/update/parameters", 12484 "properties": { 12485 "branch": { 12486 "description": "specify the branch to use", 12487 "type": "string", 12488 "example": "my-feature-branch" 12489 }, 12490 "message": { 12491 "description": "Comment message", 12492 "type": "string", 12493 "example": "Some message..." 12494 } 12495 } 12496 } 12497 } 12498 } 12499 }, 12500 "x-cli-version": "2.5" 12501 }, 12502 "delete": { 12503 "summary": "Delete a comment", 12504 "description": "Delete an existing comment.", 12505 "operationId": "comment/delete", 12506 "tags": [ 12507 "Comments" 12508 ], 12509 "parameters": [ 12510 { 12511 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12512 }, 12513 { 12514 "$ref": "#/components/parameters/project_id" 12515 }, 12516 { 12517 "$ref": "#/components/parameters/key_id" 12518 }, 12519 { 12520 "$ref": "#/components/parameters/id" 12521 }, 12522 { 12523 "description": "specify the branch to use", 12524 "example": "my-feature-branch", 12525 "name": "branch", 12526 "in": "query", 12527 "schema": { 12528 "type": "string" 12529 } 12530 } 12531 ], 12532 "responses": { 12533 "204": { 12534 "$ref": "#/components/responses/204" 12535 }, 12536 "400": { 12537 "$ref": "#/components/responses/400" 12538 }, 12539 "404": { 12540 "$ref": "#/components/responses/404" 12541 }, 12542 "429": { 12543 "$ref": "#/components/responses/429" 12544 } 12545 }, 12546 "x-code-samples": [ 12547 { 12548 "lang": "Curl", 12549 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 12550 }, 12551 { 12552 "lang": "CLI v2", 12553 "source": "phrase comments delete \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12554 } 12555 ], 12556 "x-cli-version": "2.5" 12557 } 12558 }, 12559 "/projects/{project_id}/keys/{key_id}/comments/{id}/read": { 12560 "patch": { 12561 "summary": "Mark a comment as read", 12562 "description": "Mark a comment as read.", 12563 "operationId": "comment/mark/read", 12564 "tags": [ 12565 "Comments" 12566 ], 12567 "parameters": [ 12568 { 12569 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12570 }, 12571 { 12572 "$ref": "#/components/parameters/project_id" 12573 }, 12574 { 12575 "$ref": "#/components/parameters/key_id" 12576 }, 12577 { 12578 "$ref": "#/components/parameters/id" 12579 } 12580 ], 12581 "responses": { 12582 "204": { 12583 "$ref": "#/components/responses/204" 12584 }, 12585 "400": { 12586 "$ref": "#/components/responses/400" 12587 }, 12588 "404": { 12589 "$ref": "#/components/responses/404" 12590 }, 12591 "429": { 12592 "$ref": "#/components/responses/429" 12593 } 12594 }, 12595 "x-code-samples": [ 12596 { 12597 "lang": "Curl", 12598 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 12599 }, 12600 { 12601 "lang": "CLI v2", 12602 "source": "phrase comments mark \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 12603 } 12604 ], 12605 "requestBody": { 12606 "required": true, 12607 "content": { 12608 "application/json": { 12609 "schema": { 12610 "type": "object", 12611 "title": "comment/mark/read/parameters", 12612 "properties": { 12613 "branch": { 12614 "description": "specify the branch to use", 12615 "type": "string", 12616 "example": "my-feature-branch" 12617 } 12618 } 12619 } 12620 } 12621 } 12622 }, 12623 "x-cli-version": "2.5" 12624 }, 12625 "delete": { 12626 "summary": "Mark a comment as unread", 12627 "description": "Mark a comment as unread.", 12628 "operationId": "comment/mark/unread", 12629 "tags": [ 12630 "Comments" 12631 ], 12632 "parameters": [ 12633 { 12634 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12635 }, 12636 { 12637 "$ref": "#/components/parameters/project_id" 12638 }, 12639 { 12640 "$ref": "#/components/parameters/key_id" 12641 }, 12642 { 12643 "$ref": "#/components/parameters/id" 12644 }, 12645 { 12646 "description": "specify the branch to use", 12647 "example": "my-feature-branch", 12648 "name": "branch", 12649 "in": "query", 12650 "schema": { 12651 "type": "string" 12652 } 12653 } 12654 ], 12655 "responses": { 12656 "204": { 12657 "$ref": "#/components/responses/204" 12658 }, 12659 "400": { 12660 "$ref": "#/components/responses/400" 12661 }, 12662 "404": { 12663 "$ref": "#/components/responses/404" 12664 }, 12665 "429": { 12666 "$ref": "#/components/responses/429" 12667 } 12668 }, 12669 "x-code-samples": [ 12670 { 12671 "lang": "Curl", 12672 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 12673 }, 12674 { 12675 "lang": "CLI v2", 12676 "source": "phrase comments mark \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12677 } 12678 ], 12679 "x-cli-version": "2.5" 12680 }, 12681 "get": { 12682 "summary": "Check if comment is read", 12683 "description": "Check if comment was marked as read. Returns 204 if read, 404 if unread.", 12684 "operationId": "comment/mark/check", 12685 "tags": [ 12686 "Comments" 12687 ], 12688 "parameters": [ 12689 { 12690 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12691 }, 12692 { 12693 "$ref": "#/components/parameters/project_id" 12694 }, 12695 { 12696 "$ref": "#/components/parameters/key_id" 12697 }, 12698 { 12699 "$ref": "#/components/parameters/id" 12700 }, 12701 { 12702 "description": "specify the branch to use", 12703 "example": "my-feature-branch", 12704 "name": "branch", 12705 "in": "query", 12706 "schema": { 12707 "type": "string" 12708 } 12709 } 12710 ], 12711 "responses": { 12712 "204": { 12713 "$ref": "#/components/responses/204" 12714 }, 12715 "400": { 12716 "$ref": "#/components/responses/400" 12717 }, 12718 "404": { 12719 "$ref": "#/components/responses/404" 12720 }, 12721 "429": { 12722 "$ref": "#/components/responses/429" 12723 } 12724 }, 12725 "x-code-samples": [ 12726 { 12727 "lang": "Curl", 12728 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 12729 }, 12730 { 12731 "lang": "CLI v2", 12732 "source": "phrase comments mark \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12733 } 12734 ], 12735 "x-cli-version": "2.5" 12736 } 12737 }, 12738 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/reactions": { 12739 "get": { 12740 "summary": "List reactions", 12741 "description": "List all reactions for a comment.", 12742 "operationId": "reactions/list", 12743 "tags": [ 12744 "Comment Reactions" 12745 ], 12746 "parameters": [ 12747 { 12748 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12749 }, 12750 { 12751 "$ref": "#/components/parameters/project_id" 12752 }, 12753 { 12754 "$ref": "#/components/parameters/key_id" 12755 }, 12756 { 12757 "$ref": "#/components/parameters/comment_id" 12758 }, 12759 { 12760 "$ref": "#/components/parameters/page" 12761 }, 12762 { 12763 "$ref": "#/components/parameters/per_page" 12764 }, 12765 { 12766 "description": "specify the branch to use", 12767 "example": "my-feature-branch", 12768 "name": "branch", 12769 "in": "query", 12770 "schema": { 12771 "type": "string" 12772 } 12773 } 12774 ], 12775 "responses": { 12776 "200": { 12777 "description": "OK", 12778 "content": { 12779 "application/json": { 12780 "schema": { 12781 "type": "array", 12782 "items": { 12783 "$ref": "#/components/schemas/comment_reaction" 12784 } 12785 } 12786 } 12787 }, 12788 "headers": { 12789 "X-Rate-Limit-Limit": { 12790 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12791 }, 12792 "X-Rate-Limit-Remaining": { 12793 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12794 }, 12795 "X-Rate-Limit-Reset": { 12796 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12797 }, 12798 "Link": { 12799 "$ref": "#/components/headers/Link" 12800 }, 12801 "Pagination": { 12802 "$ref": "#/components/headers/Pagination" 12803 } 12804 } 12805 }, 12806 "400": { 12807 "$ref": "#/components/responses/400" 12808 }, 12809 "403": { 12810 "$ref": "#/components/responses/403" 12811 }, 12812 "404": { 12813 "$ref": "#/components/responses/404" 12814 }, 12815 "429": { 12816 "$ref": "#/components/responses/429" 12817 } 12818 }, 12819 "x-code-samples": [ 12820 { 12821 "lang": "Curl", 12822 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X GET \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 12823 }, 12824 { 12825 "lang": "CLI v2", 12826 "source": "phrase reactions list \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12827 } 12828 ], 12829 "x-cli-version": "2.9" 12830 }, 12831 "post": { 12832 "summary": "Create a reaction", 12833 "description": "Create a new reaction for a comment.", 12834 "operationId": "reaction/create", 12835 "tags": [ 12836 "Comment Reactions" 12837 ], 12838 "parameters": [ 12839 { 12840 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12841 }, 12842 { 12843 "$ref": "#/components/parameters/project_id" 12844 }, 12845 { 12846 "$ref": "#/components/parameters/key_id" 12847 }, 12848 { 12849 "$ref": "#/components/parameters/comment_id" 12850 }, 12851 { 12852 "description": "specify the branch to use", 12853 "example": "my-feature-branch", 12854 "name": "branch", 12855 "in": "query", 12856 "schema": { 12857 "type": "string" 12858 } 12859 }, 12860 { 12861 "description": "specify the emoji for the reaction", 12862 "example": "👍", 12863 "name": "emoji", 12864 "in": "query", 12865 "schema": { 12866 "type": "string" 12867 } 12868 } 12869 ], 12870 "responses": { 12871 "201": { 12872 "description": "Created", 12873 "content": { 12874 "application/json": { 12875 "schema": { 12876 "$ref": "#/components/schemas/comment_reaction" 12877 } 12878 } 12879 }, 12880 "headers": { 12881 "X-Rate-Limit-Limit": { 12882 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12883 }, 12884 "X-Rate-Limit-Remaining": { 12885 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12886 }, 12887 "X-Rate-Limit-Reset": { 12888 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12889 } 12890 } 12891 }, 12892 "400": { 12893 "$ref": "#/components/responses/400" 12894 }, 12895 "403": { 12896 "$ref": "#/components/responses/403" 12897 }, 12898 "404": { 12899 "$ref": "#/components/responses/404" 12900 }, 12901 "429": { 12902 "$ref": "#/components/responses/429" 12903 } 12904 }, 12905 "x-code-samples": [ 12906 { 12907 "lang": "Curl", 12908 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\", \"emoji\": \"👍\"}' \\\n -H 'Content-Type: application/json'" 12909 }, 12910 { 12911 "lang": "CLI v2", 12912 "source": "phrase reactions create \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"emoji\": \"👍\"]}' \\\n--access_token <token>" 12913 } 12914 ], 12915 "x-cli-version": "2.9" 12916 } 12917 }, 12918 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/reactions/{id}": { 12919 "get": { 12920 "summary": "Get a single reaction", 12921 "description": "Get details on a single reaction.", 12922 "operationId": "reaction/show", 12923 "tags": [ 12924 "Comment Reactions" 12925 ], 12926 "parameters": [ 12927 { 12928 "$ref": "#/components/parameters/X-PhraseApp-OTP" 12929 }, 12930 { 12931 "$ref": "#/components/parameters/project_id" 12932 }, 12933 { 12934 "$ref": "#/components/parameters/key_id" 12935 }, 12936 { 12937 "$ref": "#/components/parameters/comment_id" 12938 }, 12939 { 12940 "$ref": "#/components/parameters/id" 12941 }, 12942 { 12943 "description": "specify the branch to use", 12944 "example": "my-feature-branch", 12945 "name": "branch", 12946 "in": "query", 12947 "schema": { 12948 "type": "string" 12949 } 12950 } 12951 ], 12952 "responses": { 12953 "200": { 12954 "description": "OK", 12955 "content": { 12956 "application/json": { 12957 "schema": { 12958 "$ref": "#/components/schemas/comment_reaction" 12959 } 12960 } 12961 }, 12962 "headers": { 12963 "X-Rate-Limit-Limit": { 12964 "$ref": "#/components/headers/X-Rate-Limit-Limit" 12965 }, 12966 "X-Rate-Limit-Remaining": { 12967 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 12968 }, 12969 "X-Rate-Limit-Reset": { 12970 "$ref": "#/components/headers/X-Rate-Limit-Reset" 12971 } 12972 } 12973 }, 12974 "400": { 12975 "$ref": "#/components/responses/400" 12976 }, 12977 "403": { 12978 "$ref": "#/components/responses/403" 12979 }, 12980 "404": { 12981 "$ref": "#/components/responses/404" 12982 }, 12983 "429": { 12984 "$ref": "#/components/responses/429" 12985 } 12986 }, 12987 "x-code-samples": [ 12988 { 12989 "lang": "Curl", 12990 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X GET \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 12991 }, 12992 { 12993 "lang": "CLI v2", 12994 "source": "phrase reactions show \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 12995 } 12996 ], 12997 "x-cli-version": "2.9" 12998 }, 12999 "delete": { 13000 "summary": "Delete a reaction", 13001 "description": "Delete an existing reaction.", 13002 "operationId": "reaction/delete", 13003 "tags": [ 13004 "Comment Reactions" 13005 ], 13006 "parameters": [ 13007 { 13008 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13009 }, 13010 { 13011 "$ref": "#/components/parameters/project_id" 13012 }, 13013 { 13014 "$ref": "#/components/parameters/key_id" 13015 }, 13016 { 13017 "$ref": "#/components/parameters/comment_id" 13018 }, 13019 { 13020 "$ref": "#/components/parameters/id" 13021 }, 13022 { 13023 "description": "specify the branch to use", 13024 "example": "my-feature-branch", 13025 "name": "branch", 13026 "in": "query", 13027 "schema": { 13028 "type": "string" 13029 } 13030 } 13031 ], 13032 "responses": { 13033 "204": { 13034 "$ref": "#/components/responses/204" 13035 }, 13036 "400": { 13037 "$ref": "#/components/responses/400" 13038 }, 13039 "403": { 13040 "$ref": "#/components/responses/403" 13041 }, 13042 "404": { 13043 "$ref": "#/components/responses/404" 13044 }, 13045 "429": { 13046 "$ref": "#/components/responses/429" 13047 } 13048 }, 13049 "x-code-samples": [ 13050 { 13051 "lang": "Curl", 13052 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 13053 }, 13054 { 13055 "lang": "CLI v2", 13056 "source": "phrase reactions delete \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 13057 } 13058 ], 13059 "x-cli-version": "2.9" 13060 } 13061 }, 13062 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies": { 13063 "get": { 13064 "summary": "List replies", 13065 "description": "List all replies for a comment.", 13066 "operationId": "replies/list", 13067 "tags": [ 13068 "Comment Replies" 13069 ], 13070 "parameters": [ 13071 { 13072 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13073 }, 13074 { 13075 "$ref": "#/components/parameters/project_id" 13076 }, 13077 { 13078 "$ref": "#/components/parameters/key_id" 13079 }, 13080 { 13081 "$ref": "#/components/parameters/comment_id" 13082 }, 13083 { 13084 "$ref": "#/components/parameters/page" 13085 }, 13086 { 13087 "$ref": "#/components/parameters/per_page" 13088 }, 13089 { 13090 "description": "specify the branch to use", 13091 "example": "my-feature-branch", 13092 "name": "branch", 13093 "in": "query", 13094 "schema": { 13095 "type": "string" 13096 } 13097 }, 13098 { 13099 "description": "Search query for comment messages", 13100 "example": "Some comment content", 13101 "name": "query", 13102 "in": "query", 13103 "schema": { 13104 "type": "string" 13105 } 13106 }, 13107 { 13108 "description": "Specify the filter for the comments", 13109 "name": "filters", 13110 "in": "query", 13111 "schema": { 13112 "type": "array", 13113 "example": [ 13114 "read", 13115 "unread" 13116 ], 13117 "items": { 13118 "type": "string" 13119 } 13120 } 13121 }, 13122 { 13123 "description": "Order direction. Can be one of: asc, desc.", 13124 "name": "order", 13125 "in": "query", 13126 "example": "desc", 13127 "schema": { 13128 "type": "string" 13129 } 13130 } 13131 ], 13132 "responses": { 13133 "200": { 13134 "description": "OK", 13135 "content": { 13136 "application/json": { 13137 "schema": { 13138 "type": "array", 13139 "items": { 13140 "$ref": "#/components/schemas/comment" 13141 } 13142 } 13143 } 13144 }, 13145 "headers": { 13146 "X-Rate-Limit-Limit": { 13147 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13148 }, 13149 "X-Rate-Limit-Remaining": { 13150 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13151 }, 13152 "X-Rate-Limit-Reset": { 13153 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13154 }, 13155 "Link": { 13156 "$ref": "#/components/headers/Link" 13157 }, 13158 "Pagination": { 13159 "$ref": "#/components/headers/Pagination" 13160 } 13161 } 13162 }, 13163 "400": { 13164 "$ref": "#/components/responses/400" 13165 }, 13166 "403": { 13167 "$ref": "#/components/responses/403" 13168 }, 13169 "404": { 13170 "$ref": "#/components/responses/404" 13171 }, 13172 "429": { 13173 "$ref": "#/components/responses/429" 13174 } 13175 }, 13176 "x-code-samples": [ 13177 { 13178 "lang": "Curl", 13179 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies?branch=my-feature-branch&filters=unread&query=something&order=desc\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X GET \\\n -H 'Content-Type: application/json'" 13180 }, 13181 { 13182 "lang": "CLI v2", 13183 "source": "phrase replies list \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--branch \"my-feature-branch\" \\\n--filters unread \\\n--order desc \\\n--query \"Some comment content\" \\\n--access_token <token>" 13184 } 13185 ], 13186 "requestBody": { 13187 "required": true, 13188 "content": { 13189 "application/json": { 13190 "schema": { 13191 "type": "object", 13192 "title": "replies/list/parameters", 13193 "properties": { 13194 "branch": { 13195 "description": "Specify the branch to use", 13196 "type": "string", 13197 "example": "my-feature-branch" 13198 }, 13199 "query": { 13200 "description": "Search query for comment messages", 13201 "type": "string", 13202 "example": "Some comment content" 13203 }, 13204 "filters": { 13205 "description": "Specify filters to find comments by", 13206 "type": "array", 13207 "items": { 13208 "type": "string" 13209 }, 13210 "example": [ 13211 "read", 13212 "unread" 13213 ] 13214 }, 13215 "order": { 13216 "description": "Specify ordering of comments", 13217 "type": "string", 13218 "example": "desc" 13219 } 13220 } 13221 } 13222 } 13223 } 13224 }, 13225 "x-cli-version": "2.10" 13226 }, 13227 "post": { 13228 "summary": "Create a reply", 13229 "description": "Create a new reply for a comment.", 13230 "operationId": "reply/create", 13231 "tags": [ 13232 "Comment Replies" 13233 ], 13234 "parameters": [ 13235 { 13236 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13237 }, 13238 { 13239 "$ref": "#/components/parameters/project_id" 13240 }, 13241 { 13242 "$ref": "#/components/parameters/key_id" 13243 }, 13244 { 13245 "$ref": "#/components/parameters/comment_id" 13246 }, 13247 { 13248 "description": "specify the branch to use", 13249 "example": "my-feature-branch", 13250 "name": "branch", 13251 "in": "query", 13252 "schema": { 13253 "type": "string" 13254 } 13255 }, 13256 { 13257 "description": "specify the message for the comment", 13258 "example": "some message...", 13259 "name": "message", 13260 "in": "query", 13261 "schema": { 13262 "type": "string" 13263 } 13264 } 13265 ], 13266 "responses": { 13267 "201": { 13268 "description": "Created", 13269 "content": { 13270 "application/json": { 13271 "schema": { 13272 "$ref": "#/components/schemas/comment" 13273 } 13274 } 13275 }, 13276 "headers": { 13277 "X-Rate-Limit-Limit": { 13278 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13279 }, 13280 "X-Rate-Limit-Remaining": { 13281 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13282 }, 13283 "X-Rate-Limit-Reset": { 13284 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13285 } 13286 } 13287 }, 13288 "400": { 13289 "$ref": "#/components/responses/400" 13290 }, 13291 "403": { 13292 "$ref": "#/components/responses/403" 13293 }, 13294 "404": { 13295 "$ref": "#/components/responses/404" 13296 }, 13297 "429": { 13298 "$ref": "#/components/responses/429" 13299 } 13300 }, 13301 "x-code-samples": [ 13302 { 13303 "lang": "Curl", 13304 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\", \"message\":\"Some message...\"}' \\\n -H 'Content-Type: application/json'" 13305 }, 13306 { 13307 "lang": "CLI v2", 13308 "source": "phrase replies create \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"message\": \"Some message...\"]}' \\\n--access_token <token>" 13309 } 13310 ], 13311 "x-cli-version": "2.10" 13312 } 13313 }, 13314 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}": { 13315 "get": { 13316 "summary": "Get a single reply", 13317 "description": "Get details on a single reply.", 13318 "operationId": "reply/show", 13319 "tags": [ 13320 "Comment Replies" 13321 ], 13322 "parameters": [ 13323 { 13324 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13325 }, 13326 { 13327 "$ref": "#/components/parameters/project_id" 13328 }, 13329 { 13330 "$ref": "#/components/parameters/key_id" 13331 }, 13332 { 13333 "$ref": "#/components/parameters/comment_id" 13334 }, 13335 { 13336 "$ref": "#/components/parameters/id" 13337 }, 13338 { 13339 "description": "specify the branch to use", 13340 "example": "my-feature-branch", 13341 "name": "branch", 13342 "in": "query", 13343 "schema": { 13344 "type": "string" 13345 } 13346 } 13347 ], 13348 "responses": { 13349 "200": { 13350 "description": "OK", 13351 "content": { 13352 "application/json": { 13353 "schema": { 13354 "$ref": "#/components/schemas/comment" 13355 } 13356 } 13357 }, 13358 "headers": { 13359 "X-Rate-Limit-Limit": { 13360 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13361 }, 13362 "X-Rate-Limit-Remaining": { 13363 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13364 }, 13365 "X-Rate-Limit-Reset": { 13366 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13367 } 13368 } 13369 }, 13370 "400": { 13371 "$ref": "#/components/responses/400" 13372 }, 13373 "403": { 13374 "$ref": "#/components/responses/403" 13375 }, 13376 "404": { 13377 "$ref": "#/components/responses/404" 13378 }, 13379 "429": { 13380 "$ref": "#/components/responses/429" 13381 } 13382 }, 13383 "x-code-samples": [ 13384 { 13385 "lang": "Curl", 13386 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X GET \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 13387 }, 13388 { 13389 "lang": "CLI v2", 13390 "source": "phrase replies show \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"]}' \\\n--access_token <token>" 13391 } 13392 ], 13393 "x-cli-version": "2.10" 13394 }, 13395 "delete": { 13396 "summary": "Delete a reply", 13397 "description": "Delete an existing reply.", 13398 "operationId": "reply/delete", 13399 "tags": [ 13400 "Comment Replies" 13401 ], 13402 "parameters": [ 13403 { 13404 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13405 }, 13406 { 13407 "$ref": "#/components/parameters/project_id" 13408 }, 13409 { 13410 "$ref": "#/components/parameters/key_id" 13411 }, 13412 { 13413 "$ref": "#/components/parameters/comment_id" 13414 }, 13415 { 13416 "$ref": "#/components/parameters/id" 13417 }, 13418 { 13419 "description": "specify the branch to use", 13420 "example": "my-feature-branch", 13421 "name": "branch", 13422 "in": "query", 13423 "schema": { 13424 "type": "string" 13425 } 13426 } 13427 ], 13428 "responses": { 13429 "204": { 13430 "$ref": "#/components/responses/204" 13431 }, 13432 "400": { 13433 "$ref": "#/components/responses/400" 13434 }, 13435 "403": { 13436 "$ref": "#/components/responses/403" 13437 }, 13438 "404": { 13439 "$ref": "#/components/responses/404" 13440 }, 13441 "429": { 13442 "$ref": "#/components/responses/429" 13443 } 13444 }, 13445 "x-code-samples": [ 13446 { 13447 "lang": "Curl", 13448 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 13449 }, 13450 { 13451 "lang": "CLI v2", 13452 "source": "phrase replies delete \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"]}' \\\n--access_token <token>" 13453 } 13454 ], 13455 "x-cli-version": "2.10" 13456 } 13457 }, 13458 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}/mark_as_read": { 13459 "patch": { 13460 "summary": "Mark a reply as read", 13461 "description": "Mark a reply as read.", 13462 "operationId": "reply/mark_as_read", 13463 "tags": [ 13464 "Comment Replies" 13465 ], 13466 "parameters": [ 13467 { 13468 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13469 }, 13470 { 13471 "$ref": "#/components/parameters/project_id" 13472 }, 13473 { 13474 "$ref": "#/components/parameters/key_id" 13475 }, 13476 { 13477 "$ref": "#/components/parameters/comment_id" 13478 }, 13479 { 13480 "$ref": "#/components/parameters/id" 13481 }, 13482 { 13483 "description": "specify the branch to use", 13484 "example": "my-feature-branch", 13485 "name": "branch", 13486 "in": "query", 13487 "schema": { 13488 "type": "string" 13489 } 13490 } 13491 ], 13492 "responses": { 13493 "204": { 13494 "$ref": "#/components/responses/204" 13495 }, 13496 "400": { 13497 "$ref": "#/components/responses/400" 13498 }, 13499 "403": { 13500 "$ref": "#/components/responses/403" 13501 }, 13502 "404": { 13503 "$ref": "#/components/responses/404" 13504 }, 13505 "429": { 13506 "$ref": "#/components/responses/429" 13507 } 13508 }, 13509 "x-code-samples": [ 13510 { 13511 "lang": "Curl", 13512 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id/mark_as_read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 13513 }, 13514 { 13515 "lang": "CLI v2", 13516 "source": "phrase replies mark_as_read \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"]}' \\\n--access_token <token>" 13517 } 13518 ], 13519 "x-cli-version": "2.10" 13520 } 13521 }, 13522 "/projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}/mark_as_unread": { 13523 "patch": { 13524 "summary": "Mark a reply as unread", 13525 "description": "Mark a reply as unread.", 13526 "operationId": "reply/mark_as_unread", 13527 "tags": [ 13528 "Comment Replies" 13529 ], 13530 "parameters": [ 13531 { 13532 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13533 }, 13534 { 13535 "$ref": "#/components/parameters/project_id" 13536 }, 13537 { 13538 "$ref": "#/components/parameters/key_id" 13539 }, 13540 { 13541 "$ref": "#/components/parameters/comment_id" 13542 }, 13543 { 13544 "$ref": "#/components/parameters/id" 13545 }, 13546 { 13547 "description": "specify the branch to use", 13548 "example": "my-feature-branch", 13549 "name": "branch", 13550 "in": "query", 13551 "schema": { 13552 "type": "string" 13553 } 13554 } 13555 ], 13556 "responses": { 13557 "204": { 13558 "$ref": "#/components/responses/204" 13559 }, 13560 "400": { 13561 "$ref": "#/components/responses/400" 13562 }, 13563 "403": { 13564 "$ref": "#/components/responses/403" 13565 }, 13566 "404": { 13567 "$ref": "#/components/responses/404" 13568 }, 13569 "429": { 13570 "$ref": "#/components/responses/429" 13571 } 13572 }, 13573 "x-code-samples": [ 13574 { 13575 "lang": "Curl", 13576 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id/mark_as_unread\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 13577 }, 13578 { 13579 "lang": "CLI v2", 13580 "source": "phrase replies mark_as_unread \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--comment_id <comment_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"]}' \\\n--access_token <token>" 13581 } 13582 ], 13583 "x-cli-version": "2.10" 13584 } 13585 }, 13586 "/projects/{project_id}/webhooks": { 13587 "get": { 13588 "summary": "List webhooks", 13589 "description": "List all webhooks for the given project.", 13590 "operationId": "webhooks/list", 13591 "tags": [ 13592 "Webhooks" 13593 ], 13594 "parameters": [ 13595 { 13596 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13597 }, 13598 { 13599 "$ref": "#/components/parameters/project_id" 13600 }, 13601 { 13602 "$ref": "#/components/parameters/page" 13603 }, 13604 { 13605 "$ref": "#/components/parameters/per_page" 13606 } 13607 ], 13608 "responses": { 13609 "200": { 13610 "description": "OK", 13611 "content": { 13612 "application/json": { 13613 "schema": { 13614 "type": "array", 13615 "items": { 13616 "$ref": "#/components/schemas/webhook" 13617 } 13618 } 13619 } 13620 }, 13621 "headers": { 13622 "X-Rate-Limit-Limit": { 13623 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13624 }, 13625 "X-Rate-Limit-Remaining": { 13626 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13627 }, 13628 "X-Rate-Limit-Reset": { 13629 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13630 }, 13631 "Link": { 13632 "$ref": "#/components/headers/Link" 13633 }, 13634 "Pagination": { 13635 "$ref": "#/components/headers/Pagination" 13636 } 13637 } 13638 }, 13639 "400": { 13640 "$ref": "#/components/responses/400" 13641 }, 13642 "404": { 13643 "$ref": "#/components/responses/404" 13644 }, 13645 "429": { 13646 "$ref": "#/components/responses/429" 13647 } 13648 }, 13649 "x-code-samples": [ 13650 { 13651 "lang": "Curl", 13652 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 13653 }, 13654 { 13655 "lang": "CLI v2", 13656 "source": "phrase webhooks list \\\n--project_id <project_id> \\\n--access_token <token>" 13657 } 13658 ], 13659 "x-cli-version": "2.5" 13660 }, 13661 "post": { 13662 "summary": "Create a webhook", 13663 "description": "Create a new webhook.", 13664 "operationId": "webhook/create", 13665 "tags": [ 13666 "Webhooks" 13667 ], 13668 "parameters": [ 13669 { 13670 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13671 }, 13672 { 13673 "$ref": "#/components/parameters/project_id" 13674 } 13675 ], 13676 "responses": { 13677 "201": { 13678 "description": "Created", 13679 "content": { 13680 "application/json": { 13681 "schema": { 13682 "$ref": "#/components/schemas/webhook" 13683 } 13684 } 13685 }, 13686 "headers": { 13687 "X-Rate-Limit-Limit": { 13688 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13689 }, 13690 "X-Rate-Limit-Remaining": { 13691 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13692 }, 13693 "X-Rate-Limit-Reset": { 13694 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13695 } 13696 } 13697 }, 13698 "400": { 13699 "$ref": "#/components/responses/400" 13700 }, 13701 "404": { 13702 "$ref": "#/components/responses/404" 13703 }, 13704 "429": { 13705 "$ref": "#/components/responses/429" 13706 } 13707 }, 13708 "x-code-samples": [ 13709 { 13710 "lang": "Curl", 13711 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"callback_url\":\"http://example.com/hooks/phraseapp-notifications\",\"description\":\"My webhook for chat notifications\",\"events\":\"locales:create,translations:update\"}' \\\n -H 'Content-Type: application/json'" 13712 }, 13713 { 13714 "lang": "CLI v2", 13715 "source": "phrase webhooks create \\\n--project_id <project_id> \\\n--data '{\"callback_url\": \"http://example.com/hooks/phraseapp-notifications\", \"description\": \"My webhook for chat notifications\", \"events\": \"locales:create,translations:update\"}' \\\n--access_token <token>" 13716 } 13717 ], 13718 "requestBody": { 13719 "required": true, 13720 "content": { 13721 "application/json": { 13722 "schema": { 13723 "type": "object", 13724 "title": "webhook/create/parameters", 13725 "required": [ 13726 "callback_url" 13727 ], 13728 "properties": { 13729 "callback_url": { 13730 "description": "Callback URL to send requests to", 13731 "type": "string", 13732 "example": "http://example.com/hooks/phraseapp-notifications" 13733 }, 13734 "secret": { 13735 "description": "Webhook secret used to calculate signature. If empty, the default project secret will be used.", 13736 "type": "string", 13737 "example": "secr3t" 13738 }, 13739 "description": { 13740 "description": "Webhook description", 13741 "type": "string", 13742 "example": "My webhook for chat notifications" 13743 }, 13744 "events": { 13745 "description": "List of event names to trigger the webhook (separated by comma)", 13746 "type": "string", 13747 "example": "locales:create,translations:update" 13748 }, 13749 "active": { 13750 "description": "Whether webhook is active or inactive", 13751 "type": "boolean", 13752 "example": null 13753 }, 13754 "include_branches": { 13755 "description": "If enabled, webhook will also be triggered for events from branches of the project specified.", 13756 "type": "boolean", 13757 "example": null 13758 } 13759 } 13760 } 13761 } 13762 } 13763 }, 13764 "x-cli-version": "2.5" 13765 } 13766 }, 13767 "/projects/{project_id}/webhooks/{id}": { 13768 "get": { 13769 "summary": "Get a single webhook", 13770 "description": "Get details on a single webhook.", 13771 "operationId": "webhook/show", 13772 "tags": [ 13773 "Webhooks" 13774 ], 13775 "parameters": [ 13776 { 13777 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13778 }, 13779 { 13780 "$ref": "#/components/parameters/project_id" 13781 }, 13782 { 13783 "$ref": "#/components/parameters/id" 13784 } 13785 ], 13786 "responses": { 13787 "200": { 13788 "description": "OK", 13789 "content": { 13790 "application/json": { 13791 "schema": { 13792 "$ref": "#/components/schemas/webhook" 13793 } 13794 } 13795 }, 13796 "headers": { 13797 "X-Rate-Limit-Limit": { 13798 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13799 }, 13800 "X-Rate-Limit-Remaining": { 13801 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13802 }, 13803 "X-Rate-Limit-Reset": { 13804 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13805 } 13806 } 13807 }, 13808 "400": { 13809 "$ref": "#/components/responses/400" 13810 }, 13811 "404": { 13812 "$ref": "#/components/responses/404" 13813 }, 13814 "429": { 13815 "$ref": "#/components/responses/429" 13816 } 13817 }, 13818 "x-code-samples": [ 13819 { 13820 "lang": "Curl", 13821 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 13822 }, 13823 { 13824 "lang": "CLI v2", 13825 "source": "phrase webhooks show \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 13826 } 13827 ], 13828 "x-cli-version": "2.5" 13829 }, 13830 "patch": { 13831 "summary": "Update a webhook", 13832 "description": "Update an existing webhook.", 13833 "operationId": "webhook/update", 13834 "tags": [ 13835 "Webhooks" 13836 ], 13837 "parameters": [ 13838 { 13839 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13840 }, 13841 { 13842 "$ref": "#/components/parameters/project_id" 13843 }, 13844 { 13845 "$ref": "#/components/parameters/id" 13846 } 13847 ], 13848 "responses": { 13849 "200": { 13850 "description": "OK", 13851 "content": { 13852 "application/json": { 13853 "schema": { 13854 "$ref": "#/components/schemas/webhook" 13855 } 13856 } 13857 }, 13858 "headers": { 13859 "X-Rate-Limit-Limit": { 13860 "$ref": "#/components/headers/X-Rate-Limit-Limit" 13861 }, 13862 "X-Rate-Limit-Remaining": { 13863 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 13864 }, 13865 "X-Rate-Limit-Reset": { 13866 "$ref": "#/components/headers/X-Rate-Limit-Reset" 13867 } 13868 } 13869 }, 13870 "400": { 13871 "$ref": "#/components/responses/400" 13872 }, 13873 "404": { 13874 "$ref": "#/components/responses/404" 13875 }, 13876 "429": { 13877 "$ref": "#/components/responses/429" 13878 } 13879 }, 13880 "x-code-samples": [ 13881 { 13882 "lang": "Curl", 13883 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"callback_url\":\"http://example.com/hooks/phraseapp-notifications\",\"description\":\"My webhook for chat notifications\",\"events\":\"locales:create,translations:update\"}' \\\n -H 'Content-Type: application/json'" 13884 }, 13885 { 13886 "lang": "CLI v2", 13887 "source": "phrase webhooks update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"callback_url\": \"http://example.com/hooks/phraseapp-notifications\", \"description\": \"My webhook for chat notifications\", \"events\": \"locales:create,translations:update\"}' \\\n--access_token <token>" 13888 } 13889 ], 13890 "requestBody": { 13891 "required": true, 13892 "content": { 13893 "application/json": { 13894 "schema": { 13895 "type": "object", 13896 "title": "webhook/update/parameters", 13897 "properties": { 13898 "callback_url": { 13899 "description": "Callback URL to send requests to", 13900 "type": "string", 13901 "example": "http://example.com/hooks/phraseapp-notifications" 13902 }, 13903 "secret": { 13904 "description": "Webhook secret used to calculate signature. If empty, the default project secret will be used.", 13905 "type": "string", 13906 "example": "secr3t" 13907 }, 13908 "description": { 13909 "description": "Webhook description", 13910 "type": "string", 13911 "example": "My webhook for chat notifications" 13912 }, 13913 "events": { 13914 "description": "List of event names to trigger the webhook (separated by comma)", 13915 "type": "string", 13916 "example": "locales:create,translations:update" 13917 }, 13918 "active": { 13919 "description": "Whether webhook is active or inactive", 13920 "type": "boolean", 13921 "example": null 13922 }, 13923 "include_branches": { 13924 "description": "If enabled, webhook will also be triggered for events from branches of the project specified.", 13925 "type": "boolean", 13926 "example": null 13927 } 13928 } 13929 } 13930 } 13931 } 13932 }, 13933 "x-cli-version": "2.5" 13934 }, 13935 "delete": { 13936 "summary": "Delete a webhook", 13937 "description": "Delete an existing webhook.", 13938 "operationId": "webhook/delete", 13939 "tags": [ 13940 "Webhooks" 13941 ], 13942 "parameters": [ 13943 { 13944 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13945 }, 13946 { 13947 "$ref": "#/components/parameters/project_id" 13948 }, 13949 { 13950 "$ref": "#/components/parameters/id" 13951 } 13952 ], 13953 "responses": { 13954 "204": { 13955 "$ref": "#/components/responses/204" 13956 }, 13957 "400": { 13958 "$ref": "#/components/responses/400" 13959 }, 13960 "404": { 13961 "$ref": "#/components/responses/404" 13962 }, 13963 "429": { 13964 "$ref": "#/components/responses/429" 13965 } 13966 }, 13967 "x-code-samples": [ 13968 { 13969 "lang": "Curl", 13970 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 13971 }, 13972 { 13973 "lang": "CLI v2", 13974 "source": "phrase webhooks delete \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 13975 } 13976 ], 13977 "x-cli-version": "2.5" 13978 } 13979 }, 13980 "/projects/{project_id}/webhooks/{id}/test": { 13981 "post": { 13982 "summary": "Test a webhook", 13983 "description": "Perform a test request for a webhook.", 13984 "operationId": "webhook/test", 13985 "tags": [ 13986 "Webhooks" 13987 ], 13988 "parameters": [ 13989 { 13990 "$ref": "#/components/parameters/X-PhraseApp-OTP" 13991 }, 13992 { 13993 "$ref": "#/components/parameters/project_id" 13994 }, 13995 { 13996 "$ref": "#/components/parameters/id" 13997 } 13998 ], 13999 "responses": { 14000 "200": { 14001 "description": "OK", 14002 "headers": { 14003 "X-Rate-Limit-Limit": { 14004 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14005 }, 14006 "X-Rate-Limit-Remaining": { 14007 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14008 }, 14009 "X-Rate-Limit-Reset": { 14010 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14011 } 14012 } 14013 }, 14014 "400": { 14015 "$ref": "#/components/responses/400" 14016 }, 14017 "404": { 14018 "$ref": "#/components/responses/404" 14019 }, 14020 "429": { 14021 "$ref": "#/components/responses/429" 14022 } 14023 }, 14024 "x-code-samples": [ 14025 { 14026 "lang": "Curl", 14027 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:id/test\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST" 14028 }, 14029 { 14030 "lang": "CLI v2", 14031 "source": "phrase webhooks test \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 14032 } 14033 ], 14034 "x-cli-version": "2.5" 14035 } 14036 }, 14037 "/projects/{project_id}/uploads": { 14038 "post": { 14039 "summary": "Upload a new file", 14040 "description": "Upload a new language file. Creates necessary resources in your project.", 14041 "operationId": "upload/create", 14042 "tags": [ 14043 "Uploads" 14044 ], 14045 "parameters": [ 14046 { 14047 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14048 }, 14049 { 14050 "$ref": "#/components/parameters/project_id" 14051 } 14052 ], 14053 "responses": { 14054 "201": { 14055 "description": "Created", 14056 "content": { 14057 "application/json": { 14058 "schema": { 14059 "$ref": "#/components/schemas/upload" 14060 } 14061 } 14062 }, 14063 "headers": { 14064 "X-Rate-Limit-Limit": { 14065 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14066 }, 14067 "X-Rate-Limit-Remaining": { 14068 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14069 }, 14070 "X-Rate-Limit-Reset": { 14071 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14072 } 14073 } 14074 }, 14075 "400": { 14076 "$ref": "#/components/responses/400" 14077 }, 14078 "404": { 14079 "$ref": "#/components/responses/404" 14080 }, 14081 "429": { 14082 "$ref": "#/components/responses/429" 14083 } 14084 }, 14085 "x-code-samples": [ 14086 { 14087 "lang": "Curl", 14088 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/uploads\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F branch=my-feature-branch \\\n -F file=@/path/to/my/file.json \\\n -F file_format=json \\\n -F locale_id=abcd1234cdef1234abcd1234cdef1234 \\\n -F tags=awesome-feature,needs-proofreading \\\n -F locale_mapping[en]=2 \\\n -F format_options[foo]=bar" 14089 }, 14090 { 14091 "lang": "CLI v2", 14092 "source": "phrase uploads create \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--file /path/to/my/file.json \\\n--file_format json \\\n--locale_id abcd1234cdef1234abcd1234cdef1234 \\\n--tags awesome-feature,needs-proofreading \\\n--locale_mapping '{\"en\": \"2\"}' \\\n--format_options '{\"foo\": \"bar\"}' \\\n--access_token <token>" 14093 } 14094 ], 14095 "requestBody": { 14096 "required": true, 14097 "content": { 14098 "multipart/form-data": { 14099 "schema": { 14100 "type": "object", 14101 "title": "upload/create/parameters", 14102 "required": [ 14103 "file", 14104 "file_format", 14105 "locale_id" 14106 ], 14107 "properties": { 14108 "branch": { 14109 "description": "specify the branch to use", 14110 "type": "string", 14111 "example": "my-feature-branch" 14112 }, 14113 "file": { 14114 "description": "File to be imported", 14115 "type": "string", 14116 "format": "binary", 14117 "example": "/path/to/my/file.json" 14118 }, 14119 "file_format": { 14120 "description": "File format. Auto-detected when possible and not specified.", 14121 "type": "string", 14122 "example": "json" 14123 }, 14124 "locale_id": { 14125 "description": "Locale of the file's content. Can be the name or id of the locale. Preferred is id.", 14126 "type": "string", 14127 "example": "abcd1234cdef1234abcd1234cdef1234" 14128 }, 14129 "tags": { 14130 "description": "List of tags separated by comma to be associated with the new keys contained in the upload.", 14131 "type": "string", 14132 "example": "awesome-feature,needs-proofreading" 14133 }, 14134 "update_translations": { 14135 "description": "Indicates whether existing translations should be updated with the file content.", 14136 "type": "boolean", 14137 "example": null 14138 }, 14139 "update_translation_keys": { 14140 "description": "Pass `false` here to prevent new keys from being created and existing keys updated.", 14141 "type": "boolean", 14142 "default": true, 14143 "example": null 14144 }, 14145 "update_descriptions": { 14146 "description": "Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions.", 14147 "type": "boolean", 14148 "example": null 14149 }, 14150 "convert_emoji": { 14151 "description": "This option is obsolete. Providing the option will cause a bad request error.", 14152 "type": "boolean", 14153 "example": null, 14154 "deprecated": true 14155 }, 14156 "skip_upload_tags": { 14157 "description": "Indicates whether the upload should not create upload tags.", 14158 "type": "boolean", 14159 "example": null 14160 }, 14161 "skip_unverification": { 14162 "description": "Indicates whether the upload should unverify updated translations.", 14163 "type": "boolean", 14164 "example": null 14165 }, 14166 "file_encoding": { 14167 "description": "Enforces a specific encoding on the file contents. Valid options are \"UTF-8\", \"UTF-16\" and \"ISO-8859-1\".", 14168 "type": "string", 14169 "example": null 14170 }, 14171 "locale_mapping": { 14172 "description": "Mapping between locale names and translation columns. Required in some formats like CSV or XLSX.", 14173 "type": "object", 14174 "properties": {}, 14175 "example": "{\"en\": \"2\"}" 14176 }, 14177 "format_options": { 14178 "description": "Additional options available for specific formats. See our format guide for complete list.", 14179 "type": "object", 14180 "properties": {}, 14181 "example": "{\"foo\": \"bar\"}" 14182 }, 14183 "autotranslate": { 14184 "description": "If set, translations for the uploaded language will be fetched automatically.", 14185 "type": "boolean", 14186 "example": null 14187 }, 14188 "mark_reviewed": { 14189 "description": "Indicated whether the imported translations should be marked as reviewed. This setting is available if the review workflow is enabled for the project.", 14190 "type": "boolean", 14191 "example": null 14192 }, 14193 "tag_only_affected_keys": { 14194 "description": "Indicates whether only keys affected (created or updated) by the upload should be tagged. The default is `false`", 14195 "type": "boolean", 14196 "default": false, 14197 "example": null 14198 } 14199 } 14200 } 14201 } 14202 } 14203 }, 14204 "x-cli-version": "2.12" 14205 }, 14206 "get": { 14207 "summary": "List uploads", 14208 "description": "List all uploads for the given project.", 14209 "operationId": "uploads/list", 14210 "tags": [ 14211 "Uploads" 14212 ], 14213 "parameters": [ 14214 { 14215 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14216 }, 14217 { 14218 "$ref": "#/components/parameters/project_id" 14219 }, 14220 { 14221 "$ref": "#/components/parameters/page" 14222 }, 14223 { 14224 "$ref": "#/components/parameters/per_page" 14225 }, 14226 { 14227 "description": "specify the branch to use", 14228 "example": "my-feature-branch", 14229 "name": "branch", 14230 "in": "query", 14231 "schema": { 14232 "type": "string" 14233 } 14234 } 14235 ], 14236 "responses": { 14237 "200": { 14238 "description": "OK", 14239 "content": { 14240 "application/json": { 14241 "schema": { 14242 "type": "array", 14243 "items": { 14244 "$ref": "#/components/schemas/upload" 14245 } 14246 } 14247 } 14248 }, 14249 "headers": { 14250 "X-Rate-Limit-Limit": { 14251 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14252 }, 14253 "X-Rate-Limit-Remaining": { 14254 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14255 }, 14256 "X-Rate-Limit-Reset": { 14257 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14258 }, 14259 "Link": { 14260 "$ref": "#/components/headers/Link" 14261 }, 14262 "Pagination": { 14263 "$ref": "#/components/headers/Pagination" 14264 } 14265 } 14266 }, 14267 "400": { 14268 "$ref": "#/components/responses/400" 14269 }, 14270 "404": { 14271 "$ref": "#/components/responses/404" 14272 }, 14273 "429": { 14274 "$ref": "#/components/responses/429" 14275 } 14276 }, 14277 "x-code-samples": [ 14278 { 14279 "lang": "Curl", 14280 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/uploads?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 14281 }, 14282 { 14283 "lang": "CLI v2", 14284 "source": "phrase uploads list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 14285 } 14286 ], 14287 "x-cli-version": "2.5" 14288 } 14289 }, 14290 "/projects/{project_id}/uploads/{id}": { 14291 "get": { 14292 "summary": "Get a single upload", 14293 "description": "View details and summary for a single upload.", 14294 "operationId": "upload/show", 14295 "tags": [ 14296 "Uploads" 14297 ], 14298 "parameters": [ 14299 { 14300 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14301 }, 14302 { 14303 "$ref": "#/components/parameters/project_id" 14304 }, 14305 { 14306 "$ref": "#/components/parameters/id" 14307 }, 14308 { 14309 "description": "specify the branch to use", 14310 "example": "my-feature-branch", 14311 "name": "branch", 14312 "in": "query", 14313 "schema": { 14314 "type": "string" 14315 } 14316 } 14317 ], 14318 "responses": { 14319 "200": { 14320 "description": "OK", 14321 "content": { 14322 "application/json": { 14323 "schema": { 14324 "$ref": "#/components/schemas/upload" 14325 } 14326 } 14327 }, 14328 "headers": { 14329 "X-Rate-Limit-Limit": { 14330 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14331 }, 14332 "X-Rate-Limit-Remaining": { 14333 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14334 }, 14335 "X-Rate-Limit-Reset": { 14336 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14337 } 14338 } 14339 }, 14340 "400": { 14341 "$ref": "#/components/responses/400" 14342 }, 14343 "404": { 14344 "$ref": "#/components/responses/404" 14345 }, 14346 "429": { 14347 "$ref": "#/components/responses/429" 14348 } 14349 }, 14350 "x-code-samples": [ 14351 { 14352 "lang": "Curl", 14353 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/uploads/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 14354 }, 14355 { 14356 "lang": "CLI v2", 14357 "source": "phrase uploads show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 14358 } 14359 ], 14360 "x-cli-version": "2.5" 14361 } 14362 }, 14363 "/github_syncs/export": { 14364 "post": { 14365 "summary": "Export from Phrase Strings to GitHub", 14366 "description": "Export translations from Phrase Strings to GitHub according to the .phraseapp.yml file within the GitHub repository. <br><br><i>Note: Export is done asynchronously and may take several seconds depending on the project size.</i>", 14367 "operationId": "github_sync/export", 14368 "tags": [ 14369 "GitHub Sync" 14370 ], 14371 "parameters": [ 14372 { 14373 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14374 } 14375 ], 14376 "responses": { 14377 "200": { 14378 "description": "OK", 14379 "headers": { 14380 "X-Rate-Limit-Limit": { 14381 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14382 }, 14383 "X-Rate-Limit-Remaining": { 14384 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14385 }, 14386 "X-Rate-Limit-Reset": { 14387 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14388 } 14389 } 14390 }, 14391 "400": { 14392 "$ref": "#/components/responses/400" 14393 }, 14394 "404": { 14395 "$ref": "#/components/responses/404" 14396 }, 14397 "422": { 14398 "$ref": "#/components/responses/422" 14399 }, 14400 "429": { 14401 "$ref": "#/components/responses/429" 14402 } 14403 }, 14404 "x-code-samples": [ 14405 { 14406 "lang": "Curl", 14407 "source": "curl \"https://api.phrase.com/v2/github_syncs/export\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"project_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 14408 }, 14409 { 14410 "lang": "CLI v2", 14411 "source": "UNAVAILABLE" 14412 } 14413 ], 14414 "requestBody": { 14415 "required": true, 14416 "content": { 14417 "application/json": { 14418 "schema": { 14419 "type": "object", 14420 "title": "github_sync/export/parameters", 14421 "properties": { 14422 "project_id": { 14423 "description": "Project ID to specify the actual project the GitHub export should be triggered in.", 14424 "type": "string", 14425 "example": "abcd1234" 14426 } 14427 } 14428 } 14429 } 14430 } 14431 }, 14432 "x-cli-version": "2.5" 14433 } 14434 }, 14435 "/github_syncs/import": { 14436 "post": { 14437 "summary": "Import to Phrase Strings from GitHub", 14438 "description": "Import files to Phrase Strings from your connected GitHub repository. <br><br><i>Note: Import is done asynchronously and may take several seconds depending on the project size.</i>", 14439 "operationId": "github_sync/import", 14440 "tags": [ 14441 "GitHub Sync" 14442 ], 14443 "parameters": [ 14444 { 14445 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14446 } 14447 ], 14448 "responses": { 14449 "200": { 14450 "description": "OK", 14451 "headers": { 14452 "X-Rate-Limit-Limit": { 14453 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14454 }, 14455 "X-Rate-Limit-Remaining": { 14456 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14457 }, 14458 "X-Rate-Limit-Reset": { 14459 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14460 } 14461 } 14462 }, 14463 "400": { 14464 "$ref": "#/components/responses/400" 14465 }, 14466 "404": { 14467 "$ref": "#/components/responses/404" 14468 }, 14469 "422": { 14470 "$ref": "#/components/responses/422" 14471 }, 14472 "429": { 14473 "$ref": "#/components/responses/429" 14474 } 14475 }, 14476 "x-code-samples": [ 14477 { 14478 "lang": "Curl", 14479 "source": "curl \"https://api.phrase.com/v2/github_syncs/import\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"project_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 14480 }, 14481 { 14482 "lang": "CLI v2", 14483 "source": "UNAVAILABLE" 14484 } 14485 ], 14486 "requestBody": { 14487 "required": true, 14488 "content": { 14489 "application/json": { 14490 "schema": { 14491 "type": "object", 14492 "title": "github_sync/import/parameters", 14493 "properties": { 14494 "project_id": { 14495 "description": "Project ID to specify the actual project the GitHub import should be triggered in.", 14496 "type": "string", 14497 "example": "abcd1234" 14498 } 14499 } 14500 } 14501 } 14502 } 14503 }, 14504 "x-cli-version": "2.5" 14505 } 14506 }, 14507 "/gitlab_syncs": { 14508 "get": { 14509 "summary": "List GitLab syncs", 14510 "description": "List all GitLab Sync Settings for which synchronisation with Phrase Strings and GitLab is activated.", 14511 "operationId": "gitlab_sync/list", 14512 "tags": [ 14513 "GitLab Sync" 14514 ], 14515 "parameters": [ 14516 { 14517 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14518 }, 14519 { 14520 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14521 "example": "abcd1234", 14522 "name": "account_id", 14523 "in": "query", 14524 "schema": { 14525 "type": "string" 14526 } 14527 } 14528 ], 14529 "responses": { 14530 "200": { 14531 "description": "OK", 14532 "content": { 14533 "application/json": { 14534 "schema": { 14535 "type": "array", 14536 "items": { 14537 "$ref": "#/components/schemas/gitlab_sync" 14538 } 14539 } 14540 } 14541 }, 14542 "headers": { 14543 "X-Rate-Limit-Limit": { 14544 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14545 }, 14546 "X-Rate-Limit-Remaining": { 14547 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14548 }, 14549 "X-Rate-Limit-Reset": { 14550 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14551 }, 14552 "Link": { 14553 "$ref": "#/components/headers/Link" 14554 }, 14555 "Pagination": { 14556 "$ref": "#/components/headers/Pagination" 14557 } 14558 } 14559 }, 14560 "400": { 14561 "$ref": "#/components/responses/400" 14562 }, 14563 "404": { 14564 "$ref": "#/components/responses/404" 14565 }, 14566 "429": { 14567 "$ref": "#/components/responses/429" 14568 } 14569 }, 14570 "x-code-samples": [ 14571 { 14572 "lang": "Curl", 14573 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs?account_id=abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 14574 }, 14575 { 14576 "lang": "CLI v2", 14577 "source": "phrase git_lab_sync list \\\n--account_id abcd1234 \\\n--access_token <token>" 14578 } 14579 ], 14580 "x-cli-version": "2.5" 14581 } 14582 }, 14583 "/gitlab_syncs/{id}": { 14584 "get": { 14585 "summary": "Get single Sync Setting", 14586 "description": "Shows a single GitLab Sync Setting.", 14587 "operationId": "gitlab_sync/show", 14588 "tags": [ 14589 "GitLab Sync" 14590 ], 14591 "parameters": [ 14592 { 14593 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14594 }, 14595 { 14596 "$ref": "#/components/parameters/id" 14597 }, 14598 { 14599 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14600 "example": "abcd1234", 14601 "name": "account_id", 14602 "in": "query", 14603 "schema": { 14604 "type": "string" 14605 } 14606 } 14607 ], 14608 "responses": { 14609 "200": { 14610 "description": "OK", 14611 "content": { 14612 "application/json": { 14613 "schema": { 14614 "$ref": "#/components/schemas/gitlab_sync" 14615 } 14616 } 14617 }, 14618 "headers": { 14619 "X-Rate-Limit-Limit": { 14620 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14621 }, 14622 "X-Rate-Limit-Remaining": { 14623 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14624 }, 14625 "X-Rate-Limit-Reset": { 14626 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14627 } 14628 } 14629 }, 14630 "400": { 14631 "$ref": "#/components/responses/400" 14632 }, 14633 "404": { 14634 "$ref": "#/components/responses/404" 14635 }, 14636 "429": { 14637 "$ref": "#/components/responses/429" 14638 } 14639 }, 14640 "x-code-samples": [ 14641 { 14642 "lang": "Curl", 14643 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:id?account_id=abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 14644 }, 14645 { 14646 "lang": "CLI v2", 14647 "source": "phrase git_lab_sync show \\\n--id <id> \\\n--account_id abcd1234 \\\n--access_token <token>" 14648 } 14649 ], 14650 "x-cli-version": "2.5" 14651 }, 14652 "put": { 14653 "summary": "Update single Sync Setting", 14654 "description": "Updates a single GitLab Sync Setting.", 14655 "operationId": "gitlab_sync/update", 14656 "tags": [ 14657 "GitLab Sync" 14658 ], 14659 "parameters": [ 14660 { 14661 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14662 }, 14663 { 14664 "$ref": "#/components/parameters/id" 14665 }, 14666 { 14667 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14668 "example": "abcd1234", 14669 "name": "account_id", 14670 "in": "query", 14671 "schema": { 14672 "type": "string" 14673 } 14674 }, 14675 { 14676 "description": "Code of the related Phrase Strings Project.", 14677 "example": "3456abcd", 14678 "name": "phrase_project_code", 14679 "in": "query", 14680 "schema": { 14681 "type": "string" 14682 } 14683 }, 14684 { 14685 "description": "ID of the related GitLab Project.", 14686 "example": 12345, 14687 "name": "gitlab_project_id", 14688 "in": "query", 14689 "schema": { 14690 "type": "integer" 14691 } 14692 }, 14693 { 14694 "description": "Name of the GitLab Branch.", 14695 "example": "feature-development", 14696 "name": "gitlab_branch_name", 14697 "in": "query", 14698 "schema": { 14699 "type": "string" 14700 } 14701 } 14702 ], 14703 "responses": { 14704 "200": { 14705 "description": "OK", 14706 "content": { 14707 "application/json": { 14708 "schema": { 14709 "$ref": "#/components/schemas/gitlab_sync" 14710 } 14711 } 14712 }, 14713 "headers": { 14714 "X-Rate-Limit-Limit": { 14715 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14716 }, 14717 "X-Rate-Limit-Remaining": { 14718 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14719 }, 14720 "X-Rate-Limit-Reset": { 14721 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14722 } 14723 } 14724 }, 14725 "400": { 14726 "$ref": "#/components/responses/400" 14727 }, 14728 "404": { 14729 "$ref": "#/components/responses/404" 14730 }, 14731 "429": { 14732 "$ref": "#/components/responses/429" 14733 } 14734 }, 14735 "x-code-samples": [ 14736 { 14737 "lang": "Curl", 14738 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PUT \\\n -d '{\"account_id\":\"abcd1234\",\"phrase_project_code\":\"3456abcd\",\"gitlab_project_id\":12345,\"gitlab_branch_name\":\"feature-development\"}' \\\n -H 'Content-Type: application/json'" 14739 }, 14740 { 14741 "lang": "CLI v2", 14742 "source": "phrase git_lab_sync update \\\n--id <id> \\\n--data '{\"account_id\":\"abcd1234\", \"phrase_project_code\":\"3456abcd\", \"gitlab_project_id\":\"12345\", \"gitlab_branch_name\":\"feature-development\"}' \\\n--access_token <token>" 14743 } 14744 ], 14745 "x-cli-version": "2.5" 14746 }, 14747 "delete": { 14748 "summary": "Delete single Sync Setting", 14749 "description": "Deletes a single GitLab Sync Setting.", 14750 "operationId": "gitlab_sync/delete", 14751 "tags": [ 14752 "GitLab Sync" 14753 ], 14754 "parameters": [ 14755 { 14756 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14757 }, 14758 { 14759 "$ref": "#/components/parameters/id" 14760 }, 14761 { 14762 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14763 "example": "abcd1234", 14764 "name": "account_id", 14765 "in": "query", 14766 "schema": { 14767 "type": "string" 14768 } 14769 } 14770 ], 14771 "responses": { 14772 "204": { 14773 "$ref": "#/components/responses/204" 14774 }, 14775 "400": { 14776 "$ref": "#/components/responses/400" 14777 }, 14778 "404": { 14779 "$ref": "#/components/responses/404" 14780 }, 14781 "429": { 14782 "$ref": "#/components/responses/429" 14783 } 14784 }, 14785 "x-code-samples": [ 14786 { 14787 "lang": "Curl", 14788 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"account_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 14789 }, 14790 { 14791 "lang": "CLI v2", 14792 "source": "phrase git_lab_sync delete \\\n--id <id> \\\n--account_id abcd1234 \\\n--access_token <token>" 14793 } 14794 ], 14795 "x-cli-version": "2.5" 14796 } 14797 }, 14798 "/gitlab_syncs/{gitlab_sync_id}/import": { 14799 "post": { 14800 "summary": "Import from GitLab to Phrase", 14801 "description": "Import translations from GitLab to Phrase Strings according to the .phraseapp.yml file within the GitLab repository. <br><br><i>Note: Import is done asynchronously and may take several seconds depending on the project size.</i>", 14802 "operationId": "gitlab_sync/import", 14803 "tags": [ 14804 "GitLab Sync" 14805 ], 14806 "parameters": [ 14807 { 14808 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14809 }, 14810 { 14811 "$ref": "#/components/parameters/gitlab_sync_id" 14812 } 14813 ], 14814 "responses": { 14815 "200": { 14816 "description": "OK", 14817 "content": { 14818 "application/json": { 14819 "schema": { 14820 "type": "array", 14821 "items": { 14822 "$ref": "#/components/schemas/upload" 14823 } 14824 } 14825 } 14826 }, 14827 "headers": { 14828 "X-Rate-Limit-Limit": { 14829 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14830 }, 14831 "X-Rate-Limit-Remaining": { 14832 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14833 }, 14834 "X-Rate-Limit-Reset": { 14835 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14836 }, 14837 "Link": { 14838 "$ref": "#/components/headers/Link" 14839 }, 14840 "Pagination": { 14841 "$ref": "#/components/headers/Pagination" 14842 } 14843 } 14844 }, 14845 "400": { 14846 "$ref": "#/components/responses/400" 14847 }, 14848 "404": { 14849 "$ref": "#/components/responses/404" 14850 }, 14851 "429": { 14852 "$ref": "#/components/responses/429" 14853 } 14854 }, 14855 "x-code-samples": [ 14856 { 14857 "lang": "Curl", 14858 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:gitlab_sync_id/import\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"account_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 14859 }, 14860 { 14861 "lang": "CLI v2", 14862 "source": "phrase git_lab_sync import \\\n--gitlab_sync_id <gitlab_sync_id> \\\n--data '{\"account_id\":\"abcd1234\"}' \\\n--access_token <token>" 14863 } 14864 ], 14865 "requestBody": { 14866 "required": true, 14867 "content": { 14868 "application/json": { 14869 "schema": { 14870 "type": "object", 14871 "title": "gitlab_sync/import/parameters", 14872 "properties": { 14873 "account_id": { 14874 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14875 "type": "string", 14876 "example": "abcd1234" 14877 } 14878 } 14879 } 14880 } 14881 } 14882 }, 14883 "x-cli-version": "2.5" 14884 } 14885 }, 14886 "/gitlab_syncs/{gitlab_sync_id}/export": { 14887 "post": { 14888 "summary": "Export from Phrase Strings to GitLab", 14889 "description": "Export translations from Phrase Strings to GitLab according to the .phraseapp.yml file within the GitLab repository. <br><br><i>Note: Export is done asynchronously and may take several seconds depending on the project size.</i>", 14890 "operationId": "gitlab_sync/export", 14891 "tags": [ 14892 "GitLab Sync" 14893 ], 14894 "parameters": [ 14895 { 14896 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14897 }, 14898 { 14899 "$ref": "#/components/parameters/gitlab_sync_id" 14900 } 14901 ], 14902 "responses": { 14903 "200": { 14904 "description": "OK", 14905 "content": { 14906 "application/json": { 14907 "schema": { 14908 "$ref": "#/components/schemas/gitlab_sync_export" 14909 } 14910 } 14911 }, 14912 "headers": { 14913 "X-Rate-Limit-Limit": { 14914 "$ref": "#/components/headers/X-Rate-Limit-Limit" 14915 }, 14916 "X-Rate-Limit-Remaining": { 14917 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 14918 }, 14919 "X-Rate-Limit-Reset": { 14920 "$ref": "#/components/headers/X-Rate-Limit-Reset" 14921 } 14922 } 14923 }, 14924 "400": { 14925 "$ref": "#/components/responses/400" 14926 }, 14927 "404": { 14928 "$ref": "#/components/responses/404" 14929 }, 14930 "429": { 14931 "$ref": "#/components/responses/429" 14932 } 14933 }, 14934 "x-code-samples": [ 14935 { 14936 "lang": "Curl", 14937 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:gitlab_sync_id/export\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"account_id\":\"abcd1234\"}' \\\n -H 'Content-Type: application/json'" 14938 }, 14939 { 14940 "lang": "CLI v2", 14941 "source": "phrase git_lab_sync export \\\n--gitlab_sync_id <gitlab_sync_id> \\\n--data '{\"account_id\":\"abcd1234\"}' \\\n--access_token <token>" 14942 } 14943 ], 14944 "requestBody": { 14945 "required": true, 14946 "content": { 14947 "application/json": { 14948 "schema": { 14949 "type": "object", 14950 "title": "gitlab_sync/export/parameters", 14951 "properties": { 14952 "account_id": { 14953 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14954 "type": "string", 14955 "example": "abcd1234" 14956 } 14957 } 14958 } 14959 } 14960 } 14961 }, 14962 "x-cli-version": "2.5" 14963 } 14964 }, 14965 "/gitlab_syncs/{gitlab_sync_id}/history": { 14966 "get": { 14967 "summary": "History of single Sync Setting", 14968 "description": "List history for a single Sync Setting.", 14969 "operationId": "gitlab_sync/history", 14970 "tags": [ 14971 "GitLab Sync" 14972 ], 14973 "parameters": [ 14974 { 14975 "$ref": "#/components/parameters/X-PhraseApp-OTP" 14976 }, 14977 { 14978 "$ref": "#/components/parameters/gitlab_sync_id" 14979 }, 14980 { 14981 "$ref": "#/components/parameters/page" 14982 }, 14983 { 14984 "$ref": "#/components/parameters/per_page" 14985 }, 14986 { 14987 "description": "Account ID to specify the actual account the GitLab Sync should be created in. Required if the requesting user is a member of multiple accounts.", 14988 "example": "abcd1234", 14989 "name": "account_id", 14990 "in": "query", 14991 "schema": { 14992 "type": "string" 14993 } 14994 } 14995 ], 14996 "responses": { 14997 "200": { 14998 "description": "OK", 14999 "content": { 15000 "application/json": { 15001 "schema": { 15002 "type": "array", 15003 "items": { 15004 "$ref": "#/components/schemas/gitlab_sync_history" 15005 } 15006 } 15007 } 15008 }, 15009 "headers": { 15010 "X-Rate-Limit-Limit": { 15011 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15012 }, 15013 "X-Rate-Limit-Remaining": { 15014 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15015 }, 15016 "X-Rate-Limit-Reset": { 15017 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15018 }, 15019 "Link": { 15020 "$ref": "#/components/headers/Link" 15021 }, 15022 "Pagination": { 15023 "$ref": "#/components/headers/Pagination" 15024 } 15025 } 15026 }, 15027 "400": { 15028 "$ref": "#/components/responses/400" 15029 }, 15030 "404": { 15031 "$ref": "#/components/responses/404" 15032 }, 15033 "429": { 15034 "$ref": "#/components/responses/429" 15035 } 15036 }, 15037 "x-code-samples": [ 15038 { 15039 "lang": "Curl", 15040 "source": "curl \"https://api.phrase.com/v2/gitlab_syncs/:gitlab_sync_id/history?account_id=abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 15041 }, 15042 { 15043 "lang": "CLI v2", 15044 "source": "phrase gitlab_syncs history \\\n--gitlab_sync_id <gitlab_sync_id> \\\n--account_id abcd1234 \\\n--access_token <token>" 15045 } 15046 ], 15047 "x-cli-version": "2.5" 15048 } 15049 }, 15050 "/projects/{project_id}/translations/{translation_id}/versions": { 15051 "get": { 15052 "summary": "List all versions", 15053 "description": "List all changes done to a given translation.", 15054 "operationId": "versions/list", 15055 "tags": [ 15056 "Versions / History" 15057 ], 15058 "parameters": [ 15059 { 15060 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15061 }, 15062 { 15063 "$ref": "#/components/parameters/project_id" 15064 }, 15065 { 15066 "$ref": "#/components/parameters/translation_id" 15067 }, 15068 { 15069 "$ref": "#/components/parameters/page" 15070 }, 15071 { 15072 "$ref": "#/components/parameters/per_page" 15073 }, 15074 { 15075 "description": "specify the branch to use", 15076 "example": "my-feature-branch", 15077 "name": "branch", 15078 "in": "query", 15079 "schema": { 15080 "type": "string" 15081 } 15082 } 15083 ], 15084 "responses": { 15085 "200": { 15086 "description": "OK", 15087 "content": { 15088 "application/json": { 15089 "schema": { 15090 "type": "array", 15091 "items": { 15092 "$ref": "#/components/schemas/translation_version" 15093 } 15094 } 15095 } 15096 }, 15097 "headers": { 15098 "X-Rate-Limit-Limit": { 15099 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15100 }, 15101 "X-Rate-Limit-Remaining": { 15102 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15103 }, 15104 "X-Rate-Limit-Reset": { 15105 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15106 }, 15107 "Link": { 15108 "$ref": "#/components/headers/Link" 15109 }, 15110 "Pagination": { 15111 "$ref": "#/components/headers/Pagination" 15112 } 15113 } 15114 }, 15115 "400": { 15116 "$ref": "#/components/responses/400" 15117 }, 15118 "404": { 15119 "$ref": "#/components/responses/404" 15120 }, 15121 "429": { 15122 "$ref": "#/components/responses/429" 15123 } 15124 }, 15125 "x-code-samples": [ 15126 { 15127 "lang": "Curl", 15128 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:translation_id/versions?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 15129 }, 15130 { 15131 "lang": "CLI v2", 15132 "source": "phrase versions list \\\n--project_id <project_id> \\\n--translation_id <translation_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 15133 } 15134 ], 15135 "x-cli-version": "2.5" 15136 } 15137 }, 15138 "/projects/{project_id}/translations/{translation_id}/versions/{id}": { 15139 "get": { 15140 "summary": "Get a single version", 15141 "description": "Get details on a single version.", 15142 "operationId": "version/show", 15143 "tags": [ 15144 "Versions / History" 15145 ], 15146 "parameters": [ 15147 { 15148 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15149 }, 15150 { 15151 "$ref": "#/components/parameters/project_id" 15152 }, 15153 { 15154 "$ref": "#/components/parameters/translation_id" 15155 }, 15156 { 15157 "$ref": "#/components/parameters/id" 15158 }, 15159 { 15160 "description": "specify the branch to use", 15161 "example": "my-feature-branch", 15162 "name": "branch", 15163 "in": "query", 15164 "schema": { 15165 "type": "string" 15166 } 15167 } 15168 ], 15169 "responses": { 15170 "200": { 15171 "description": "OK", 15172 "content": { 15173 "application/json": { 15174 "schema": { 15175 "$ref": "#/components/schemas/translation_version_with_user" 15176 } 15177 } 15178 }, 15179 "headers": { 15180 "X-Rate-Limit-Limit": { 15181 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15182 }, 15183 "X-Rate-Limit-Remaining": { 15184 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15185 }, 15186 "X-Rate-Limit-Reset": { 15187 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15188 } 15189 } 15190 }, 15191 "400": { 15192 "$ref": "#/components/responses/400" 15193 }, 15194 "404": { 15195 "$ref": "#/components/responses/404" 15196 }, 15197 "429": { 15198 "$ref": "#/components/responses/429" 15199 } 15200 }, 15201 "x-code-samples": [ 15202 { 15203 "lang": "Curl", 15204 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:translation_id/versions/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 15205 }, 15206 { 15207 "lang": "CLI v2", 15208 "source": "phrase versions show \\\n--project_id <project_id> \\\n--translation_id <translation_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 15209 } 15210 ], 15211 "x-cli-version": "2.5" 15212 } 15213 }, 15214 "/accounts/{account_id}/glossaries/{glossary_id}/terms/{term_id}/translations": { 15215 "post": { 15216 "summary": "Create a translation for a term", 15217 "description": "Create a new translation for a term in a term base (previously: glossary).", 15218 "operationId": "glossary_term_translation/create", 15219 "tags": [ 15220 "Glossary Term Translations" 15221 ], 15222 "parameters": [ 15223 { 15224 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15225 }, 15226 { 15227 "$ref": "#/components/parameters/account_id" 15228 }, 15229 { 15230 "$ref": "#/components/parameters/glossary_id" 15231 }, 15232 { 15233 "$ref": "#/components/parameters/term_id" 15234 } 15235 ], 15236 "responses": { 15237 "201": { 15238 "description": "Created", 15239 "content": { 15240 "application/json": { 15241 "schema": { 15242 "$ref": "#/components/schemas/glossary_term_translation" 15243 } 15244 } 15245 }, 15246 "headers": { 15247 "X-Rate-Limit-Limit": { 15248 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15249 }, 15250 "X-Rate-Limit-Remaining": { 15251 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15252 }, 15253 "X-Rate-Limit-Reset": { 15254 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15255 } 15256 } 15257 }, 15258 "400": { 15259 "$ref": "#/components/responses/400" 15260 }, 15261 "404": { 15262 "$ref": "#/components/responses/404" 15263 }, 15264 "429": { 15265 "$ref": "#/components/responses/429" 15266 } 15267 }, 15268 "x-code-samples": [ 15269 { 15270 "lang": "Curl", 15271 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"locale_code\":\"en-US\",\"content\":\"My translated term\"}' \\\n -H 'Content-Type: application/json'" 15272 }, 15273 { 15274 "lang": "CLI v2", 15275 "source": "phrase glossary_term_translations create \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--term_id <term_id> \\\n--data '{\"locale_code\":\"en-US\", \"content\": \"My translated term\"}' \\\n--access_token <token>" 15276 } 15277 ], 15278 "requestBody": { 15279 "required": true, 15280 "content": { 15281 "application/json": { 15282 "schema": { 15283 "type": "object", 15284 "title": "glossary_term_translation/create/parameters", 15285 "required": [ 15286 "locale_code", 15287 "content" 15288 ], 15289 "properties": { 15290 "locale_code": { 15291 "description": "Identifies the language for this translation", 15292 "type": "string", 15293 "example": "en-US" 15294 }, 15295 "content": { 15296 "description": "The content of the translation", 15297 "type": "string", 15298 "example": "My translated term" 15299 } 15300 } 15301 } 15302 } 15303 } 15304 }, 15305 "x-cli-version": "2.5" 15306 } 15307 }, 15308 "/accounts/{account_id}/glossaries/{glossary_id}/terms/{term_id}/translations/{id}": { 15309 "patch": { 15310 "summary": "Update a translation for a term", 15311 "description": "Update an existing translation for a term in a term base (previously: glossary).", 15312 "operationId": "glossary_term_translation/update", 15313 "tags": [ 15314 "Glossary Term Translations" 15315 ], 15316 "parameters": [ 15317 { 15318 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15319 }, 15320 { 15321 "$ref": "#/components/parameters/account_id" 15322 }, 15323 { 15324 "$ref": "#/components/parameters/glossary_id" 15325 }, 15326 { 15327 "$ref": "#/components/parameters/term_id" 15328 }, 15329 { 15330 "$ref": "#/components/parameters/id" 15331 } 15332 ], 15333 "responses": { 15334 "200": { 15335 "description": "OK", 15336 "content": { 15337 "application/json": { 15338 "schema": { 15339 "$ref": "#/components/schemas/glossary_term_translation" 15340 } 15341 } 15342 }, 15343 "headers": { 15344 "X-Rate-Limit-Limit": { 15345 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15346 }, 15347 "X-Rate-Limit-Remaining": { 15348 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15349 }, 15350 "X-Rate-Limit-Reset": { 15351 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15352 } 15353 } 15354 }, 15355 "400": { 15356 "$ref": "#/components/responses/400" 15357 }, 15358 "404": { 15359 "$ref": "#/components/responses/404" 15360 }, 15361 "429": { 15362 "$ref": "#/components/responses/429" 15363 } 15364 }, 15365 "x-code-samples": [ 15366 { 15367 "lang": "Curl", 15368 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"locale_code\":\"en-US\",\"content\":\"My translated term\"}' \\\n -H 'Content-Type: application/json'" 15369 }, 15370 { 15371 "lang": "CLI v2", 15372 "source": "phrase glossary_term_translations update \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--term_id <term_id> \\\n--id <id> \\\n--data '{\"locale_code\":\"en-US\", \"content\": \"My translated term\"}' \\\n--access_token <token>" 15373 } 15374 ], 15375 "requestBody": { 15376 "required": true, 15377 "content": { 15378 "application/json": { 15379 "schema": { 15380 "type": "object", 15381 "title": "glossary_term_translation/update/parameters", 15382 "properties": { 15383 "locale_code": { 15384 "description": "Identifies the language for this translation", 15385 "type": "string", 15386 "example": "en-US" 15387 }, 15388 "content": { 15389 "description": "The content of the translation", 15390 "type": "string", 15391 "example": "My translated term" 15392 } 15393 } 15394 } 15395 } 15396 } 15397 }, 15398 "x-cli-version": "2.5" 15399 }, 15400 "delete": { 15401 "summary": "Delete a translation for a term", 15402 "description": "Delete an existing translation of a term in a term base (previously: glossary).", 15403 "operationId": "glossary_term_translation/delete", 15404 "tags": [ 15405 "Glossary Term Translations" 15406 ], 15407 "parameters": [ 15408 { 15409 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15410 }, 15411 { 15412 "$ref": "#/components/parameters/account_id" 15413 }, 15414 { 15415 "$ref": "#/components/parameters/glossary_id" 15416 }, 15417 { 15418 "$ref": "#/components/parameters/term_id" 15419 }, 15420 { 15421 "$ref": "#/components/parameters/id" 15422 } 15423 ], 15424 "responses": { 15425 "204": { 15426 "$ref": "#/components/responses/204" 15427 }, 15428 "400": { 15429 "$ref": "#/components/responses/400" 15430 }, 15431 "404": { 15432 "$ref": "#/components/responses/404" 15433 }, 15434 "429": { 15435 "$ref": "#/components/responses/429" 15436 } 15437 }, 15438 "x-code-samples": [ 15439 { 15440 "lang": "Curl", 15441 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 15442 }, 15443 { 15444 "lang": "CLI v2", 15445 "source": "phrase glossary_term_translations delete \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--term_id <term_id> \\\n--id <id> \\\n--access_token <token>" 15446 } 15447 ], 15448 "x-cli-version": "2.5" 15449 } 15450 }, 15451 "/projects": { 15452 "get": { 15453 "summary": "List projects", 15454 "description": "List all projects the current user has access to.", 15455 "operationId": "projects/list", 15456 "tags": [ 15457 "Projects" 15458 ], 15459 "parameters": [ 15460 { 15461 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15462 }, 15463 { 15464 "$ref": "#/components/parameters/page" 15465 }, 15466 { 15467 "$ref": "#/components/parameters/per_page" 15468 }, 15469 { 15470 "$ref": "#/components/parameters/query_account_id" 15471 }, 15472 { 15473 "description": "Sort projects. Valid options are \"name_asc\", \"name_desc\", \"updated_at_asc\", \"updated_at_desc\", \"space_asc\" and \"space_desc\".", 15474 "example": null, 15475 "name": "sort_by", 15476 "in": "query", 15477 "schema": { 15478 "type": "string" 15479 } 15480 }, 15481 { 15482 "description": "Filter projects. Valid options are [\"favorites\"].", 15483 "example": "favorites", 15484 "name": "filters", 15485 "in": "query", 15486 "schema": { 15487 "type": "array", 15488 "items": { 15489 "type": "string" 15490 } 15491 } 15492 } 15493 ], 15494 "responses": { 15495 "200": { 15496 "description": "OK", 15497 "content": { 15498 "application/json": { 15499 "schema": { 15500 "type": "array", 15501 "items": { 15502 "$ref": "#/components/schemas/project" 15503 } 15504 } 15505 } 15506 }, 15507 "headers": { 15508 "X-Rate-Limit-Limit": { 15509 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15510 }, 15511 "X-Rate-Limit-Remaining": { 15512 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15513 }, 15514 "X-Rate-Limit-Reset": { 15515 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15516 }, 15517 "Link": { 15518 "$ref": "#/components/headers/Link" 15519 }, 15520 "Pagination": { 15521 "$ref": "#/components/headers/Pagination" 15522 } 15523 } 15524 }, 15525 "400": { 15526 "$ref": "#/components/responses/400" 15527 }, 15528 "404": { 15529 "$ref": "#/components/responses/404" 15530 }, 15531 "429": { 15532 "$ref": "#/components/responses/429" 15533 } 15534 }, 15535 "x-code-samples": [ 15536 { 15537 "lang": "Curl", 15538 "source": "curl \"https://api.phrase.com/v2/projects\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 15539 }, 15540 { 15541 "lang": "CLI v2", 15542 "source": "phrase projects list \\\n--access_token <token>" 15543 } 15544 ], 15545 "x-cli-version": "2.5" 15546 }, 15547 "post": { 15548 "summary": "Create a project", 15549 "description": "Create a new project.", 15550 "operationId": "project/create", 15551 "tags": [ 15552 "Projects" 15553 ], 15554 "parameters": [ 15555 { 15556 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15557 } 15558 ], 15559 "responses": { 15560 "201": { 15561 "description": "Created", 15562 "content": { 15563 "application/json": { 15564 "schema": { 15565 "$ref": "#/components/schemas/project_details" 15566 } 15567 } 15568 }, 15569 "headers": { 15570 "X-Rate-Limit-Limit": { 15571 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15572 }, 15573 "X-Rate-Limit-Remaining": { 15574 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15575 }, 15576 "X-Rate-Limit-Reset": { 15577 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15578 } 15579 } 15580 }, 15581 "400": { 15582 "$ref": "#/components/responses/400" 15583 }, 15584 "404": { 15585 "$ref": "#/components/responses/404" 15586 }, 15587 "429": { 15588 "$ref": "#/components/responses/429" 15589 } 15590 }, 15591 "x-code-samples": [ 15592 { 15593 "lang": "Curl", 15594 "source": "curl \"https://api.phrase.com/v2/projects\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F name=My%20Android%20Project \\\n -F main_format=yml \\\n -F shares_translation_memory=true" 15595 }, 15596 { 15597 "lang": "CLI v2", 15598 "source": "phrase projects create \\\n--data '{\"name\": \"My Android Project\", \"main_format\":\"yml\", \"shares_translation_memory\":\"true\"}' \\\n--access_token <token>" 15599 } 15600 ], 15601 "requestBody": { 15602 "required": true, 15603 "content": { 15604 "application/json": { 15605 "schema": { 15606 "type": "object", 15607 "title": "project/create/parameters", 15608 "required": [ 15609 "name" 15610 ], 15611 "properties": { 15612 "name": { 15613 "description": "Name of the project", 15614 "type": "string", 15615 "example": "My Android Project" 15616 }, 15617 "main_format": { 15618 "description": "Main file format specified by its API Extension name. Used for locale downloads if no format is specified. For API Extension names of available file formats see <a href=\"https://support.phrase.com/hc/en-us/sections/6111343326364\">Format Guide</a> or our <a href=\"#formats\">Formats API Endpoint</a>.", 15619 "type": "string", 15620 "example": "yml" 15621 }, 15622 "media": { 15623 "description": "(Optional) Main technology stack used in the project. It affects for example the suggested placeholder style. Predefined values include: `Ruby`, `JavaScript`, `AngularJS`, `React`, `iOS`, `Android`, `Python`, `PHP`, `Java`, `Go`, `Windows Phone`, `Rails`, `Node.js`, `.NET`, `Django`, `Symfony`, `Yii Framework`, `Zend Framework`, `Apple App Store Description`, `Google Play Description`, but it can also take any other value.", 15624 "type": "string", 15625 "example": "Python" 15626 }, 15627 "shares_translation_memory": { 15628 "description": "Indicates whether the project should share the account's translation memory", 15629 "type": "boolean", 15630 "example": true 15631 }, 15632 "project_image": { 15633 "description": "Image to identify the project", 15634 "type": "string", 15635 "format": "binary", 15636 "example": "/path/to/my/project-screenshot.png" 15637 }, 15638 "remove_project_image": { 15639 "description": "Indicates whether the project image should be deleted.", 15640 "type": "boolean", 15641 "example": null 15642 }, 15643 "account_id": { 15644 "description": "Account ID to specify the actual account the project should be created in. Required if the requesting user is a member of multiple accounts.", 15645 "type": "string", 15646 "example": "abcd1234" 15647 }, 15648 "point_of_contact": { 15649 "description": "(Optional) User ID of the point of contact for the project.", 15650 "type": "string", 15651 "example": "abcd1234" 15652 }, 15653 "source_project_id": { 15654 "description": "When a source project ID is given, a clone of that project will be created, including all locales, keys and translations as well as the main project settings if they are not defined otherwise through the params.", 15655 "type": "string", 15656 "example": "abcd1234" 15657 }, 15658 "workflow": { 15659 "description": "(Optional) Review Workflow. \"simple\" / \"review\". <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\">Read more</a>", 15660 "type": "string", 15661 "example": "review" 15662 }, 15663 "machine_translation_enabled": { 15664 "description": "(Optional) Enable machine translation support in the project. Required for Autopilot and Smart Suggest", 15665 "type": "boolean", 15666 "example": true 15667 }, 15668 "enable_branching": { 15669 "description": "(Optional) Enable branching in the project", 15670 "type": "boolean", 15671 "example": true 15672 }, 15673 "protect_master_branch": { 15674 "description": "(Optional) Protect the master branch in project where branching is enabled", 15675 "type": "boolean", 15676 "example": true 15677 }, 15678 "enable_all_data_type_translation_keys_for_translators": { 15679 "description": "(Optional) Otherwise, translators are not allowed to edit translations other than strings", 15680 "type": "boolean", 15681 "example": true 15682 }, 15683 "enable_icu_message_format": { 15684 "description": "(Optional) We can validate and highlight your ICU messages. <a href=\"https://support.phrase.com/hc/en-us/articles/5822319545116\">Read more</a>", 15685 "type": "boolean", 15686 "example": true 15687 }, 15688 "zero_plural_form_enabled": { 15689 "description": "(Optional) Displays the input fields for the 'ZERO' plural form for every key as well although only some languages require the 'ZERO' explicitly.", 15690 "type": "boolean", 15691 "example": true 15692 }, 15693 "autotranslate_enabled": { 15694 "description": "(Optional) Autopilot, requires machine_translation_enabled. <a href=\"https://support.phrase.com/hc/en-us/articles/5822187934364\">Read more</a>", 15695 "type": "boolean", 15696 "example": true 15697 }, 15698 "autotranslate_check_new_translation_keys": { 15699 "description": "(Optional) Requires autotranslate_enabled to be true", 15700 "type": "boolean", 15701 "example": true 15702 }, 15703 "autotranslate_check_new_uploads": { 15704 "description": "(Optional) Requires autotranslate_enabled to be true", 15705 "type": "boolean", 15706 "example": true 15707 }, 15708 "autotranslate_check_new_locales": { 15709 "description": "(Optional) Requires autotranslate_enabled to be true", 15710 "type": "boolean", 15711 "example": true 15712 }, 15713 "autotranslate_mark_as_unverified": { 15714 "description": "(Optional) Requires autotranslate_enabled to be true", 15715 "type": "boolean", 15716 "example": true 15717 }, 15718 "autotranslate_use_machine_translation": { 15719 "description": "(Optional) Requires autotranslate_enabled to be true", 15720 "type": "boolean", 15721 "example": true 15722 }, 15723 "autotranslate_use_translation_memory": { 15724 "description": "(Optional) Requires autotranslate_enabled to be true", 15725 "type": "boolean", 15726 "example": true 15727 }, 15728 "smart_suggest_enabled": { 15729 "description": "(Optional) Smart Suggest, requires machine_translation_enabled", 15730 "type": "boolean", 15731 "example": true 15732 }, 15733 "smart_suggest_use_glossary": { 15734 "description": "(Optional) Requires smart_suggest_enabled to be true", 15735 "type": "boolean", 15736 "example": true 15737 }, 15738 "smart_suggest_use_machine_translation": { 15739 "description": "(Optional) Requires smart_suggest_enabled to be true", 15740 "type": "boolean", 15741 "example": true 15742 } 15743 } 15744 } 15745 } 15746 } 15747 }, 15748 "x-cli-version": "2.6.3" 15749 } 15750 }, 15751 "/projects/{id}": { 15752 "get": { 15753 "summary": "Get a single project", 15754 "description": "Get details on a single project.", 15755 "operationId": "project/show", 15756 "tags": [ 15757 "Projects" 15758 ], 15759 "parameters": [ 15760 { 15761 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15762 }, 15763 { 15764 "$ref": "#/components/parameters/id" 15765 } 15766 ], 15767 "responses": { 15768 "200": { 15769 "description": "OK", 15770 "content": { 15771 "application/json": { 15772 "schema": { 15773 "$ref": "#/components/schemas/project_details" 15774 } 15775 } 15776 }, 15777 "headers": { 15778 "X-Rate-Limit-Limit": { 15779 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15780 }, 15781 "X-Rate-Limit-Remaining": { 15782 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15783 }, 15784 "X-Rate-Limit-Reset": { 15785 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15786 } 15787 } 15788 }, 15789 "400": { 15790 "$ref": "#/components/responses/400" 15791 }, 15792 "404": { 15793 "$ref": "#/components/responses/404" 15794 }, 15795 "429": { 15796 "$ref": "#/components/responses/429" 15797 } 15798 }, 15799 "x-code-samples": [ 15800 { 15801 "lang": "Curl", 15802 "source": "curl \"https://api.phrase.com/v2/projects/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 15803 }, 15804 { 15805 "lang": "CLI v2", 15806 "source": "phrase projects show \\\n--id <id> \\\n--access_token <token>" 15807 } 15808 ], 15809 "x-cli-version": "2.5" 15810 }, 15811 "patch": { 15812 "summary": "Update a project", 15813 "description": "Update an existing project.", 15814 "operationId": "project/update", 15815 "tags": [ 15816 "Projects" 15817 ], 15818 "parameters": [ 15819 { 15820 "$ref": "#/components/parameters/X-PhraseApp-OTP" 15821 }, 15822 { 15823 "$ref": "#/components/parameters/id" 15824 } 15825 ], 15826 "responses": { 15827 "200": { 15828 "description": "OK", 15829 "content": { 15830 "application/json": { 15831 "schema": { 15832 "$ref": "#/components/schemas/project_details" 15833 } 15834 } 15835 }, 15836 "headers": { 15837 "X-Rate-Limit-Limit": { 15838 "$ref": "#/components/headers/X-Rate-Limit-Limit" 15839 }, 15840 "X-Rate-Limit-Remaining": { 15841 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 15842 }, 15843 "X-Rate-Limit-Reset": { 15844 "$ref": "#/components/headers/X-Rate-Limit-Reset" 15845 } 15846 } 15847 }, 15848 "400": { 15849 "$ref": "#/components/responses/400" 15850 }, 15851 "404": { 15852 "$ref": "#/components/responses/404" 15853 }, 15854 "429": { 15855 "$ref": "#/components/responses/429" 15856 } 15857 }, 15858 "x-code-samples": [ 15859 { 15860 "lang": "Curl", 15861 "source": "curl \"https://api.phrase.com/v2/projects/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -F name=My%20Android%20Project \\\n -F main_format=yml \\\n -F shares_translation_memory=true" 15862 }, 15863 { 15864 "lang": "CLI v2", 15865 "source": "phrase projects update \\\n--id <id> \\\n--data '{\"name\": \"My Android Project\", \"main_format\":\"yml\", \"shares_translation_memory\":true}' \\\n--access_token <token>" 15866 } 15867 ], 15868 "requestBody": { 15869 "required": true, 15870 "content": { 15871 "application/json": { 15872 "schema": { 15873 "type": "object", 15874 "title": "project/update/parameters", 15875 "properties": { 15876 "account_id": { 15877 "description": "Required if the requesting user is a member of multiple accounts. Account ID to specify the actual account the project should be created in.", 15878 "type": "string", 15879 "example": "abcd1234" 15880 }, 15881 "name": { 15882 "description": "(Optional) Name of the project", 15883 "type": "string", 15884 "example": "My Android Project" 15885 }, 15886 "point_of_contact": { 15887 "description": "(Optional) User ID of the point of contact for the project. Pass `null` to unset.", 15888 "type": "string", 15889 "example": "abcd1234" 15890 }, 15891 "main_format": { 15892 "description": "(Optional) Main file format specified by its API Extension name. Used for locale downloads if no format is specified. For API Extension names of available file formats see <a href=\"https://support.phrase.com/hc/en-us/sections/6111343326364\">Format Guide</a> or our <a href=\"#formats\">Formats API Endpoint</a>.", 15893 "type": "string", 15894 "example": "yml" 15895 }, 15896 "media": { 15897 "description": "(Optional) Main technology stack used in the project. It affects for example the suggested placeholder style. Predefined values include: `Ruby`, `JavaScript`, `AngularJS`, `React`, `iOS`, `Android`, `Python`, `PHP`, `Java`, `Go`, `Windows Phone`, `Rails`, `Node.js`, `.NET`, `Django`, `Symfony`, `Yii Framework`, `Zend Framework`, `Apple App Store Description`, `Google Play Description`, but it can also take any other value.", 15898 "type": "string", 15899 "example": "Python" 15900 }, 15901 "shares_translation_memory": { 15902 "description": "(Optional) Indicates whether the project should share the account's translation memory", 15903 "type": "boolean", 15904 "example": true 15905 }, 15906 "project_image": { 15907 "description": "(Optional) Image to identify the project", 15908 "type": "string", 15909 "format": "binary", 15910 "example": "/path/to/my/project-screenshot.png" 15911 }, 15912 "remove_project_image": { 15913 "description": "(Optional) Indicates whether the project image should be deleted.", 15914 "type": "boolean", 15915 "example": false 15916 }, 15917 "workflow": { 15918 "description": "(Optional) Review Workflow. \"simple\" / \"review\". <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\">Read more</a>", 15919 "type": "string", 15920 "example": "review" 15921 }, 15922 "machine_translation_enabled": { 15923 "description": "(Optional) Enable machine translation support in the project. Required for Autopilot and Smart Suggest", 15924 "type": "boolean", 15925 "example": true 15926 }, 15927 "enable_branching": { 15928 "description": "(Optional) Enable branching in the project", 15929 "type": "boolean", 15930 "example": true 15931 }, 15932 "protect_master_branch": { 15933 "description": "(Optional) Protect the master branch in project where branching is enabled", 15934 "type": "boolean", 15935 "example": true 15936 }, 15937 "enable_all_data_type_translation_keys_for_translators": { 15938 "description": "(Optional) Otherwise, translators are not allowed to edit translations other than strings", 15939 "type": "boolean", 15940 "example": true 15941 }, 15942 "enable_icu_message_format": { 15943 "description": "(Optional) We can validate and highlight your ICU messages. <a href=\"https://support.phrase.com/hc/en-us/articles/5822319545116\">Read more</a>", 15944 "type": "boolean", 15945 "example": true 15946 }, 15947 "zero_plural_form_enabled": { 15948 "description": "(Optional) Displays the input fields for the 'ZERO' plural form for every key as well although only some languages require the 'ZERO' explicitly.", 15949 "type": "boolean", 15950 "example": true 15951 }, 15952 "autotranslate_enabled": { 15953 "description": "(Optional) Autopilot, requires machine_translation_enabled. <a href=\"https://support.phrase.com/hc/en-us/articles/5822187934364\">Read more</a>", 15954 "type": "boolean", 15955 "example": true 15956 }, 15957 "autotranslate_check_new_translation_keys": { 15958 "description": "(Optional) Requires autotranslate_enabled to be true", 15959 "type": "boolean", 15960 "example": true 15961 }, 15962 "autotranslate_check_new_uploads": { 15963 "description": "(Optional) Requires autotranslate_enabled to be true", 15964 "type": "boolean", 15965 "example": true 15966 }, 15967 "autotranslate_check_new_locales": { 15968 "description": "(Optional) Requires autotranslate_enabled to be true", 15969 "type": "boolean", 15970 "example": true 15971 }, 15972 "autotranslate_mark_as_unverified": { 15973 "description": "(Optional) Requires autotranslate_enabled to be true", 15974 "type": "boolean", 15975 "example": true 15976 }, 15977 "autotranslate_use_machine_translation": { 15978 "description": "(Optional) Requires autotranslate_enabled to be true", 15979 "type": "boolean", 15980 "example": true 15981 }, 15982 "autotranslate_use_translation_memory": { 15983 "description": "(Optional) Requires autotranslate_enabled to be true", 15984 "type": "boolean", 15985 "example": true 15986 }, 15987 "smart_suggest_enabled": { 15988 "description": "(Optional) Smart Suggest, requires machine_translation_enabled", 15989 "type": "boolean", 15990 "example": true 15991 }, 15992 "smart_suggest_use_glossary": { 15993 "description": "(Optional) Requires smart_suggest_enabled to be true", 15994 "type": "boolean", 15995 "example": true 15996 }, 15997 "smart_suggest_use_machine_translation": { 15998 "description": "(Optional) Requires smart_suggest_enabled to be true", 15999 "type": "boolean", 16000 "example": true 16001 } 16002 } 16003 } 16004 } 16005 } 16006 }, 16007 "x-cli-version": "2.6.3" 16008 }, 16009 "delete": { 16010 "summary": "Delete a project", 16011 "description": "Delete an existing project.", 16012 "operationId": "project/delete", 16013 "tags": [ 16014 "Projects" 16015 ], 16016 "parameters": [ 16017 { 16018 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16019 }, 16020 { 16021 "$ref": "#/components/parameters/id" 16022 } 16023 ], 16024 "responses": { 16025 "204": { 16026 "$ref": "#/components/responses/204" 16027 }, 16028 "400": { 16029 "$ref": "#/components/responses/400" 16030 }, 16031 "404": { 16032 "$ref": "#/components/responses/404" 16033 }, 16034 "429": { 16035 "$ref": "#/components/responses/429" 16036 } 16037 }, 16038 "x-code-samples": [ 16039 { 16040 "lang": "Curl", 16041 "source": "curl \"https://api.phrase.com/v2/projects/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 16042 }, 16043 { 16044 "lang": "CLI v2", 16045 "source": "phrase projects delete \\\n--id <id> \\\n--access_token <token>" 16046 } 16047 ], 16048 "x-cli-version": "2.5" 16049 } 16050 }, 16051 "/projects/{project_id}/jobs/{job_id}/locales": { 16052 "get": { 16053 "summary": "List job target locales", 16054 "description": "List all target locales for a given job.", 16055 "operationId": "job_locales/list", 16056 "tags": [ 16057 "Job Locales" 16058 ], 16059 "parameters": [ 16060 { 16061 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16062 }, 16063 { 16064 "$ref": "#/components/parameters/project_id" 16065 }, 16066 { 16067 "$ref": "#/components/parameters/job_id" 16068 }, 16069 { 16070 "$ref": "#/components/parameters/page" 16071 }, 16072 { 16073 "$ref": "#/components/parameters/per_page" 16074 }, 16075 { 16076 "description": "specify the branch to use", 16077 "example": "my-feature-branch", 16078 "name": "branch", 16079 "in": "query", 16080 "schema": { 16081 "type": "string" 16082 } 16083 } 16084 ], 16085 "responses": { 16086 "200": { 16087 "description": "OK", 16088 "content": { 16089 "application/json": { 16090 "schema": { 16091 "type": "array", 16092 "items": { 16093 "$ref": "#/components/schemas/job_locale" 16094 } 16095 } 16096 } 16097 }, 16098 "headers": { 16099 "X-Rate-Limit-Limit": { 16100 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16101 }, 16102 "X-Rate-Limit-Remaining": { 16103 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16104 }, 16105 "X-Rate-Limit-Reset": { 16106 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16107 }, 16108 "Link": { 16109 "$ref": "#/components/headers/Link" 16110 }, 16111 "Pagination": { 16112 "$ref": "#/components/headers/Pagination" 16113 } 16114 } 16115 }, 16116 "400": { 16117 "$ref": "#/components/responses/400" 16118 }, 16119 "404": { 16120 "$ref": "#/components/responses/404" 16121 }, 16122 "429": { 16123 "$ref": "#/components/responses/429" 16124 } 16125 }, 16126 "x-code-samples": [ 16127 { 16128 "lang": "Curl", 16129 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 16130 }, 16131 { 16132 "lang": "CLI v2", 16133 "source": "phrase job_locales list \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 16134 } 16135 ], 16136 "x-cli-version": "2.5" 16137 }, 16138 "post": { 16139 "summary": "Add a target locale to a job", 16140 "description": "Adds a target locale to a job.", 16141 "operationId": "job_locales/create", 16142 "tags": [ 16143 "Job Locales" 16144 ], 16145 "parameters": [ 16146 { 16147 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16148 }, 16149 { 16150 "$ref": "#/components/parameters/project_id" 16151 }, 16152 { 16153 "$ref": "#/components/parameters/job_id" 16154 } 16155 ], 16156 "responses": { 16157 "201": { 16158 "description": "Created", 16159 "content": { 16160 "application/json": { 16161 "schema": { 16162 "$ref": "#/components/schemas/job_locale" 16163 } 16164 } 16165 }, 16166 "headers": { 16167 "X-Rate-Limit-Limit": { 16168 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16169 }, 16170 "X-Rate-Limit-Remaining": { 16171 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16172 }, 16173 "X-Rate-Limit-Reset": { 16174 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16175 } 16176 } 16177 }, 16178 "400": { 16179 "$ref": "#/components/responses/400" 16180 }, 16181 "404": { 16182 "$ref": "#/components/responses/404" 16183 }, 16184 "429": { 16185 "$ref": "#/components/responses/429" 16186 } 16187 }, 16188 "x-code-samples": [ 16189 { 16190 "lang": "Curl", 16191 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 16192 }, 16193 { 16194 "lang": "CLI v2", 16195 "source": "phrase job_locales create \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"translator_team_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 16196 } 16197 ], 16198 "requestBody": { 16199 "required": true, 16200 "content": { 16201 "application/json": { 16202 "schema": { 16203 "type": "object", 16204 "title": "job_locales/create/parameters", 16205 "properties": { 16206 "branch": { 16207 "description": "specify the branch to use", 16208 "type": "string", 16209 "example": "my-feature-branch" 16210 }, 16211 "locale_id": { 16212 "description": "ID of a locale to be added", 16213 "type": "string", 16214 "example": "abcd1234cdef1234abcd1234cdef1234" 16215 }, 16216 "user_ids": { 16217 "description": "Array of user ids to be assigned to the job locale as translators", 16218 "type": "array", 16219 "items": { 16220 "type": "string" 16221 }, 16222 "example": [ 16223 "abcd1234cdef1234abcd1234cdef1234" 16224 ] 16225 }, 16226 "reviewer_ids": { 16227 "description": "Array of reviewer ids to be assigned to the job locale as reviewers", 16228 "type": "array", 16229 "items": { 16230 "type": "string" 16231 }, 16232 "example": [ 16233 "abcd1234cdef1234abcd1234cdef1234" 16234 ] 16235 }, 16236 "translator_team_ids": { 16237 "description": "Array of team ids to be assigned to the job locale as translators", 16238 "type": "array", 16239 "items": { 16240 "type": "string" 16241 }, 16242 "example": [ 16243 "abcd1234cdef1234abcd1234cdef1234" 16244 ] 16245 }, 16246 "reviewer_team_ids": { 16247 "description": "Array of team ids to be assigned to the job locale as reviewers", 16248 "type": "array", 16249 "items": { 16250 "type": "string" 16251 }, 16252 "example": [ 16253 "abcd1234cdef1234abcd1234cdef1234" 16254 ] 16255 } 16256 }, 16257 "required": [ 16258 "locale_id" 16259 ] 16260 } 16261 } 16262 } 16263 }, 16264 "x-cli-version": "2.6.8" 16265 } 16266 }, 16267 "/projects/{project_id}/jobs/{job_id}/locales/{id}": { 16268 "get": { 16269 "summary": "Show single job target locale", 16270 "description": "Get a single target locale for a given job.", 16271 "operationId": "job_locale/show", 16272 "tags": [ 16273 "Job Locales" 16274 ], 16275 "parameters": [ 16276 { 16277 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16278 }, 16279 { 16280 "$ref": "#/components/parameters/project_id" 16281 }, 16282 { 16283 "$ref": "#/components/parameters/job_id" 16284 }, 16285 { 16286 "$ref": "#/components/parameters/id" 16287 }, 16288 { 16289 "description": "specify the branch to use", 16290 "example": "my-feature-branch", 16291 "name": "branch", 16292 "in": "query", 16293 "schema": { 16294 "type": "string" 16295 } 16296 } 16297 ], 16298 "responses": { 16299 "200": { 16300 "description": "OK", 16301 "content": { 16302 "application/json": { 16303 "schema": { 16304 "$ref": "#/components/schemas/job_locale" 16305 } 16306 } 16307 }, 16308 "headers": { 16309 "X-Rate-Limit-Limit": { 16310 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16311 }, 16312 "X-Rate-Limit-Remaining": { 16313 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16314 }, 16315 "X-Rate-Limit-Reset": { 16316 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16317 } 16318 } 16319 }, 16320 "400": { 16321 "$ref": "#/components/responses/400" 16322 }, 16323 "404": { 16324 "$ref": "#/components/responses/404" 16325 }, 16326 "429": { 16327 "$ref": "#/components/responses/429" 16328 } 16329 }, 16330 "x-code-samples": [ 16331 { 16332 "lang": "Curl", 16333 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 16334 }, 16335 { 16336 "lang": "CLI v2", 16337 "source": "phrase job_locales show \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 16338 } 16339 ], 16340 "x-cli-version": "2.9.0" 16341 }, 16342 "patch": { 16343 "summary": "Update a job target locale", 16344 "description": "Update an existing job target locale.", 16345 "operationId": "job_locale/update", 16346 "tags": [ 16347 "Job Locales" 16348 ], 16349 "parameters": [ 16350 { 16351 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16352 }, 16353 { 16354 "$ref": "#/components/parameters/project_id" 16355 }, 16356 { 16357 "$ref": "#/components/parameters/job_id" 16358 }, 16359 { 16360 "$ref": "#/components/parameters/id" 16361 } 16362 ], 16363 "responses": { 16364 "200": { 16365 "description": "OK", 16366 "content": { 16367 "application/json": { 16368 "schema": { 16369 "$ref": "#/components/schemas/job_locale" 16370 } 16371 } 16372 }, 16373 "headers": { 16374 "X-Rate-Limit-Limit": { 16375 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16376 }, 16377 "X-Rate-Limit-Remaining": { 16378 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16379 }, 16380 "X-Rate-Limit-Reset": { 16381 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16382 } 16383 } 16384 }, 16385 "400": { 16386 "$ref": "#/components/responses/400" 16387 }, 16388 "404": { 16389 "$ref": "#/components/responses/404" 16390 }, 16391 "429": { 16392 "$ref": "#/components/responses/429" 16393 } 16394 }, 16395 "x-code-samples": [ 16396 { 16397 "lang": "Curl", 16398 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 16399 }, 16400 { 16401 "lang": "CLI v2", 16402 "source": "phrase job_locales update \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"team_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"translator_team_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 16403 } 16404 ], 16405 "requestBody": { 16406 "required": true, 16407 "content": { 16408 "application/json": { 16409 "schema": { 16410 "type": "object", 16411 "title": "job_locale/update/parameters", 16412 "properties": { 16413 "branch": { 16414 "description": "specify the branch to use", 16415 "type": "string", 16416 "example": "my-feature-branch" 16417 }, 16418 "locale_id": { 16419 "description": "ID of a target locale to update", 16420 "type": "string", 16421 "example": "abcd1234cdef1234abcd1234cdef1234" 16422 }, 16423 "user_ids": { 16424 "description": "Array of user ids to be assigned to the job locale", 16425 "type": "array", 16426 "items": { 16427 "type": "string" 16428 }, 16429 "example": [ 16430 "abcd1234cdef1234abcd1234cdef1234" 16431 ] 16432 }, 16433 "reviewer_ids": { 16434 "description": "Array of reviewer ids to be assigned to the job locale as reviewers", 16435 "type": "array", 16436 "items": { 16437 "type": "string" 16438 }, 16439 "example": [ 16440 "abcd1234cdef1234abcd1234cdef1234" 16441 ] 16442 }, 16443 "translator_team_ids": { 16444 "description": "Array of team ids to be assigned to the job locale as translators", 16445 "type": "array", 16446 "items": { 16447 "type": "string" 16448 }, 16449 "example": [ 16450 "abcd1234cdef1234abcd1234cdef1234" 16451 ] 16452 }, 16453 "reviewer_team_ids": { 16454 "description": "Array of team ids to be assigned to the job locale as reviewers", 16455 "type": "array", 16456 "items": { 16457 "type": "string" 16458 }, 16459 "example": [ 16460 "abcd1234cdef1234abcd1234cdef1234" 16461 ] 16462 } 16463 } 16464 } 16465 } 16466 } 16467 }, 16468 "x-cli-version": "2.6.8" 16469 }, 16470 "delete": { 16471 "summary": "Remove a target locale from a job", 16472 "description": "Removes a target locale from a job.", 16473 "operationId": "job_locale/delete", 16474 "tags": [ 16475 "Job Locales" 16476 ], 16477 "parameters": [ 16478 { 16479 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16480 }, 16481 { 16482 "$ref": "#/components/parameters/project_id" 16483 }, 16484 { 16485 "$ref": "#/components/parameters/job_id" 16486 }, 16487 { 16488 "$ref": "#/components/parameters/id" 16489 }, 16490 { 16491 "description": "specify the branch to use", 16492 "example": "my-feature-branch", 16493 "name": "branch", 16494 "in": "query", 16495 "schema": { 16496 "type": "string" 16497 } 16498 } 16499 ], 16500 "responses": { 16501 "204": { 16502 "$ref": "#/components/responses/204" 16503 }, 16504 "400": { 16505 "$ref": "#/components/responses/400" 16506 }, 16507 "404": { 16508 "$ref": "#/components/responses/404" 16509 }, 16510 "429": { 16511 "$ref": "#/components/responses/429" 16512 } 16513 }, 16514 "x-code-samples": [ 16515 { 16516 "lang": "Curl", 16517 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 16518 }, 16519 { 16520 "lang": "CLI v2", 16521 "source": "phrase job_locales delete \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 16522 } 16523 ], 16524 "x-cli-version": "2.5" 16525 } 16526 }, 16527 "/projects/{project_id}/jobs/{job_id}/locales/{id}/complete": { 16528 "post": { 16529 "summary": "Complete a job locale", 16530 "description": "Mark a job locale as completed.", 16531 "operationId": "job_locale/complete", 16532 "tags": [ 16533 "Job Locales" 16534 ], 16535 "parameters": [ 16536 { 16537 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16538 }, 16539 { 16540 "$ref": "#/components/parameters/project_id" 16541 }, 16542 { 16543 "$ref": "#/components/parameters/job_id" 16544 }, 16545 { 16546 "$ref": "#/components/parameters/id" 16547 } 16548 ], 16549 "responses": { 16550 "200": { 16551 "description": "OK", 16552 "content": { 16553 "application/json": { 16554 "schema": { 16555 "$ref": "#/components/schemas/job_locale" 16556 } 16557 } 16558 }, 16559 "headers": { 16560 "X-Rate-Limit-Limit": { 16561 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16562 }, 16563 "X-Rate-Limit-Remaining": { 16564 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16565 }, 16566 "X-Rate-Limit-Reset": { 16567 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16568 } 16569 } 16570 }, 16571 "400": { 16572 "$ref": "#/components/responses/400" 16573 }, 16574 "404": { 16575 "$ref": "#/components/responses/404" 16576 }, 16577 "429": { 16578 "$ref": "#/components/responses/429" 16579 } 16580 }, 16581 "x-code-samples": [ 16582 { 16583 "lang": "Curl", 16584 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/complete\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 16585 }, 16586 { 16587 "lang": "CLI v2", 16588 "source": "phrase job_locales complete \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 16589 } 16590 ], 16591 "requestBody": { 16592 "required": true, 16593 "content": { 16594 "application/json": { 16595 "schema": { 16596 "type": "object", 16597 "title": "job_locale/complete/parameters", 16598 "properties": { 16599 "branch": { 16600 "description": "specify the branch to use", 16601 "type": "string", 16602 "example": "my-feature-branch" 16603 } 16604 } 16605 } 16606 } 16607 } 16608 }, 16609 "x-cli-version": "2.5" 16610 } 16611 }, 16612 "/projects/{project_id}/jobs/{job_id}/locales/{id}/complete_review": { 16613 "post": { 16614 "summary": "Review a job locale", 16615 "description": "Mark job locale as reviewed.", 16616 "operationId": "job_locale/complete_review", 16617 "tags": [ 16618 "Job Locales" 16619 ], 16620 "parameters": [ 16621 { 16622 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16623 }, 16624 { 16625 "$ref": "#/components/parameters/project_id" 16626 }, 16627 { 16628 "$ref": "#/components/parameters/job_id" 16629 }, 16630 { 16631 "$ref": "#/components/parameters/id" 16632 } 16633 ], 16634 "responses": { 16635 "200": { 16636 "description": "OK", 16637 "content": { 16638 "application/json": { 16639 "schema": { 16640 "$ref": "#/components/schemas/job_locale" 16641 } 16642 } 16643 }, 16644 "headers": { 16645 "X-Rate-Limit-Limit": { 16646 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16647 }, 16648 "X-Rate-Limit-Remaining": { 16649 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16650 }, 16651 "X-Rate-Limit-Reset": { 16652 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16653 } 16654 } 16655 }, 16656 "400": { 16657 "$ref": "#/components/responses/400" 16658 }, 16659 "404": { 16660 "$ref": "#/components/responses/404" 16661 }, 16662 "429": { 16663 "$ref": "#/components/responses/429" 16664 } 16665 }, 16666 "x-code-samples": [ 16667 { 16668 "lang": "Curl", 16669 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/complete_review\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 16670 }, 16671 { 16672 "lang": "CLI v2", 16673 "source": "phrase job_locales complete \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 16674 } 16675 ], 16676 "requestBody": { 16677 "required": true, 16678 "content": { 16679 "application/json": { 16680 "schema": { 16681 "type": "object", 16682 "title": "job_locale/complete_review/parameters", 16683 "properties": { 16684 "branch": { 16685 "description": "specify the branch to use", 16686 "type": "string", 16687 "example": "my-feature-branch" 16688 } 16689 } 16690 } 16691 } 16692 } 16693 }, 16694 "x-cli-version": "2.5" 16695 } 16696 }, 16697 "/projects/{project_id}/jobs/{job_id}/locales/{id}/reopen": { 16698 "post": { 16699 "summary": "Reopen a job locale", 16700 "description": "Mark a job locale as uncompleted.", 16701 "operationId": "job_locale/reopen", 16702 "tags": [ 16703 "Job Locales" 16704 ], 16705 "parameters": [ 16706 { 16707 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16708 }, 16709 { 16710 "$ref": "#/components/parameters/project_id" 16711 }, 16712 { 16713 "$ref": "#/components/parameters/job_id" 16714 }, 16715 { 16716 "$ref": "#/components/parameters/id" 16717 } 16718 ], 16719 "responses": { 16720 "200": { 16721 "description": "OK", 16722 "content": { 16723 "application/json": { 16724 "schema": { 16725 "$ref": "#/components/schemas/job_locale" 16726 } 16727 } 16728 }, 16729 "headers": { 16730 "X-Rate-Limit-Limit": { 16731 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16732 }, 16733 "X-Rate-Limit-Remaining": { 16734 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16735 }, 16736 "X-Rate-Limit-Reset": { 16737 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16738 } 16739 } 16740 }, 16741 "400": { 16742 "$ref": "#/components/responses/400" 16743 }, 16744 "404": { 16745 "$ref": "#/components/responses/404" 16746 }, 16747 "429": { 16748 "$ref": "#/components/responses/429" 16749 } 16750 }, 16751 "x-code-samples": [ 16752 { 16753 "lang": "Curl", 16754 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/reopen\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 16755 }, 16756 { 16757 "lang": "CLI v2", 16758 "source": "phrase job_locales reopen \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 16759 } 16760 ], 16761 "requestBody": { 16762 "required": true, 16763 "content": { 16764 "application/json": { 16765 "schema": { 16766 "type": "object", 16767 "title": "job_locale/reopen/parameters", 16768 "properties": { 16769 "branch": { 16770 "description": "specify the branch to use", 16771 "type": "string", 16772 "example": "my-feature-branch" 16773 } 16774 } 16775 } 16776 } 16777 } 16778 }, 16779 "x-cli-version": "2.5" 16780 } 16781 }, 16782 "/projects/{project_id}/job_templates/{job_template_id}/locales": { 16783 "get": { 16784 "summary": "List job template locales", 16785 "description": "List all job template locales for a given job template.", 16786 "operationId": "job_template_locales/list", 16787 "tags": [ 16788 "Job Template Locales" 16789 ], 16790 "parameters": [ 16791 { 16792 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16793 }, 16794 { 16795 "$ref": "#/components/parameters/project_id" 16796 }, 16797 { 16798 "$ref": "#/components/parameters/job_template_id" 16799 }, 16800 { 16801 "$ref": "#/components/parameters/page" 16802 }, 16803 { 16804 "$ref": "#/components/parameters/per_page" 16805 }, 16806 { 16807 "description": "specify the branch to use", 16808 "example": "my-feature-branch", 16809 "name": "branch", 16810 "in": "query", 16811 "schema": { 16812 "type": "string" 16813 } 16814 } 16815 ], 16816 "responses": { 16817 "200": { 16818 "description": "OK", 16819 "content": { 16820 "application/json": { 16821 "schema": { 16822 "type": "array", 16823 "items": { 16824 "$ref": "#/components/schemas/job_template_locales" 16825 } 16826 } 16827 } 16828 }, 16829 "headers": { 16830 "X-Rate-Limit-Limit": { 16831 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16832 }, 16833 "X-Rate-Limit-Remaining": { 16834 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16835 }, 16836 "X-Rate-Limit-Reset": { 16837 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16838 }, 16839 "Link": { 16840 "$ref": "#/components/headers/Link" 16841 }, 16842 "Pagination": { 16843 "$ref": "#/components/headers/Pagination" 16844 } 16845 } 16846 }, 16847 "400": { 16848 "$ref": "#/components/responses/400" 16849 }, 16850 "404": { 16851 "$ref": "#/components/responses/404" 16852 }, 16853 "429": { 16854 "$ref": "#/components/responses/429" 16855 } 16856 }, 16857 "x-code-samples": [ 16858 { 16859 "lang": "Curl", 16860 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 16861 }, 16862 { 16863 "lang": "CLI v2", 16864 "source": "phrase job_template_locales list \\\n--project_id <project_id> \\\n--job_template_id <job_template_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 16865 } 16866 ], 16867 "x-cli-version": "2.5" 16868 }, 16869 "post": { 16870 "summary": "Create a job template locale", 16871 "description": "Create a new job template locale.", 16872 "operationId": "job_template_locales/create", 16873 "tags": [ 16874 "Job Template Locales" 16875 ], 16876 "parameters": [ 16877 { 16878 "$ref": "#/components/parameters/X-PhraseApp-OTP" 16879 }, 16880 { 16881 "$ref": "#/components/parameters/project_id" 16882 }, 16883 { 16884 "$ref": "#/components/parameters/job_template_id" 16885 } 16886 ], 16887 "responses": { 16888 "201": { 16889 "description": "Created", 16890 "content": { 16891 "application/json": { 16892 "schema": { 16893 "$ref": "#/components/schemas/job_template_locales" 16894 } 16895 } 16896 }, 16897 "headers": { 16898 "X-Rate-Limit-Limit": { 16899 "$ref": "#/components/headers/X-Rate-Limit-Limit" 16900 }, 16901 "X-Rate-Limit-Remaining": { 16902 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 16903 }, 16904 "X-Rate-Limit-Reset": { 16905 "$ref": "#/components/headers/X-Rate-Limit-Reset" 16906 } 16907 } 16908 }, 16909 "400": { 16910 "$ref": "#/components/responses/400" 16911 }, 16912 "404": { 16913 "$ref": "#/components/responses/404" 16914 }, 16915 "429": { 16916 "$ref": "#/components/responses/429" 16917 } 16918 }, 16919 "x-code-samples": [ 16920 { 16921 "lang": "Curl", 16922 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"reviewer_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 16923 }, 16924 { 16925 "lang": "CLI v2", 16926 "source": "phrase job_template_locales create \\\n--project_id <project_id> \\\n--job_template_id <job_template_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"reviewer_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"translator_team_ids\":\"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 16927 } 16928 ], 16929 "requestBody": { 16930 "required": true, 16931 "content": { 16932 "application/json": { 16933 "schema": { 16934 "type": "object", 16935 "title": "job_template_locales/create/parameters", 16936 "properties": { 16937 "branch": { 16938 "description": "specify the branch to use", 16939 "type": "string", 16940 "example": "my-feature-branch" 16941 }, 16942 "locale_id": { 16943 "description": "locale id", 16944 "type": "string", 16945 "example": "abcd1234cdef1234abcd1234cdef1234" 16946 }, 16947 "user_ids": { 16948 "description": "Array of user ids to be assigned to the job template locale", 16949 "type": "array", 16950 "items": { 16951 "type": "string" 16952 }, 16953 "example": [ 16954 "abcd1234cdef1234abcd1234cdef1234" 16955 ] 16956 }, 16957 "reviewer_ids": { 16958 "description": "Array of reviewer ids to be assigned to the job template locale", 16959 "type": "array", 16960 "items": { 16961 "type": "string" 16962 }, 16963 "example": [ 16964 "abcd1234cdef1234abcd1234cdef1234" 16965 ] 16966 }, 16967 "translator_team_ids": { 16968 "description": "Array of team ids to be assigned to the job locale as translators", 16969 "type": "array", 16970 "items": { 16971 "type": "string" 16972 }, 16973 "example": [ 16974 "abcd1234cdef1234abcd1234cdef1234" 16975 ] 16976 }, 16977 "reviewer_team_ids": { 16978 "description": "Array of team ids to be assigned to the job locale as reviewers", 16979 "type": "array", 16980 "items": { 16981 "type": "string" 16982 }, 16983 "example": [ 16984 "abcd1234cdef1234abcd1234cdef1234" 16985 ] 16986 } 16987 }, 16988 "required": [ 16989 "locale_id" 16990 ] 16991 } 16992 } 16993 } 16994 }, 16995 "x-cli-version": "2.6.8" 16996 } 16997 }, 16998 "/projects/{project_id}/job_templates/{job_template_id}/locales/{job_template_locale_id}": { 16999 "get": { 17000 "summary": "Get a single job template locale", 17001 "description": "Get a single job template locale for a given job template.", 17002 "operationId": "job_template_locale/show", 17003 "tags": [ 17004 "Job Template Locales" 17005 ], 17006 "parameters": [ 17007 { 17008 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17009 }, 17010 { 17011 "$ref": "#/components/parameters/project_id" 17012 }, 17013 { 17014 "$ref": "#/components/parameters/job_template_id" 17015 }, 17016 { 17017 "$ref": "#/components/parameters/job_template_locale_id" 17018 }, 17019 { 17020 "description": "specify the branch to use", 17021 "example": "my-feature-branch", 17022 "name": "branch", 17023 "in": "query", 17024 "schema": { 17025 "type": "string" 17026 } 17027 } 17028 ], 17029 "responses": { 17030 "200": { 17031 "description": "OK", 17032 "content": { 17033 "application/json": { 17034 "schema": { 17035 "$ref": "#/components/schemas/job_template_locales" 17036 } 17037 } 17038 }, 17039 "headers": { 17040 "X-Rate-Limit-Limit": { 17041 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17042 }, 17043 "X-Rate-Limit-Remaining": { 17044 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17045 }, 17046 "X-Rate-Limit-Reset": { 17047 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17048 } 17049 } 17050 }, 17051 "400": { 17052 "$ref": "#/components/responses/400" 17053 }, 17054 "404": { 17055 "$ref": "#/components/responses/404" 17056 }, 17057 "429": { 17058 "$ref": "#/components/responses/429" 17059 } 17060 }, 17061 "x-code-samples": [ 17062 { 17063 "lang": "Curl", 17064 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 17065 }, 17066 { 17067 "lang": "CLI v2", 17068 "source": "phrase job_template_locales show \\\n--project_id <project_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 17069 } 17070 ], 17071 "x-cli-version": "2.6.8" 17072 }, 17073 "patch": { 17074 "summary": "Update a job template locale", 17075 "description": "Update an existing job template locale.", 17076 "operationId": "job_template_locale/update", 17077 "tags": [ 17078 "Job Template Locales" 17079 ], 17080 "parameters": [ 17081 { 17082 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17083 }, 17084 { 17085 "$ref": "#/components/parameters/project_id" 17086 }, 17087 { 17088 "$ref": "#/components/parameters/job_template_id" 17089 }, 17090 { 17091 "$ref": "#/components/parameters/job_template_locale_id" 17092 } 17093 ], 17094 "responses": { 17095 "200": { 17096 "description": "OK", 17097 "content": { 17098 "application/json": { 17099 "schema": { 17100 "$ref": "#/components/schemas/job_template_locales" 17101 } 17102 } 17103 }, 17104 "headers": { 17105 "X-Rate-Limit-Limit": { 17106 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17107 }, 17108 "X-Rate-Limit-Remaining": { 17109 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17110 }, 17111 "X-Rate-Limit-Reset": { 17112 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17113 } 17114 } 17115 }, 17116 "400": { 17117 "$ref": "#/components/responses/400" 17118 }, 17119 "404": { 17120 "$ref": "#/components/responses/404" 17121 }, 17122 "429": { 17123 "$ref": "#/components/responses/429" 17124 } 17125 }, 17126 "x-code-samples": [ 17127 { 17128 "lang": "Curl", 17129 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"reviewer_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 17130 }, 17131 { 17132 "lang": "CLI v2", 17133 "source": "phrase job_template_locales update \\\n--project_id <project_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"reviewer_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"translator_team_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 17134 } 17135 ], 17136 "requestBody": { 17137 "required": true, 17138 "content": { 17139 "application/json": { 17140 "schema": { 17141 "type": "object", 17142 "title": "job_template_locale/update/parameters", 17143 "properties": { 17144 "branch": { 17145 "description": "specify the branch to use", 17146 "type": "string", 17147 "example": "my-feature-branch" 17148 }, 17149 "locale_id": { 17150 "description": "locale id", 17151 "type": "string", 17152 "example": "abcd1234cdef1234abcd1234cdef1234" 17153 }, 17154 "user_ids": { 17155 "description": "Array of user ids to be assigned to the job template locale", 17156 "type": "array", 17157 "items": { 17158 "type": "string" 17159 }, 17160 "example": [ 17161 "abcd1234cdef1234abcd1234cdef1234" 17162 ] 17163 }, 17164 "reviewer_ids": { 17165 "description": "Array of reviewer ids to be assigned to the job template locale", 17166 "type": "array", 17167 "items": { 17168 "type": "string" 17169 }, 17170 "example": [ 17171 "abcd1234cdef1234abcd1234cdef1234" 17172 ] 17173 }, 17174 "translator_team_ids": { 17175 "description": "Array of team ids to be assigned to the job locale as translators", 17176 "type": "array", 17177 "items": { 17178 "type": "string" 17179 }, 17180 "example": [ 17181 "abcd1234cdef1234abcd1234cdef1234" 17182 ] 17183 }, 17184 "reviewer_team_ids": { 17185 "description": "Array of team ids to be assigned to the job locale as reviewers", 17186 "type": "array", 17187 "items": { 17188 "type": "string" 17189 }, 17190 "example": [ 17191 "abcd1234cdef1234abcd1234cdef1234" 17192 ] 17193 } 17194 } 17195 } 17196 } 17197 } 17198 }, 17199 "x-cli-version": "2.6.8" 17200 }, 17201 "delete": { 17202 "summary": "Delete a job template locale", 17203 "description": "Delete an existing job template locale.", 17204 "operationId": "job_template_locale/delete", 17205 "tags": [ 17206 "Job Template Locales" 17207 ], 17208 "parameters": [ 17209 { 17210 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17211 }, 17212 { 17213 "$ref": "#/components/parameters/project_id" 17214 }, 17215 { 17216 "$ref": "#/components/parameters/job_template_id" 17217 }, 17218 { 17219 "$ref": "#/components/parameters/job_template_locale_id" 17220 }, 17221 { 17222 "description": "specify the branch to use", 17223 "example": "my-feature-branch", 17224 "name": "branch", 17225 "in": "query", 17226 "schema": { 17227 "type": "string" 17228 } 17229 } 17230 ], 17231 "responses": { 17232 "204": { 17233 "$ref": "#/components/responses/204" 17234 }, 17235 "400": { 17236 "$ref": "#/components/responses/400" 17237 }, 17238 "404": { 17239 "$ref": "#/components/responses/404" 17240 }, 17241 "429": { 17242 "$ref": "#/components/responses/429" 17243 } 17244 }, 17245 "x-code-samples": [ 17246 { 17247 "lang": "Curl", 17248 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 17249 }, 17250 { 17251 "lang": "CLI v2", 17252 "source": "phrase job_template_locales delete \\\n--project_id <project_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 17253 } 17254 ], 17255 "x-cli-version": "2.5" 17256 } 17257 }, 17258 "/projects/{project_id}/variables": { 17259 "get": { 17260 "summary": "List variables", 17261 "description": "List all variables for the current project.", 17262 "operationId": "variables/list", 17263 "tags": [ 17264 "Variables" 17265 ], 17266 "parameters": [ 17267 { 17268 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17269 }, 17270 { 17271 "$ref": "#/components/parameters/project_id" 17272 }, 17273 { 17274 "$ref": "#/components/parameters/page" 17275 }, 17276 { 17277 "$ref": "#/components/parameters/per_page" 17278 } 17279 ], 17280 "responses": { 17281 "200": { 17282 "description": "OK", 17283 "content": { 17284 "application/json": { 17285 "schema": { 17286 "type": "array", 17287 "items": { 17288 "$ref": "#/components/schemas/variable" 17289 } 17290 } 17291 } 17292 }, 17293 "headers": { 17294 "X-Rate-Limit-Limit": { 17295 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17296 }, 17297 "X-Rate-Limit-Remaining": { 17298 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17299 }, 17300 "X-Rate-Limit-Reset": { 17301 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17302 }, 17303 "Link": { 17304 "$ref": "#/components/headers/Link" 17305 }, 17306 "Pagination": { 17307 "$ref": "#/components/headers/Pagination" 17308 } 17309 } 17310 }, 17311 "400": { 17312 "$ref": "#/components/responses/400" 17313 }, 17314 "404": { 17315 "$ref": "#/components/responses/404" 17316 }, 17317 "429": { 17318 "$ref": "#/components/responses/429" 17319 } 17320 }, 17321 "x-code-samples": [ 17322 { 17323 "lang": "Curl", 17324 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/variables\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 17325 }, 17326 { 17327 "lang": "CLI v2", 17328 "source": "phrase variables list \\\n--project_id <project_id> \\\n--access_token <token>" 17329 } 17330 ], 17331 "x-cli-version": "2.5" 17332 }, 17333 "post": { 17334 "summary": "Create a variable", 17335 "description": "Create a new variable.", 17336 "operationId": "variable/create", 17337 "tags": [ 17338 "Variables" 17339 ], 17340 "parameters": [ 17341 { 17342 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17343 }, 17344 { 17345 "$ref": "#/components/parameters/project_id" 17346 } 17347 ], 17348 "responses": { 17349 "201": { 17350 "description": "Created", 17351 "content": { 17352 "application/json": { 17353 "schema": { 17354 "$ref": "#/components/schemas/variable" 17355 } 17356 } 17357 }, 17358 "headers": { 17359 "X-Rate-Limit-Limit": { 17360 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17361 }, 17362 "X-Rate-Limit-Remaining": { 17363 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17364 }, 17365 "X-Rate-Limit-Reset": { 17366 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17367 } 17368 } 17369 }, 17370 "400": { 17371 "$ref": "#/components/responses/400" 17372 }, 17373 "404": { 17374 "$ref": "#/components/responses/404" 17375 }, 17376 "429": { 17377 "$ref": "#/components/responses/429" 17378 } 17379 }, 17380 "x-code-samples": [ 17381 { 17382 "lang": "Curl", 17383 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/variables\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"MY_VARIABLE\",\"value\":\"Hello World\"}' \\\n -H 'Content-Type: application/json'" 17384 }, 17385 { 17386 "lang": "CLI v2", 17387 "source": "phrase variables create \\\n--project_id <project_id> \\\n--data '{\"name\":\"MY_VARIABLE\", \"value\":\"Hello World\"}' \\\n--access_token <token>" 17388 } 17389 ], 17390 "requestBody": { 17391 "required": true, 17392 "content": { 17393 "application/json": { 17394 "schema": { 17395 "type": "object", 17396 "title": "variable/create/parameters", 17397 "required": [ 17398 "name" 17399 ], 17400 "properties": { 17401 "name": { 17402 "description": "Name of the variable", 17403 "type": "string", 17404 "example": "MY_VARIABLE" 17405 }, 17406 "value": { 17407 "description": "Value of the variable", 17408 "type": "string", 17409 "example": "Hello World" 17410 } 17411 } 17412 } 17413 } 17414 } 17415 }, 17416 "x-cli-version": "2.5" 17417 } 17418 }, 17419 "/projects/{project_id}/variables/{name}": { 17420 "get": { 17421 "summary": "Get a single variable", 17422 "description": "Get details on a single variable for a given project.", 17423 "operationId": "variable/show", 17424 "tags": [ 17425 "Variables" 17426 ], 17427 "parameters": [ 17428 { 17429 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17430 }, 17431 { 17432 "$ref": "#/components/parameters/project_id" 17433 }, 17434 { 17435 "$ref": "#/components/parameters/name" 17436 } 17437 ], 17438 "responses": { 17439 "200": { 17440 "description": "OK", 17441 "content": { 17442 "application/json": { 17443 "schema": { 17444 "$ref": "#/components/schemas/variable" 17445 } 17446 } 17447 }, 17448 "headers": { 17449 "X-Rate-Limit-Limit": { 17450 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17451 }, 17452 "X-Rate-Limit-Remaining": { 17453 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17454 }, 17455 "X-Rate-Limit-Reset": { 17456 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17457 } 17458 } 17459 }, 17460 "400": { 17461 "$ref": "#/components/responses/400" 17462 }, 17463 "404": { 17464 "$ref": "#/components/responses/404" 17465 }, 17466 "429": { 17467 "$ref": "#/components/responses/429" 17468 } 17469 }, 17470 "x-code-samples": [ 17471 { 17472 "lang": "Curl", 17473 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/variables/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 17474 }, 17475 { 17476 "lang": "CLI v2", 17477 "source": "phrase variables show \\\n--project_id <project_id> \\\n--name <name> \\\n--access_token <token>" 17478 } 17479 ], 17480 "x-cli-version": "2.5" 17481 }, 17482 "patch": { 17483 "summary": "Update a variable", 17484 "description": "Update an existing variable.", 17485 "operationId": "variable/update", 17486 "tags": [ 17487 "Variables" 17488 ], 17489 "parameters": [ 17490 { 17491 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17492 }, 17493 { 17494 "$ref": "#/components/parameters/project_id" 17495 }, 17496 { 17497 "$ref": "#/components/parameters/name" 17498 } 17499 ], 17500 "responses": { 17501 "200": { 17502 "description": "OK", 17503 "content": { 17504 "application/json": { 17505 "schema": { 17506 "$ref": "#/components/schemas/variable" 17507 } 17508 } 17509 }, 17510 "headers": { 17511 "X-Rate-Limit-Limit": { 17512 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17513 }, 17514 "X-Rate-Limit-Remaining": { 17515 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17516 }, 17517 "X-Rate-Limit-Reset": { 17518 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17519 } 17520 } 17521 }, 17522 "400": { 17523 "$ref": "#/components/responses/400" 17524 }, 17525 "404": { 17526 "$ref": "#/components/responses/404" 17527 }, 17528 "429": { 17529 "$ref": "#/components/responses/429" 17530 } 17531 }, 17532 "x-code-samples": [ 17533 { 17534 "lang": "Curl", 17535 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/variables/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"MY_VARIABLE\",\"value\":\"Hello World\"}' \\\n -H 'Content-Type: application/json'" 17536 }, 17537 { 17538 "lang": "CLI v2", 17539 "source": "phrase variables update \\\n--project_id <project_id> \\\n--name <name> \\\n--data '{\"name\":\"MY_VARIABLE\",\"value\":\"Hello World\"}' \\\n--access_token <token>" 17540 } 17541 ], 17542 "requestBody": { 17543 "required": true, 17544 "content": { 17545 "application/json": { 17546 "schema": { 17547 "type": "object", 17548 "title": "variable/update/parameters", 17549 "properties": { 17550 "name": { 17551 "description": "Name of the variable", 17552 "type": "string", 17553 "example": "MY_VARIABLE" 17554 }, 17555 "value": { 17556 "description": "Value of the variable", 17557 "type": "string", 17558 "example": "Hello World" 17559 } 17560 } 17561 } 17562 } 17563 } 17564 }, 17565 "x-cli-version": "2.5" 17566 }, 17567 "delete": { 17568 "summary": "Delete a variable", 17569 "description": "Delete an existing variable.", 17570 "operationId": "variable/delete", 17571 "tags": [ 17572 "Variables" 17573 ], 17574 "parameters": [ 17575 { 17576 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17577 }, 17578 { 17579 "$ref": "#/components/parameters/project_id" 17580 }, 17581 { 17582 "$ref": "#/components/parameters/name" 17583 } 17584 ], 17585 "responses": { 17586 "204": { 17587 "$ref": "#/components/responses/204" 17588 }, 17589 "400": { 17590 "$ref": "#/components/responses/400" 17591 }, 17592 "404": { 17593 "$ref": "#/components/responses/404" 17594 }, 17595 "429": { 17596 "$ref": "#/components/responses/429" 17597 } 17598 }, 17599 "x-code-samples": [ 17600 { 17601 "lang": "Curl", 17602 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/variables/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 17603 }, 17604 { 17605 "lang": "CLI v2", 17606 "source": "phrase variables delete \\\n--project_id <project_id> \\\n--name <name> \\\n--access_token <token>" 17607 } 17608 ], 17609 "x-cli-version": "2.5" 17610 } 17611 }, 17612 "/projects/{project_id}/branches": { 17613 "get": { 17614 "summary": "List branches", 17615 "description": "List all branches the of the current project.", 17616 "operationId": "branches/list", 17617 "tags": [ 17618 "Branches" 17619 ], 17620 "parameters": [ 17621 { 17622 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17623 }, 17624 { 17625 "$ref": "#/components/parameters/project_id" 17626 }, 17627 { 17628 "$ref": "#/components/parameters/page" 17629 }, 17630 { 17631 "$ref": "#/components/parameters/per_page" 17632 } 17633 ], 17634 "responses": { 17635 "200": { 17636 "description": "OK", 17637 "content": { 17638 "application/json": { 17639 "schema": { 17640 "type": "array", 17641 "items": { 17642 "$ref": "#/components/schemas/branch" 17643 } 17644 } 17645 } 17646 }, 17647 "headers": { 17648 "X-Rate-Limit-Limit": { 17649 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17650 }, 17651 "X-Rate-Limit-Remaining": { 17652 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17653 }, 17654 "X-Rate-Limit-Reset": { 17655 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17656 }, 17657 "Link": { 17658 "$ref": "#/components/headers/Link" 17659 }, 17660 "Pagination": { 17661 "$ref": "#/components/headers/Pagination" 17662 } 17663 } 17664 }, 17665 "400": { 17666 "$ref": "#/components/responses/400" 17667 }, 17668 "404": { 17669 "$ref": "#/components/responses/404" 17670 }, 17671 "429": { 17672 "$ref": "#/components/responses/429" 17673 } 17674 }, 17675 "x-code-samples": [ 17676 { 17677 "lang": "Curl", 17678 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 17679 }, 17680 { 17681 "lang": "CLI v2", 17682 "source": "phrase branches list \\\n--project_id <project_id> \\\n--access_token <token>" 17683 } 17684 ], 17685 "x-cli-version": "2.5" 17686 }, 17687 "post": { 17688 "summary": "Create a branch", 17689 "description": "Create a new branch. <br><br><i>Note: Creating a new branch may take several minutes depending on the project size.</i>", 17690 "operationId": "branch/create", 17691 "tags": [ 17692 "Branches" 17693 ], 17694 "parameters": [ 17695 { 17696 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17697 }, 17698 { 17699 "$ref": "#/components/parameters/project_id" 17700 } 17701 ], 17702 "responses": { 17703 "201": { 17704 "description": "Created", 17705 "content": { 17706 "application/json": { 17707 "schema": { 17708 "$ref": "#/components/schemas/branch" 17709 } 17710 } 17711 }, 17712 "headers": { 17713 "X-Rate-Limit-Limit": { 17714 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17715 }, 17716 "X-Rate-Limit-Remaining": { 17717 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17718 }, 17719 "X-Rate-Limit-Reset": { 17720 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17721 } 17722 } 17723 }, 17724 "400": { 17725 "$ref": "#/components/responses/400" 17726 }, 17727 "404": { 17728 "$ref": "#/components/responses/404" 17729 }, 17730 "429": { 17731 "$ref": "#/components/responses/429" 17732 } 17733 }, 17734 "x-code-samples": [ 17735 { 17736 "lang": "Curl", 17737 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"my-branch\"}' \\\n -H 'Content-Type: application/json'" 17738 }, 17739 { 17740 "lang": "CLI v2", 17741 "source": "phrase branches create \\\n--project_id <project_id> \\\n--data '{\"name\":\"my-branch\"}' \\\n--access_token <token>" 17742 } 17743 ], 17744 "requestBody": { 17745 "required": true, 17746 "content": { 17747 "application/json": { 17748 "schema": { 17749 "type": "object", 17750 "title": "branch/create/parameters", 17751 "required": [ 17752 "name" 17753 ], 17754 "properties": { 17755 "name": { 17756 "description": "Name of the branch", 17757 "type": "string", 17758 "example": "my-branch" 17759 } 17760 } 17761 } 17762 } 17763 } 17764 }, 17765 "x-cli-version": "2.5" 17766 } 17767 }, 17768 "/projects/{project_id}/branches/{name}": { 17769 "get": { 17770 "summary": "Get a single branch", 17771 "description": "Get details on a single branch for a given project.", 17772 "operationId": "branch/show", 17773 "tags": [ 17774 "Branches" 17775 ], 17776 "parameters": [ 17777 { 17778 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17779 }, 17780 { 17781 "$ref": "#/components/parameters/project_id" 17782 }, 17783 { 17784 "$ref": "#/components/parameters/name" 17785 } 17786 ], 17787 "responses": { 17788 "200": { 17789 "description": "OK", 17790 "content": { 17791 "application/json": { 17792 "schema": { 17793 "$ref": "#/components/schemas/branch" 17794 } 17795 } 17796 }, 17797 "headers": { 17798 "X-Rate-Limit-Limit": { 17799 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17800 }, 17801 "X-Rate-Limit-Remaining": { 17802 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17803 }, 17804 "X-Rate-Limit-Reset": { 17805 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17806 } 17807 } 17808 }, 17809 "400": { 17810 "$ref": "#/components/responses/400" 17811 }, 17812 "404": { 17813 "$ref": "#/components/responses/404" 17814 }, 17815 "429": { 17816 "$ref": "#/components/responses/429" 17817 } 17818 }, 17819 "x-code-samples": [ 17820 { 17821 "lang": "Curl", 17822 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 17823 }, 17824 { 17825 "lang": "CLI v2", 17826 "source": "phrase branches show \\\n--project_id <project_id> \\\n--name <name> \\\n--access_token <token>" 17827 } 17828 ], 17829 "x-cli-version": "2.5" 17830 }, 17831 "patch": { 17832 "summary": "Update a branch", 17833 "description": "Update an existing branch.", 17834 "operationId": "branch/update", 17835 "tags": [ 17836 "Branches" 17837 ], 17838 "parameters": [ 17839 { 17840 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17841 }, 17842 { 17843 "$ref": "#/components/parameters/project_id" 17844 }, 17845 { 17846 "$ref": "#/components/parameters/name" 17847 } 17848 ], 17849 "responses": { 17850 "200": { 17851 "description": "OK", 17852 "content": { 17853 "application/json": { 17854 "schema": { 17855 "$ref": "#/components/schemas/branch" 17856 } 17857 } 17858 }, 17859 "headers": { 17860 "X-Rate-Limit-Limit": { 17861 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17862 }, 17863 "X-Rate-Limit-Remaining": { 17864 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17865 }, 17866 "X-Rate-Limit-Reset": { 17867 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17868 } 17869 } 17870 }, 17871 "400": { 17872 "$ref": "#/components/responses/400" 17873 }, 17874 "404": { 17875 "$ref": "#/components/responses/404" 17876 }, 17877 "429": { 17878 "$ref": "#/components/responses/429" 17879 } 17880 }, 17881 "x-code-samples": [ 17882 { 17883 "lang": "Curl", 17884 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"my-branch\"}' \\\n -H 'Content-Type: application/json'" 17885 }, 17886 { 17887 "lang": "CLI v2", 17888 "source": "phrase branches update \\\n--project_id <project_id> \\\n--name <name> \\\n--data '{\"name\":\"my-branch\"}' \\\n--access_token <token>" 17889 } 17890 ], 17891 "requestBody": { 17892 "required": true, 17893 "content": { 17894 "application/json": { 17895 "schema": { 17896 "type": "object", 17897 "title": "branch/update/parameters", 17898 "properties": { 17899 "name": { 17900 "description": "Name of the branch", 17901 "type": "string", 17902 "example": "my-branch" 17903 } 17904 } 17905 } 17906 } 17907 } 17908 }, 17909 "x-cli-version": "2.5" 17910 }, 17911 "delete": { 17912 "summary": "Delete a branch", 17913 "description": "Delete an existing branch.", 17914 "operationId": "branch/delete", 17915 "tags": [ 17916 "Branches" 17917 ], 17918 "parameters": [ 17919 { 17920 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17921 }, 17922 { 17923 "$ref": "#/components/parameters/project_id" 17924 }, 17925 { 17926 "$ref": "#/components/parameters/name" 17927 } 17928 ], 17929 "responses": { 17930 "204": { 17931 "$ref": "#/components/responses/204" 17932 }, 17933 "400": { 17934 "$ref": "#/components/responses/400" 17935 }, 17936 "404": { 17937 "$ref": "#/components/responses/404" 17938 }, 17939 "429": { 17940 "$ref": "#/components/responses/429" 17941 } 17942 }, 17943 "x-code-samples": [ 17944 { 17945 "lang": "Curl", 17946 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 17947 }, 17948 { 17949 "lang": "CLI v2", 17950 "source": "phrase branches delete \\\n--project_id <project_id> \\\n--name <name> \\\n--access_token <token>" 17951 } 17952 ], 17953 "x-cli-version": "2.5" 17954 } 17955 }, 17956 "/projects/{project_id}/branches/{name}/merge": { 17957 "patch": { 17958 "summary": "Merge a branch", 17959 "description": "Merge an existing branch. <br><br><i>Note: Merging a branch may take several minutes depending on diff size.</i>", 17960 "operationId": "branch/merge", 17961 "tags": [ 17962 "Branches" 17963 ], 17964 "parameters": [ 17965 { 17966 "$ref": "#/components/parameters/X-PhraseApp-OTP" 17967 }, 17968 { 17969 "$ref": "#/components/parameters/project_id" 17970 }, 17971 { 17972 "$ref": "#/components/parameters/name" 17973 } 17974 ], 17975 "responses": { 17976 "200": { 17977 "description": "OK", 17978 "headers": { 17979 "X-Rate-Limit-Limit": { 17980 "$ref": "#/components/headers/X-Rate-Limit-Limit" 17981 }, 17982 "X-Rate-Limit-Remaining": { 17983 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 17984 }, 17985 "X-Rate-Limit-Reset": { 17986 "$ref": "#/components/headers/X-Rate-Limit-Reset" 17987 } 17988 } 17989 }, 17990 "400": { 17991 "$ref": "#/components/responses/400" 17992 }, 17993 "404": { 17994 "$ref": "#/components/responses/404" 17995 }, 17996 "429": { 17997 "$ref": "#/components/responses/429" 17998 } 17999 }, 18000 "x-code-samples": [ 18001 { 18002 "lang": "Curl", 18003 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches/:name/merge\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"strategy\":\"use_main\"}' \\\n -H 'Content-Type: application/json'" 18004 }, 18005 { 18006 "lang": "CLI v2", 18007 "source": "phrase branches merge \\\n--project_id <project_id> \\\n--name <name> \\\n--data '{\"strategy\":\"use_main\"}' \\\n--access_token <token>" 18008 } 18009 ], 18010 "requestBody": { 18011 "required": true, 18012 "content": { 18013 "application/json": { 18014 "schema": { 18015 "type": "object", 18016 "title": "branch/merge/parameters", 18017 "properties": { 18018 "strategy": { 18019 "description": "strategy used for merge blocking, use_main or use_branch", 18020 "type": "string", 18021 "example": "use_main" 18022 } 18023 } 18024 } 18025 } 18026 } 18027 }, 18028 "x-cli-version": "2.5" 18029 } 18030 }, 18031 "/projects/{project_id}/branches/{name}/compare": { 18032 "get": { 18033 "summary": "Compare branches", 18034 "description": "Compare branch with main branch. <br><br><i>Note: Comparing a branch may take several minutes depending on the project size.</i>", 18035 "operationId": "branch/compare", 18036 "tags": [ 18037 "Branches" 18038 ], 18039 "parameters": [ 18040 { 18041 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18042 }, 18043 { 18044 "$ref": "#/components/parameters/project_id" 18045 }, 18046 { 18047 "$ref": "#/components/parameters/name" 18048 }, 18049 { 18050 "description": "Name of the branch", 18051 "example": "my-branch", 18052 "name": "name", 18053 "in": "query", 18054 "schema": { 18055 "type": "string" 18056 } 18057 } 18058 ], 18059 "responses": { 18060 "200": { 18061 "description": "OK", 18062 "headers": { 18063 "X-Rate-Limit-Limit": { 18064 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18065 }, 18066 "X-Rate-Limit-Remaining": { 18067 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18068 }, 18069 "X-Rate-Limit-Reset": { 18070 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18071 } 18072 } 18073 }, 18074 "400": { 18075 "$ref": "#/components/responses/400" 18076 }, 18077 "404": { 18078 "$ref": "#/components/responses/404" 18079 }, 18080 "429": { 18081 "$ref": "#/components/responses/429" 18082 } 18083 }, 18084 "x-code-samples": [ 18085 { 18086 "lang": "Curl", 18087 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/branches/:name/compare?name=my-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18088 }, 18089 { 18090 "lang": "CLI v2", 18091 "source": "phrase branches compare \\\n--project_id <project_id> \\\n--name <name> \\\n--name my-branch \\\n--access_token <token>" 18092 } 18093 ], 18094 "x-cli-version": "2.5" 18095 } 18096 }, 18097 "/accounts": { 18098 "get": { 18099 "summary": "List accounts", 18100 "description": "List all accounts the current user has access to.", 18101 "operationId": "accounts/list", 18102 "tags": [ 18103 "Accounts" 18104 ], 18105 "parameters": [ 18106 { 18107 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18108 }, 18109 { 18110 "$ref": "#/components/parameters/page" 18111 }, 18112 { 18113 "$ref": "#/components/parameters/per_page" 18114 } 18115 ], 18116 "responses": { 18117 "200": { 18118 "description": "OK", 18119 "content": { 18120 "application/json": { 18121 "schema": { 18122 "type": "array", 18123 "items": { 18124 "$ref": "#/components/schemas/account" 18125 } 18126 } 18127 } 18128 }, 18129 "headers": { 18130 "X-Rate-Limit-Limit": { 18131 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18132 }, 18133 "X-Rate-Limit-Remaining": { 18134 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18135 }, 18136 "X-Rate-Limit-Reset": { 18137 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18138 }, 18139 "Link": { 18140 "$ref": "#/components/headers/Link" 18141 }, 18142 "Pagination": { 18143 "$ref": "#/components/headers/Pagination" 18144 } 18145 } 18146 }, 18147 "400": { 18148 "$ref": "#/components/responses/400" 18149 }, 18150 "404": { 18151 "$ref": "#/components/responses/404" 18152 }, 18153 "429": { 18154 "$ref": "#/components/responses/429" 18155 } 18156 }, 18157 "x-code-samples": [ 18158 { 18159 "lang": "Curl", 18160 "source": "curl \"https://api.phrase.com/v2/accounts\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18161 }, 18162 { 18163 "lang": "CLI v2", 18164 "source": "phrase accounts list \\\n--access_token <token>" 18165 } 18166 ], 18167 "x-cli-version": "2.5" 18168 } 18169 }, 18170 "/accounts/{id}": { 18171 "get": { 18172 "summary": "Get a single account", 18173 "description": "Get details on a single account.", 18174 "operationId": "account/show", 18175 "tags": [ 18176 "Accounts" 18177 ], 18178 "parameters": [ 18179 { 18180 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18181 }, 18182 { 18183 "$ref": "#/components/parameters/id" 18184 } 18185 ], 18186 "responses": { 18187 "200": { 18188 "description": "OK", 18189 "content": { 18190 "application/json": { 18191 "schema": { 18192 "$ref": "#/components/schemas/account_details" 18193 } 18194 } 18195 }, 18196 "headers": { 18197 "X-Rate-Limit-Limit": { 18198 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18199 }, 18200 "X-Rate-Limit-Remaining": { 18201 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18202 }, 18203 "X-Rate-Limit-Reset": { 18204 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18205 } 18206 } 18207 }, 18208 "400": { 18209 "$ref": "#/components/responses/400" 18210 }, 18211 "404": { 18212 "$ref": "#/components/responses/404" 18213 }, 18214 "429": { 18215 "$ref": "#/components/responses/429" 18216 } 18217 }, 18218 "x-code-samples": [ 18219 { 18220 "lang": "Curl", 18221 "source": "curl \"https://api.phrase.com/v2/accounts/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18222 }, 18223 { 18224 "lang": "CLI v2", 18225 "source": "phrase accounts show \\\n--id <id> \\\n--access_token <token>" 18226 } 18227 ], 18228 "x-cli-version": "2.5" 18229 } 18230 }, 18231 "/user": { 18232 "get": { 18233 "summary": "Show current User", 18234 "description": "Show details for current User.", 18235 "operationId": "show/user", 18236 "tags": [ 18237 "Users" 18238 ], 18239 "parameters": [ 18240 { 18241 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18242 } 18243 ], 18244 "responses": { 18245 "200": { 18246 "description": "OK", 18247 "content": { 18248 "application/json": { 18249 "schema": { 18250 "$ref": "#/components/schemas/current_user" 18251 } 18252 } 18253 }, 18254 "headers": { 18255 "X-Rate-Limit-Limit": { 18256 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18257 }, 18258 "X-Rate-Limit-Remaining": { 18259 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18260 }, 18261 "X-Rate-Limit-Reset": { 18262 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18263 } 18264 } 18265 }, 18266 "400": { 18267 "$ref": "#/components/responses/400" 18268 }, 18269 "404": { 18270 "$ref": "#/components/responses/404" 18271 }, 18272 "429": { 18273 "$ref": "#/components/responses/429" 18274 } 18275 }, 18276 "x-code-samples": [ 18277 { 18278 "lang": "Curl", 18279 "source": "curl \"https://api.phrase.com/v2/user\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18280 }, 18281 { 18282 "lang": "CLI v2", 18283 "source": "phrase shows user \\\n--access_token <token>" 18284 } 18285 ], 18286 "x-cli-version": "2.5" 18287 } 18288 }, 18289 "/accounts/{account_id}/members": { 18290 "get": { 18291 "summary": "List members", 18292 "description": "Get all users active in the account. It also lists resources like projects and locales the member has access to. In case nothing is shown the default access from the role is used. Access token scope must include <code>team.manage</code>.", 18293 "operationId": "members/list", 18294 "tags": [ 18295 "Members" 18296 ], 18297 "parameters": [ 18298 { 18299 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18300 }, 18301 { 18302 "$ref": "#/components/parameters/account_id" 18303 }, 18304 { 18305 "$ref": "#/components/parameters/page" 18306 }, 18307 { 18308 "$ref": "#/components/parameters/per_page" 18309 } 18310 ], 18311 "responses": { 18312 "200": { 18313 "description": "OK", 18314 "content": { 18315 "application/json": { 18316 "schema": { 18317 "type": "array", 18318 "items": { 18319 "$ref": "#/components/schemas/member" 18320 } 18321 } 18322 } 18323 }, 18324 "headers": { 18325 "X-Rate-Limit-Limit": { 18326 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18327 }, 18328 "X-Rate-Limit-Remaining": { 18329 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18330 }, 18331 "X-Rate-Limit-Reset": { 18332 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18333 }, 18334 "Link": { 18335 "$ref": "#/components/headers/Link" 18336 }, 18337 "Pagination": { 18338 "$ref": "#/components/headers/Pagination" 18339 } 18340 } 18341 }, 18342 "400": { 18343 "$ref": "#/components/responses/400" 18344 }, 18345 "401": { 18346 "$ref": "#/components/responses/401" 18347 }, 18348 "403": { 18349 "$ref": "#/components/responses/403" 18350 }, 18351 "404": { 18352 "$ref": "#/components/responses/404" 18353 }, 18354 "429": { 18355 "$ref": "#/components/responses/429" 18356 } 18357 }, 18358 "x-code-samples": [ 18359 { 18360 "lang": "Curl", 18361 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/members\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18362 }, 18363 { 18364 "lang": "CLI v2", 18365 "source": "phrase members list \\\n--account_id <account_id> \\\n--access_token <token>" 18366 } 18367 ], 18368 "x-cli-version": "2.5" 18369 } 18370 }, 18371 "/accounts/{account_id}/members/{id}": { 18372 "get": { 18373 "summary": "Get single member", 18374 "description": "Get details on a single user in the account. Access token scope must include <code>team.manage</code>.", 18375 "operationId": "member/show", 18376 "tags": [ 18377 "Members" 18378 ], 18379 "parameters": [ 18380 { 18381 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18382 }, 18383 { 18384 "$ref": "#/components/parameters/account_id" 18385 }, 18386 { 18387 "$ref": "#/components/parameters/id" 18388 } 18389 ], 18390 "responses": { 18391 "200": { 18392 "description": "OK", 18393 "content": { 18394 "application/json": { 18395 "schema": { 18396 "$ref": "#/components/schemas/member" 18397 } 18398 } 18399 }, 18400 "headers": { 18401 "X-Rate-Limit-Limit": { 18402 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18403 }, 18404 "X-Rate-Limit-Remaining": { 18405 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18406 }, 18407 "X-Rate-Limit-Reset": { 18408 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18409 } 18410 } 18411 }, 18412 "400": { 18413 "$ref": "#/components/responses/400" 18414 }, 18415 "401": { 18416 "$ref": "#/components/responses/401" 18417 }, 18418 "403": { 18419 "$ref": "#/components/responses/403" 18420 }, 18421 "404": { 18422 "$ref": "#/components/responses/404" 18423 }, 18424 "429": { 18425 "$ref": "#/components/responses/429" 18426 } 18427 }, 18428 "x-code-samples": [ 18429 { 18430 "lang": "Curl", 18431 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/members/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18432 }, 18433 { 18434 "lang": "CLI v2", 18435 "source": "phrase members show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 18436 } 18437 ], 18438 "x-cli-version": "2.5" 18439 }, 18440 "patch": { 18441 "summary": "Update a member", 18442 "description": "Update user permissions in the account. Developers and translators need <code>project_ids</code> and <code>locale_ids</code> assigned to access them. Access token scope must include <code>team.manage</code>.", 18443 "operationId": "member/update", 18444 "tags": [ 18445 "Members" 18446 ], 18447 "parameters": [ 18448 { 18449 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18450 }, 18451 { 18452 "$ref": "#/components/parameters/account_id" 18453 }, 18454 { 18455 "$ref": "#/components/parameters/id" 18456 } 18457 ], 18458 "responses": { 18459 "200": { 18460 "description": "OK", 18461 "content": { 18462 "application/json": { 18463 "schema": { 18464 "$ref": "#/components/schemas/member" 18465 } 18466 } 18467 }, 18468 "headers": { 18469 "X-Rate-Limit-Limit": { 18470 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18471 }, 18472 "X-Rate-Limit-Remaining": { 18473 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18474 }, 18475 "X-Rate-Limit-Reset": { 18476 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18477 } 18478 } 18479 }, 18480 "400": { 18481 "$ref": "#/components/responses/400" 18482 }, 18483 "401": { 18484 "$ref": "#/components/responses/401" 18485 }, 18486 "403": { 18487 "$ref": "#/components/responses/403" 18488 }, 18489 "404": { 18490 "$ref": "#/components/responses/404" 18491 }, 18492 "429": { 18493 "$ref": "#/components/responses/429" 18494 } 18495 }, 18496 "x-code-samples": [ 18497 { 18498 "lang": "Curl", 18499 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/members/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"role\":\"Developer\",\"strategy\":\"set\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"default_locale_codes\":[\"de\",\"en\"],\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"permissions\":{\"create_upload\":true,\"review_translations\":true}}' \\\n -H 'Content-Type: application/json'" 18500 }, 18501 { 18502 "lang": "CLI v2", 18503 "source": "phrase members update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"role\":\"Developer\", \"strategy\":\"set\", \"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\", \"default_locale_codes\":[\"de\",\"en\"], \"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"], \"permissions\":\"{\"create_upload\"=>true, \"review_translations\"=>true}\"}' \\\n--access_token <token>" 18504 } 18505 ], 18506 "requestBody": { 18507 "required": true, 18508 "content": { 18509 "application/json": { 18510 "schema": { 18511 "type": "object", 18512 "title": "member/update/parameters", 18513 "properties": { 18514 "strategy": { 18515 "description": "Update strategy, can be any of set, add, remove. If provided, it will set, add or remove given spaces, projects and locale ids from users access list.", 18516 "type": "string", 18517 "example": "set" 18518 }, 18519 "role": { 18520 "description": "Member role, can be any of of Admin, ProjectManager, Developer, Designer, Translator", 18521 "type": "string", 18522 "example": "Developer" 18523 }, 18524 "project_ids": { 18525 "description": "List of project ids the user has access to. ", 18526 "type": "string", 18527 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 18528 }, 18529 "locale_ids": { 18530 "description": "List of locale ids the user has access to.", 18531 "type": "string", 18532 "example": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235" 18533 }, 18534 "default_locale_codes": { 18535 "description": "List of default locales for the user.", 18536 "type": "array", 18537 "items": { 18538 "type": "string" 18539 }, 18540 "example": [ 18541 "en", 18542 "fi" 18543 ] 18544 }, 18545 "space_ids": { 18546 "description": "List of spaces the user is assigned to.", 18547 "type": "array", 18548 "items": { 18549 "type": "string" 18550 }, 18551 "example": [ 18552 "abcd1234abcd1234abcd1234", 18553 "abcd1234abcd1234abcd1235" 18554 ] 18555 }, 18556 "permissions": { 18557 "description": "Additional permissions depending on member role. Available permissions are <code>create_upload</code> and <code>review_translations</code>", 18558 "type": "object", 18559 "additionalProperties": { 18560 "type": "string" 18561 }, 18562 "example": { 18563 "create_upload": true, 18564 "review_translations": true 18565 } 18566 } 18567 } 18568 } 18569 } 18570 } 18571 }, 18572 "x-cli-version": "2.5" 18573 }, 18574 "delete": { 18575 "summary": "Remove a user from the account", 18576 "description": "Remove a user from the account. The user will be removed from the account but not deleted from Phrase. Access token scope must include <code>team.manage</code>.", 18577 "operationId": "member/delete", 18578 "tags": [ 18579 "Members" 18580 ], 18581 "parameters": [ 18582 { 18583 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18584 }, 18585 { 18586 "$ref": "#/components/parameters/account_id" 18587 }, 18588 { 18589 "$ref": "#/components/parameters/id" 18590 } 18591 ], 18592 "responses": { 18593 "204": { 18594 "$ref": "#/components/responses/204" 18595 }, 18596 "400": { 18597 "$ref": "#/components/responses/400" 18598 }, 18599 "401": { 18600 "$ref": "#/components/responses/401" 18601 }, 18602 "403": { 18603 "$ref": "#/components/responses/403" 18604 }, 18605 "404": { 18606 "$ref": "#/components/responses/404" 18607 }, 18608 "429": { 18609 "$ref": "#/components/responses/429" 18610 } 18611 }, 18612 "x-code-samples": [ 18613 { 18614 "lang": "Curl", 18615 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/members/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 18616 }, 18617 { 18618 "lang": "CLI v2", 18619 "source": "phrase members delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 18620 } 18621 ], 18622 "x-cli-version": "2.5" 18623 } 18624 }, 18625 "/projects/{project_id}/members/{id}": { 18626 "patch": { 18627 "summary": "Update a member's project settings", 18628 "description": "Update user settings in the project. Access token scope must include <code>team.manage</code>.", 18629 "operationId": "member/update_settings", 18630 "tags": [ 18631 "Members" 18632 ], 18633 "parameters": [ 18634 { 18635 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18636 }, 18637 { 18638 "$ref": "#/components/parameters/project_id" 18639 }, 18640 { 18641 "$ref": "#/components/parameters/id" 18642 } 18643 ], 18644 "responses": { 18645 "200": { 18646 "description": "OK", 18647 "content": { 18648 "application/json": { 18649 "schema": { 18650 "$ref": "#/components/schemas/member_project_detail" 18651 } 18652 } 18653 }, 18654 "headers": { 18655 "X-Rate-Limit-Limit": { 18656 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18657 }, 18658 "X-Rate-Limit-Remaining": { 18659 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18660 }, 18661 "X-Rate-Limit-Reset": { 18662 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18663 } 18664 } 18665 }, 18666 "400": { 18667 "$ref": "#/components/responses/400" 18668 }, 18669 "401": { 18670 "$ref": "#/components/responses/401" 18671 }, 18672 "403": { 18673 "$ref": "#/components/responses/403" 18674 }, 18675 "404": { 18676 "$ref": "#/components/responses/404" 18677 }, 18678 "429": { 18679 "$ref": "#/components/responses/429" 18680 } 18681 }, 18682 "x-code-samples": [ 18683 { 18684 "lang": "Curl", 18685 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/members/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"project_role\":\"Developer\",\"locale_ids\":[\"fff565db236400772368235db2c6117e\",\"fff565db236400772368235db2c6117f\"]}' \\\n -H 'Content-Type: application/json'" 18686 }, 18687 { 18688 "lang": "CLI v2", 18689 "source": "phrase members update_settings \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"project_role\":\"Developer\",\"locale_ids\":[\"fff565db236400772368235db2c6117e\",\"fff565db236400772368235db2c6117f\"]}' \\\n--access_token <token>" 18690 } 18691 ], 18692 "requestBody": { 18693 "required": true, 18694 "content": { 18695 "application/json": { 18696 "schema": { 18697 "type": "object", 18698 "title": "member/update_settings/parameters", 18699 "properties": { 18700 "project_role": { 18701 "description": "Member role, can be any of of Manager, Developer, Translator", 18702 "type": "string", 18703 "example": "Developer" 18704 }, 18705 "locale_ids": { 18706 "description": "List of locale ids the user has access to.", 18707 "type": "array", 18708 "items": { 18709 "type": "string" 18710 }, 18711 "example": [ 18712 "abcd1234abcd1234abcd1234", 18713 "abcd1234abcd1234abcd1235" 18714 ] 18715 } 18716 } 18717 } 18718 } 18719 } 18720 }, 18721 "x-cli-version": "2.5" 18722 } 18723 }, 18724 "/projects/{project_id}/screenshots": { 18725 "get": { 18726 "summary": "List screenshots", 18727 "description": "List all screenshots for the given project.", 18728 "operationId": "screenshots/list", 18729 "tags": [ 18730 "Screenshots" 18731 ], 18732 "parameters": [ 18733 { 18734 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18735 }, 18736 { 18737 "$ref": "#/components/parameters/project_id" 18738 }, 18739 { 18740 "$ref": "#/components/parameters/page" 18741 }, 18742 { 18743 "$ref": "#/components/parameters/per_page" 18744 }, 18745 { 18746 "description": "specify the branch to use", 18747 "example": "my-feature-branch", 18748 "name": "branch", 18749 "in": "query", 18750 "schema": { 18751 "type": "string" 18752 } 18753 }, 18754 { 18755 "description": "filter by key", 18756 "example": "abcd1234cdef1234abcd1234cdef1234", 18757 "name": "key_id", 18758 "in": "query", 18759 "schema": { 18760 "type": "string" 18761 } 18762 } 18763 ], 18764 "responses": { 18765 "200": { 18766 "description": "OK", 18767 "content": { 18768 "application/json": { 18769 "schema": { 18770 "type": "array", 18771 "items": { 18772 "$ref": "#/components/schemas/screenshot" 18773 } 18774 } 18775 } 18776 }, 18777 "headers": { 18778 "X-Rate-Limit-Limit": { 18779 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18780 }, 18781 "X-Rate-Limit-Remaining": { 18782 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18783 }, 18784 "X-Rate-Limit-Reset": { 18785 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18786 }, 18787 "Link": { 18788 "$ref": "#/components/headers/Link" 18789 }, 18790 "Pagination": { 18791 "$ref": "#/components/headers/Pagination" 18792 } 18793 } 18794 }, 18795 "400": { 18796 "$ref": "#/components/responses/400" 18797 }, 18798 "404": { 18799 "$ref": "#/components/responses/404" 18800 }, 18801 "429": { 18802 "$ref": "#/components/responses/429" 18803 } 18804 }, 18805 "x-code-samples": [ 18806 { 18807 "lang": "Curl", 18808 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18809 }, 18810 { 18811 "lang": "CLI v2", 18812 "source": "phrase screenshots list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 18813 } 18814 ], 18815 "x-cli-version": "2.5" 18816 }, 18817 "post": { 18818 "summary": "Create a screenshot", 18819 "description": "Create a new screenshot.", 18820 "operationId": "screenshot/create", 18821 "tags": [ 18822 "Screenshots" 18823 ], 18824 "parameters": [ 18825 { 18826 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18827 }, 18828 { 18829 "$ref": "#/components/parameters/project_id" 18830 } 18831 ], 18832 "responses": { 18833 "201": { 18834 "description": "Created", 18835 "content": { 18836 "application/json": { 18837 "schema": { 18838 "$ref": "#/components/schemas/screenshot" 18839 } 18840 } 18841 }, 18842 "headers": { 18843 "X-Rate-Limit-Limit": { 18844 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18845 }, 18846 "X-Rate-Limit-Remaining": { 18847 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18848 }, 18849 "X-Rate-Limit-Reset": { 18850 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18851 } 18852 } 18853 }, 18854 "400": { 18855 "$ref": "#/components/responses/400" 18856 }, 18857 "404": { 18858 "$ref": "#/components/responses/404" 18859 }, 18860 "429": { 18861 "$ref": "#/components/responses/429" 18862 } 18863 }, 18864 "x-code-samples": [ 18865 { 18866 "lang": "Curl", 18867 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F branch=my-feature-branch \\\n -F name=A%20screenshot%20name \\\n -F description=A%20screenshot%20description \\\n -F filename=@/path/to/my/screenshot.png" 18868 }, 18869 { 18870 "lang": "CLI v2", 18871 "source": "phrase screenshots create \\\n--project_id <project_id> \\\n--branch \"my-feature-branch\" --name \"A screenshot name\" --description \"A screenshot description\" --filename \"/path/to/my/screenshot.png\" \\\n--access_token <token>" 18872 } 18873 ], 18874 "requestBody": { 18875 "required": true, 18876 "content": { 18877 "multipart/form-data": { 18878 "schema": { 18879 "type": "object", 18880 "title": "screenshot/create/parameters", 18881 "properties": { 18882 "branch": { 18883 "description": "specify the branch to use", 18884 "type": "string", 18885 "example": "my-feature-branch" 18886 }, 18887 "name": { 18888 "description": "Name of the screenshot", 18889 "type": "string", 18890 "example": "A screenshot name" 18891 }, 18892 "description": { 18893 "description": "Description of the screenshot", 18894 "type": "string", 18895 "example": "A screenshot description" 18896 }, 18897 "filename": { 18898 "description": "Screenshot file", 18899 "type": "string", 18900 "format": "binary", 18901 "example": "/path/to/my/screenshot.png" 18902 } 18903 } 18904 } 18905 } 18906 } 18907 }, 18908 "x-cli-version": "2.5" 18909 } 18910 }, 18911 "/projects/{project_id}/screenshots/{id}": { 18912 "get": { 18913 "summary": "Get a single screenshot", 18914 "description": "Get details on a single screenshot for a given project.", 18915 "operationId": "screenshot/show", 18916 "tags": [ 18917 "Screenshots" 18918 ], 18919 "parameters": [ 18920 { 18921 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18922 }, 18923 { 18924 "$ref": "#/components/parameters/project_id" 18925 }, 18926 { 18927 "$ref": "#/components/parameters/id" 18928 }, 18929 { 18930 "description": "specify the branch to use", 18931 "example": "my-feature-branch", 18932 "name": "branch", 18933 "in": "query", 18934 "schema": { 18935 "type": "string" 18936 } 18937 } 18938 ], 18939 "responses": { 18940 "200": { 18941 "description": "OK", 18942 "content": { 18943 "application/json": { 18944 "schema": { 18945 "$ref": "#/components/schemas/screenshot" 18946 } 18947 } 18948 }, 18949 "headers": { 18950 "X-Rate-Limit-Limit": { 18951 "$ref": "#/components/headers/X-Rate-Limit-Limit" 18952 }, 18953 "X-Rate-Limit-Remaining": { 18954 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 18955 }, 18956 "X-Rate-Limit-Reset": { 18957 "$ref": "#/components/headers/X-Rate-Limit-Reset" 18958 } 18959 } 18960 }, 18961 "400": { 18962 "$ref": "#/components/responses/400" 18963 }, 18964 "404": { 18965 "$ref": "#/components/responses/404" 18966 }, 18967 "429": { 18968 "$ref": "#/components/responses/429" 18969 } 18970 }, 18971 "x-code-samples": [ 18972 { 18973 "lang": "Curl", 18974 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 18975 }, 18976 { 18977 "lang": "CLI v2", 18978 "source": "phrase screenshots show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 18979 } 18980 ], 18981 "x-cli-version": "2.5" 18982 }, 18983 "patch": { 18984 "summary": "Update a screenshot", 18985 "description": "Update an existing screenshot.", 18986 "operationId": "screenshot/update", 18987 "tags": [ 18988 "Screenshots" 18989 ], 18990 "parameters": [ 18991 { 18992 "$ref": "#/components/parameters/X-PhraseApp-OTP" 18993 }, 18994 { 18995 "$ref": "#/components/parameters/project_id" 18996 }, 18997 { 18998 "$ref": "#/components/parameters/id" 18999 } 19000 ], 19001 "responses": { 19002 "200": { 19003 "description": "OK", 19004 "content": { 19005 "application/json": { 19006 "schema": { 19007 "$ref": "#/components/schemas/screenshot" 19008 } 19009 } 19010 }, 19011 "headers": { 19012 "X-Rate-Limit-Limit": { 19013 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19014 }, 19015 "X-Rate-Limit-Remaining": { 19016 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19017 }, 19018 "X-Rate-Limit-Reset": { 19019 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19020 } 19021 } 19022 }, 19023 "400": { 19024 "$ref": "#/components/responses/400" 19025 }, 19026 "404": { 19027 "$ref": "#/components/responses/404" 19028 }, 19029 "429": { 19030 "$ref": "#/components/responses/429" 19031 } 19032 }, 19033 "x-code-samples": [ 19034 { 19035 "lang": "Curl", 19036 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -F branch=my-feature-branch \\\n -F name=A%20screenshot%20name \\\n -F description=A%20screenshot%20description \\\n -F filename=@/path/to/my/screenshot.png" 19037 }, 19038 { 19039 "lang": "CLI v2", 19040 "source": "phrase screenshots update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\": \"A screenshot name\", \"description\": \"A screenshot description\", \"filename\":\"/path/to/my/screenshot.png\"}' \\\n--access_token <token>" 19041 } 19042 ], 19043 "requestBody": { 19044 "required": true, 19045 "content": { 19046 "application/json": { 19047 "schema": { 19048 "type": "object", 19049 "title": "screenshot/update/parameters", 19050 "properties": { 19051 "branch": { 19052 "description": "specify the branch to use", 19053 "type": "string", 19054 "example": "my-feature-branch" 19055 }, 19056 "name": { 19057 "description": "Name of the screenshot", 19058 "type": "string", 19059 "example": "A screenshot name" 19060 }, 19061 "description": { 19062 "description": "Description of the screenshot", 19063 "type": "string", 19064 "example": "A screenshot description" 19065 }, 19066 "filename": { 19067 "description": "Screenshot file", 19068 "type": "string", 19069 "format": "binary", 19070 "example": "/path/to/my/screenshot.png" 19071 } 19072 } 19073 } 19074 } 19075 } 19076 }, 19077 "x-cli-version": "2.5" 19078 }, 19079 "delete": { 19080 "summary": "Delete a screenshot", 19081 "description": "Delete an existing screenshot.", 19082 "operationId": "screenshot/delete", 19083 "tags": [ 19084 "Screenshots" 19085 ], 19086 "parameters": [ 19087 { 19088 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19089 }, 19090 { 19091 "$ref": "#/components/parameters/project_id" 19092 }, 19093 { 19094 "$ref": "#/components/parameters/id" 19095 }, 19096 { 19097 "description": "specify the branch to use", 19098 "example": "my-feature-branch", 19099 "name": "branch", 19100 "in": "query", 19101 "schema": { 19102 "type": "string" 19103 } 19104 } 19105 ], 19106 "responses": { 19107 "204": { 19108 "$ref": "#/components/responses/204" 19109 }, 19110 "400": { 19111 "$ref": "#/components/responses/400" 19112 }, 19113 "404": { 19114 "$ref": "#/components/responses/404" 19115 }, 19116 "429": { 19117 "$ref": "#/components/responses/429" 19118 } 19119 }, 19120 "x-code-samples": [ 19121 { 19122 "lang": "Curl", 19123 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/screenshots/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 19124 }, 19125 { 19126 "lang": "CLI v2", 19127 "source": "phrase screenshots delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 19128 } 19129 ], 19130 "x-cli-version": "2.5" 19131 } 19132 }, 19133 "/accounts/{account_id}/glossaries/{glossary_id}/terms": { 19134 "get": { 19135 "summary": "List terms", 19136 "description": "List all terms in term bases (previously: glossary) that the current user has access to.", 19137 "operationId": "glossary_terms/list", 19138 "tags": [ 19139 "Glossary Terms" 19140 ], 19141 "parameters": [ 19142 { 19143 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19144 }, 19145 { 19146 "$ref": "#/components/parameters/account_id" 19147 }, 19148 { 19149 "$ref": "#/components/parameters/glossary_id" 19150 }, 19151 { 19152 "$ref": "#/components/parameters/page" 19153 }, 19154 { 19155 "$ref": "#/components/parameters/per_page" 19156 } 19157 ], 19158 "responses": { 19159 "200": { 19160 "description": "OK", 19161 "content": { 19162 "application/json": { 19163 "schema": { 19164 "type": "array", 19165 "items": { 19166 "$ref": "#/components/schemas/glossary_term" 19167 } 19168 } 19169 } 19170 }, 19171 "headers": { 19172 "X-Rate-Limit-Limit": { 19173 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19174 }, 19175 "X-Rate-Limit-Remaining": { 19176 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19177 }, 19178 "X-Rate-Limit-Reset": { 19179 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19180 }, 19181 "Link": { 19182 "$ref": "#/components/headers/Link" 19183 }, 19184 "Pagination": { 19185 "$ref": "#/components/headers/Pagination" 19186 } 19187 } 19188 }, 19189 "400": { 19190 "$ref": "#/components/responses/400" 19191 }, 19192 "404": { 19193 "$ref": "#/components/responses/404" 19194 }, 19195 "429": { 19196 "$ref": "#/components/responses/429" 19197 } 19198 }, 19199 "x-code-samples": [ 19200 { 19201 "lang": "Curl", 19202 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 19203 }, 19204 { 19205 "lang": "CLI v2", 19206 "source": "phrase glossary_terms list \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--access_token <token>" 19207 } 19208 ], 19209 "x-cli-version": "2.5" 19210 }, 19211 "post": { 19212 "summary": "Create a term", 19213 "description": "Create a new term in a term base (previously: glossary).", 19214 "operationId": "glossary_term/create", 19215 "tags": [ 19216 "Glossary Terms" 19217 ], 19218 "parameters": [ 19219 { 19220 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19221 }, 19222 { 19223 "$ref": "#/components/parameters/account_id" 19224 }, 19225 { 19226 "$ref": "#/components/parameters/glossary_id" 19227 } 19228 ], 19229 "responses": { 19230 "201": { 19231 "description": "Created", 19232 "content": { 19233 "application/json": { 19234 "schema": { 19235 "$ref": "#/components/schemas/glossary_term" 19236 } 19237 } 19238 }, 19239 "headers": { 19240 "X-Rate-Limit-Limit": { 19241 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19242 }, 19243 "X-Rate-Limit-Remaining": { 19244 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19245 }, 19246 "X-Rate-Limit-Reset": { 19247 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19248 } 19249 } 19250 }, 19251 "400": { 19252 "$ref": "#/components/responses/400" 19253 }, 19254 "404": { 19255 "$ref": "#/components/responses/404" 19256 }, 19257 "429": { 19258 "$ref": "#/components/responses/429" 19259 } 19260 }, 19261 "x-code-samples": [ 19262 { 19263 "lang": "Curl", 19264 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"term\":\"MyCompany\",\"description\":\"Use this when refering to our company\",\"translatable\":true,\"case_sensitive\":true}' \\\n -H 'Content-Type: application/json'" 19265 }, 19266 { 19267 "lang": "CLI v2", 19268 "source": "phrase glossary_terms create \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--data '{\"term\":\"MyCompany\", \"description\": \"Use this when refering to our company\", \"translatable\":true, \"case_sensitive\":true}' \\\n--access_token <token>" 19269 } 19270 ], 19271 "requestBody": { 19272 "required": true, 19273 "content": { 19274 "application/json": { 19275 "schema": { 19276 "type": "object", 19277 "title": "glossary_term/create/parameters", 19278 "required": [ 19279 "term" 19280 ], 19281 "properties": { 19282 "term": { 19283 "description": "Glossary term", 19284 "type": "string", 19285 "example": "MyCompany" 19286 }, 19287 "description": { 19288 "description": "Description of term", 19289 "type": "string", 19290 "example": "Use this when refering to our company" 19291 }, 19292 "translatable": { 19293 "description": "Indicates whether the term should be used for all languages or can be translated", 19294 "type": "boolean", 19295 "example": true 19296 }, 19297 "case_sensitive": { 19298 "description": "Indicates whether the term is case sensitive", 19299 "type": "boolean", 19300 "example": true 19301 } 19302 } 19303 } 19304 } 19305 } 19306 }, 19307 "x-cli-version": "2.5" 19308 } 19309 }, 19310 "/accounts/{account_id}/glossaries/{glossary_id}/terms/{id}": { 19311 "get": { 19312 "summary": "Get a single term", 19313 "description": "Get details for a single term in the term base (previously: glossary).", 19314 "operationId": "glossary_term/show", 19315 "tags": [ 19316 "Glossary Terms" 19317 ], 19318 "parameters": [ 19319 { 19320 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19321 }, 19322 { 19323 "$ref": "#/components/parameters/account_id" 19324 }, 19325 { 19326 "$ref": "#/components/parameters/glossary_id" 19327 }, 19328 { 19329 "$ref": "#/components/parameters/id" 19330 } 19331 ], 19332 "responses": { 19333 "200": { 19334 "description": "OK", 19335 "content": { 19336 "application/json": { 19337 "schema": { 19338 "$ref": "#/components/schemas/glossary_term" 19339 } 19340 } 19341 }, 19342 "headers": { 19343 "X-Rate-Limit-Limit": { 19344 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19345 }, 19346 "X-Rate-Limit-Remaining": { 19347 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19348 }, 19349 "X-Rate-Limit-Reset": { 19350 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19351 } 19352 } 19353 }, 19354 "400": { 19355 "$ref": "#/components/responses/400" 19356 }, 19357 "404": { 19358 "$ref": "#/components/responses/404" 19359 }, 19360 "429": { 19361 "$ref": "#/components/responses/429" 19362 } 19363 }, 19364 "x-code-samples": [ 19365 { 19366 "lang": "Curl", 19367 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 19368 }, 19369 { 19370 "lang": "CLI v2", 19371 "source": "phrase glossary_terms show \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--id <id> \\\n--access_token <token>" 19372 } 19373 ], 19374 "x-cli-version": "2.5" 19375 }, 19376 "patch": { 19377 "summary": "Update a term", 19378 "description": "Update an existing term in a term base (previously: glossary).", 19379 "operationId": "glossary_term/update", 19380 "tags": [ 19381 "Glossary Terms" 19382 ], 19383 "parameters": [ 19384 { 19385 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19386 }, 19387 { 19388 "$ref": "#/components/parameters/account_id" 19389 }, 19390 { 19391 "$ref": "#/components/parameters/glossary_id" 19392 }, 19393 { 19394 "$ref": "#/components/parameters/id" 19395 } 19396 ], 19397 "responses": { 19398 "200": { 19399 "description": "OK", 19400 "content": { 19401 "application/json": { 19402 "schema": { 19403 "$ref": "#/components/schemas/glossary_term" 19404 } 19405 } 19406 }, 19407 "headers": { 19408 "X-Rate-Limit-Limit": { 19409 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19410 }, 19411 "X-Rate-Limit-Remaining": { 19412 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19413 }, 19414 "X-Rate-Limit-Reset": { 19415 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19416 } 19417 } 19418 }, 19419 "400": { 19420 "$ref": "#/components/responses/400" 19421 }, 19422 "404": { 19423 "$ref": "#/components/responses/404" 19424 }, 19425 "429": { 19426 "$ref": "#/components/responses/429" 19427 } 19428 }, 19429 "x-code-samples": [ 19430 { 19431 "lang": "Curl", 19432 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"term\":\"MyCompany\",\"description\":\"Use this when refering to our company\",\"translatable\":true,\"case_sensitive\":true}' \\\n -H 'Content-Type: application/json'" 19433 }, 19434 { 19435 "lang": "CLI v2", 19436 "source": "phrase glossary_terms update \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--id <id> \\\n--data '{\"term\":\"MyCompany\", \"description\": \"Use this when refering to our company\", \"translatable\":true, \"case_sensitive\":true}' \\\n--access_token <token>" 19437 } 19438 ], 19439 "requestBody": { 19440 "required": true, 19441 "content": { 19442 "application/json": { 19443 "schema": { 19444 "type": "object", 19445 "title": "glossary_term/update/parameters", 19446 "properties": { 19447 "term": { 19448 "description": "Glossary term", 19449 "type": "string", 19450 "example": "MyCompany" 19451 }, 19452 "description": { 19453 "description": "Description of term", 19454 "type": "string", 19455 "example": "Use this when refering to our company" 19456 }, 19457 "translatable": { 19458 "description": "Indicates whether the term should be used for all languages or can be translated", 19459 "type": "boolean", 19460 "example": true 19461 }, 19462 "case_sensitive": { 19463 "description": "Indicates whether the term is case sensitive", 19464 "type": "boolean", 19465 "example": true 19466 } 19467 } 19468 } 19469 } 19470 } 19471 }, 19472 "x-cli-version": "2.5" 19473 }, 19474 "delete": { 19475 "summary": "Delete a term", 19476 "description": "Delete an existing term in a term base (previously: glossary).", 19477 "operationId": "glossary_term/delete", 19478 "tags": [ 19479 "Glossary Terms" 19480 ], 19481 "parameters": [ 19482 { 19483 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19484 }, 19485 { 19486 "$ref": "#/components/parameters/account_id" 19487 }, 19488 { 19489 "$ref": "#/components/parameters/glossary_id" 19490 }, 19491 { 19492 "$ref": "#/components/parameters/id" 19493 } 19494 ], 19495 "responses": { 19496 "204": { 19497 "$ref": "#/components/responses/204" 19498 }, 19499 "400": { 19500 "$ref": "#/components/responses/400" 19501 }, 19502 "404": { 19503 "$ref": "#/components/responses/404" 19504 }, 19505 "429": { 19506 "$ref": "#/components/responses/429" 19507 } 19508 }, 19509 "x-code-samples": [ 19510 { 19511 "lang": "Curl", 19512 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 19513 }, 19514 { 19515 "lang": "CLI v2", 19516 "source": "phrase glossary_terms delete \\\n--account_id <account_id> \\\n--glossary_id <glossary_id> \\\n--id <id> \\\n--access_token <token>" 19517 } 19518 ], 19519 "x-cli-version": "2.5" 19520 } 19521 }, 19522 "/projects/{project_id}/tags": { 19523 "get": { 19524 "summary": "List tags", 19525 "description": "List all tags for the given project.", 19526 "operationId": "tags/list", 19527 "tags": [ 19528 "Tags" 19529 ], 19530 "parameters": [ 19531 { 19532 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19533 }, 19534 { 19535 "$ref": "#/components/parameters/project_id" 19536 }, 19537 { 19538 "$ref": "#/components/parameters/page" 19539 }, 19540 { 19541 "$ref": "#/components/parameters/per_page" 19542 }, 19543 { 19544 "description": "specify the branch to use", 19545 "example": "my-feature-branch", 19546 "name": "branch", 19547 "in": "query", 19548 "schema": { 19549 "type": "string" 19550 } 19551 } 19552 ], 19553 "responses": { 19554 "200": { 19555 "description": "OK", 19556 "content": { 19557 "application/json": { 19558 "schema": { 19559 "type": "array", 19560 "items": { 19561 "$ref": "#/components/schemas/tag" 19562 } 19563 } 19564 } 19565 }, 19566 "headers": { 19567 "X-Rate-Limit-Limit": { 19568 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19569 }, 19570 "X-Rate-Limit-Remaining": { 19571 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19572 }, 19573 "X-Rate-Limit-Reset": { 19574 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19575 }, 19576 "Link": { 19577 "$ref": "#/components/headers/Link" 19578 }, 19579 "Pagination": { 19580 "$ref": "#/components/headers/Pagination" 19581 } 19582 } 19583 }, 19584 "400": { 19585 "$ref": "#/components/responses/400" 19586 }, 19587 "404": { 19588 "$ref": "#/components/responses/404" 19589 }, 19590 "429": { 19591 "$ref": "#/components/responses/429" 19592 } 19593 }, 19594 "x-code-samples": [ 19595 { 19596 "lang": "Curl", 19597 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/tags?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 19598 }, 19599 { 19600 "lang": "CLI v2", 19601 "source": "phrase tags list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 19602 } 19603 ], 19604 "x-cli-version": "2.5" 19605 }, 19606 "post": { 19607 "summary": "Create a tag", 19608 "description": "Create a new tag.", 19609 "operationId": "tag/create", 19610 "tags": [ 19611 "Tags" 19612 ], 19613 "parameters": [ 19614 { 19615 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19616 }, 19617 { 19618 "$ref": "#/components/parameters/project_id" 19619 } 19620 ], 19621 "responses": { 19622 "201": { 19623 "description": "Created", 19624 "content": { 19625 "application/json": { 19626 "schema": { 19627 "$ref": "#/components/schemas/tag_with_stats" 19628 } 19629 } 19630 }, 19631 "headers": { 19632 "X-Rate-Limit-Limit": { 19633 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19634 }, 19635 "X-Rate-Limit-Remaining": { 19636 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19637 }, 19638 "X-Rate-Limit-Reset": { 19639 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19640 } 19641 } 19642 }, 19643 "400": { 19644 "$ref": "#/components/responses/400" 19645 }, 19646 "404": { 19647 "$ref": "#/components/responses/404" 19648 }, 19649 "429": { 19650 "$ref": "#/components/responses/429" 19651 } 19652 }, 19653 "x-code-samples": [ 19654 { 19655 "lang": "Curl", 19656 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/tags\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"my-feature\"}' \\\n -H 'Content-Type: application/json'" 19657 }, 19658 { 19659 "lang": "CLI v2", 19660 "source": "phrase tags create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"my-feature\"}' \\\n--access_token <token>" 19661 } 19662 ], 19663 "requestBody": { 19664 "required": true, 19665 "content": { 19666 "application/json": { 19667 "schema": { 19668 "type": "object", 19669 "title": "tag/create/parameters", 19670 "required": [ 19671 "name" 19672 ], 19673 "properties": { 19674 "branch": { 19675 "description": "specify the branch to use", 19676 "type": "string", 19677 "example": "my-feature-branch" 19678 }, 19679 "name": { 19680 "description": "Name of the tag", 19681 "type": "string", 19682 "example": "my-feature" 19683 } 19684 } 19685 } 19686 } 19687 } 19688 }, 19689 "x-cli-version": "2.5" 19690 } 19691 }, 19692 "/projects/{project_id}/tags/{name}": { 19693 "get": { 19694 "summary": "Get a single tag", 19695 "description": "Get details and progress information on a single tag for a given project.", 19696 "operationId": "tag/show", 19697 "tags": [ 19698 "Tags" 19699 ], 19700 "parameters": [ 19701 { 19702 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19703 }, 19704 { 19705 "$ref": "#/components/parameters/project_id" 19706 }, 19707 { 19708 "$ref": "#/components/parameters/name" 19709 }, 19710 { 19711 "description": "specify the branch to use", 19712 "example": "my-feature-branch", 19713 "name": "branch", 19714 "in": "query", 19715 "schema": { 19716 "type": "string" 19717 } 19718 } 19719 ], 19720 "responses": { 19721 "200": { 19722 "description": "OK", 19723 "content": { 19724 "application/json": { 19725 "schema": { 19726 "$ref": "#/components/schemas/tag_with_stats" 19727 } 19728 } 19729 }, 19730 "headers": { 19731 "X-Rate-Limit-Limit": { 19732 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19733 }, 19734 "X-Rate-Limit-Remaining": { 19735 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19736 }, 19737 "X-Rate-Limit-Reset": { 19738 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19739 } 19740 } 19741 }, 19742 "400": { 19743 "$ref": "#/components/responses/400" 19744 }, 19745 "404": { 19746 "$ref": "#/components/responses/404" 19747 }, 19748 "429": { 19749 "$ref": "#/components/responses/429" 19750 } 19751 }, 19752 "x-code-samples": [ 19753 { 19754 "lang": "Curl", 19755 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/tags/:name?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 19756 }, 19757 { 19758 "lang": "CLI v2", 19759 "source": "phrase tags show \\\n--project_id <project_id> \\\n--name <name> \\\n--branch my-feature-branch \\\n--access_token <token>" 19760 } 19761 ], 19762 "x-cli-version": "2.5" 19763 }, 19764 "delete": { 19765 "summary": "Delete a tag", 19766 "description": "Delete an existing tag.", 19767 "operationId": "tag/delete", 19768 "tags": [ 19769 "Tags" 19770 ], 19771 "parameters": [ 19772 { 19773 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19774 }, 19775 { 19776 "$ref": "#/components/parameters/project_id" 19777 }, 19778 { 19779 "$ref": "#/components/parameters/name" 19780 }, 19781 { 19782 "description": "specify the branch to use", 19783 "example": "my-feature-branch", 19784 "name": "branch", 19785 "in": "query", 19786 "schema": { 19787 "type": "string" 19788 } 19789 } 19790 ], 19791 "responses": { 19792 "204": { 19793 "$ref": "#/components/responses/204" 19794 }, 19795 "400": { 19796 "$ref": "#/components/responses/400" 19797 }, 19798 "404": { 19799 "$ref": "#/components/responses/404" 19800 }, 19801 "429": { 19802 "$ref": "#/components/responses/429" 19803 } 19804 }, 19805 "x-code-samples": [ 19806 { 19807 "lang": "Curl", 19808 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/tags/:name\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 19809 }, 19810 { 19811 "lang": "CLI v2", 19812 "source": "phrase tags delete \\\n--project_id <project_id> \\\n--name <name> \\\n--branch my-feature-branch \\\n--access_token <token>" 19813 } 19814 ], 19815 "x-cli-version": "2.5" 19816 } 19817 }, 19818 "/projects/{project_id}/blacklisted_keys": { 19819 "get": { 19820 "summary": "List blocked keys", 19821 "description": "List all rules for blocking keys for the given project.", 19822 "operationId": "blacklisted_keys/list", 19823 "tags": [ 19824 "Blacklisted Keys" 19825 ], 19826 "parameters": [ 19827 { 19828 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19829 }, 19830 { 19831 "$ref": "#/components/parameters/project_id" 19832 }, 19833 { 19834 "$ref": "#/components/parameters/page" 19835 }, 19836 { 19837 "$ref": "#/components/parameters/per_page" 19838 }, 19839 { 19840 "description": "specify the branch to use", 19841 "example": "my-feature-branch", 19842 "name": "branch", 19843 "in": "query", 19844 "schema": { 19845 "type": "string" 19846 } 19847 } 19848 ], 19849 "responses": { 19850 "200": { 19851 "description": "OK", 19852 "content": { 19853 "application/json": { 19854 "schema": { 19855 "type": "array", 19856 "items": { 19857 "$ref": "#/components/schemas/blacklisted_key" 19858 } 19859 } 19860 } 19861 }, 19862 "headers": { 19863 "X-Rate-Limit-Limit": { 19864 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19865 }, 19866 "X-Rate-Limit-Remaining": { 19867 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19868 }, 19869 "X-Rate-Limit-Reset": { 19870 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19871 }, 19872 "Link": { 19873 "$ref": "#/components/headers/Link" 19874 }, 19875 "Pagination": { 19876 "$ref": "#/components/headers/Pagination" 19877 } 19878 } 19879 }, 19880 "400": { 19881 "$ref": "#/components/responses/400" 19882 }, 19883 "404": { 19884 "$ref": "#/components/responses/404" 19885 }, 19886 "429": { 19887 "$ref": "#/components/responses/429" 19888 } 19889 }, 19890 "x-code-samples": [ 19891 { 19892 "lang": "Curl", 19893 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/blacklisted_keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 19894 }, 19895 { 19896 "lang": "CLI v2", 19897 "source": "phrase blacklisted_keys list \\\n--project_id <project_id> \\\n--access_token <token>" 19898 } 19899 ], 19900 "x-cli-version": "2.5" 19901 }, 19902 "post": { 19903 "summary": "Create a blocked key", 19904 "description": "Create a new rule for blocking keys.", 19905 "operationId": "blacklisted_key/create", 19906 "tags": [ 19907 "Blacklisted Keys" 19908 ], 19909 "parameters": [ 19910 { 19911 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19912 }, 19913 { 19914 "$ref": "#/components/parameters/project_id" 19915 } 19916 ], 19917 "responses": { 19918 "201": { 19919 "description": "Created", 19920 "content": { 19921 "application/json": { 19922 "schema": { 19923 "$ref": "#/components/schemas/blacklisted_key" 19924 } 19925 } 19926 }, 19927 "headers": { 19928 "X-Rate-Limit-Limit": { 19929 "$ref": "#/components/headers/X-Rate-Limit-Limit" 19930 }, 19931 "X-Rate-Limit-Remaining": { 19932 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 19933 }, 19934 "X-Rate-Limit-Reset": { 19935 "$ref": "#/components/headers/X-Rate-Limit-Reset" 19936 } 19937 } 19938 }, 19939 "400": { 19940 "$ref": "#/components/responses/400" 19941 }, 19942 "404": { 19943 "$ref": "#/components/responses/404" 19944 }, 19945 "429": { 19946 "$ref": "#/components/responses/429" 19947 } 19948 }, 19949 "x-code-samples": [ 19950 { 19951 "lang": "Curl", 19952 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/blacklisted_keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"date.formats.*\"}' \\\n -H 'Content-Type: application/json'" 19953 }, 19954 { 19955 "lang": "CLI v2", 19956 "source": "phrase blacklisted_keys create \\\n--project_id <project_id> \\\n--data '{\"name\":\"'date.formats.*'\"}' \\\n--access_token <token>" 19957 } 19958 ], 19959 "requestBody": { 19960 "required": true, 19961 "content": { 19962 "application/json": { 19963 "schema": { 19964 "type": "object", 19965 "title": "blacklisted_key/create/parameters", 19966 "required": [ 19967 "name" 19968 ], 19969 "properties": { 19970 "name": { 19971 "description": "Blocked key name", 19972 "type": "string", 19973 "example": "date.formats.*" 19974 } 19975 } 19976 } 19977 } 19978 } 19979 }, 19980 "x-cli-version": "2.5" 19981 } 19982 }, 19983 "/projects/{project_id}/blacklisted_keys/{id}": { 19984 "get": { 19985 "summary": "Get a single blocked key", 19986 "description": "Get details on a single rule for blocking keys for a given project.", 19987 "operationId": "blacklisted_key/show", 19988 "tags": [ 19989 "Blacklisted Keys" 19990 ], 19991 "parameters": [ 19992 { 19993 "$ref": "#/components/parameters/X-PhraseApp-OTP" 19994 }, 19995 { 19996 "$ref": "#/components/parameters/project_id" 19997 }, 19998 { 19999 "$ref": "#/components/parameters/id" 20000 } 20001 ], 20002 "responses": { 20003 "200": { 20004 "description": "OK", 20005 "content": { 20006 "application/json": { 20007 "schema": { 20008 "$ref": "#/components/schemas/blacklisted_key" 20009 } 20010 } 20011 }, 20012 "headers": { 20013 "X-Rate-Limit-Limit": { 20014 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20015 }, 20016 "X-Rate-Limit-Remaining": { 20017 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20018 }, 20019 "X-Rate-Limit-Reset": { 20020 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20021 } 20022 } 20023 }, 20024 "400": { 20025 "$ref": "#/components/responses/400" 20026 }, 20027 "404": { 20028 "$ref": "#/components/responses/404" 20029 }, 20030 "429": { 20031 "$ref": "#/components/responses/429" 20032 } 20033 }, 20034 "x-code-samples": [ 20035 { 20036 "lang": "Curl", 20037 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 20038 }, 20039 { 20040 "lang": "CLI v2", 20041 "source": "phrase blacklisted_keys show \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 20042 } 20043 ], 20044 "x-cli-version": "2.5" 20045 }, 20046 "patch": { 20047 "summary": "Update a blocked key", 20048 "description": "Update an existing rule for blocking keys.", 20049 "operationId": "blacklisted_key/update", 20050 "tags": [ 20051 "Blacklisted Keys" 20052 ], 20053 "parameters": [ 20054 { 20055 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20056 }, 20057 { 20058 "$ref": "#/components/parameters/project_id" 20059 }, 20060 { 20061 "$ref": "#/components/parameters/id" 20062 } 20063 ], 20064 "responses": { 20065 "200": { 20066 "description": "OK", 20067 "content": { 20068 "application/json": { 20069 "schema": { 20070 "$ref": "#/components/schemas/blacklisted_key" 20071 } 20072 } 20073 }, 20074 "headers": { 20075 "X-Rate-Limit-Limit": { 20076 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20077 }, 20078 "X-Rate-Limit-Remaining": { 20079 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20080 }, 20081 "X-Rate-Limit-Reset": { 20082 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20083 } 20084 } 20085 }, 20086 "400": { 20087 "$ref": "#/components/responses/400" 20088 }, 20089 "404": { 20090 "$ref": "#/components/responses/404" 20091 }, 20092 "429": { 20093 "$ref": "#/components/responses/429" 20094 } 20095 }, 20096 "x-code-samples": [ 20097 { 20098 "lang": "Curl", 20099 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"date.formats.*\"}' \\\n -H 'Content-Type: application/json'" 20100 }, 20101 { 20102 "lang": "CLI v2", 20103 "source": "phrase blacklisted_keys update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"name\":\"'date.formats.*'\"}' \\\n--access_token <token>" 20104 } 20105 ], 20106 "requestBody": { 20107 "required": true, 20108 "content": { 20109 "application/json": { 20110 "schema": { 20111 "type": "object", 20112 "title": "blacklisted_key/update/parameters", 20113 "properties": { 20114 "name": { 20115 "description": "Blocked key name", 20116 "type": "string", 20117 "example": "date.formats.*" 20118 } 20119 } 20120 } 20121 } 20122 } 20123 }, 20124 "x-cli-version": "2.5" 20125 }, 20126 "delete": { 20127 "summary": "Delete a blocked key", 20128 "description": "Delete an existing rule for blocking keys.", 20129 "operationId": "blacklisted_key/delete", 20130 "tags": [ 20131 "Blacklisted Keys" 20132 ], 20133 "parameters": [ 20134 { 20135 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20136 }, 20137 { 20138 "$ref": "#/components/parameters/project_id" 20139 }, 20140 { 20141 "$ref": "#/components/parameters/id" 20142 } 20143 ], 20144 "responses": { 20145 "204": { 20146 "$ref": "#/components/responses/204" 20147 }, 20148 "400": { 20149 "$ref": "#/components/responses/400" 20150 }, 20151 "404": { 20152 "$ref": "#/components/responses/404" 20153 }, 20154 "429": { 20155 "$ref": "#/components/responses/429" 20156 } 20157 }, 20158 "x-code-samples": [ 20159 { 20160 "lang": "Curl", 20161 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 20162 }, 20163 { 20164 "lang": "CLI v2", 20165 "source": "phrase blacklisted_keys delete \\\n--project_id <project_id> \\\n--id <id> \\\n--access_token <token>" 20166 } 20167 ], 20168 "x-cli-version": "2.5" 20169 } 20170 }, 20171 "/projects/{project_id}/keys": { 20172 "get": { 20173 "summary": "List keys", 20174 "description": "List all keys for the given project. Alternatively you can POST requests to /search.", 20175 "operationId": "keys/list", 20176 "tags": [ 20177 "Keys" 20178 ], 20179 "parameters": [ 20180 { 20181 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20182 }, 20183 { 20184 "$ref": "#/components/parameters/project_id" 20185 }, 20186 { 20187 "$ref": "#/components/parameters/page" 20188 }, 20189 { 20190 "$ref": "#/components/parameters/per_page" 20191 }, 20192 { 20193 "description": "specify the branch to use", 20194 "example": "my-feature-branch", 20195 "name": "branch", 20196 "in": "query", 20197 "schema": { 20198 "type": "string" 20199 } 20200 }, 20201 { 20202 "description": "Sort by field. Can be one of: name, created_at, updated_at.", 20203 "example": "updated_at", 20204 "name": "sort", 20205 "in": "query", 20206 "schema": { 20207 "type": "string" 20208 } 20209 }, 20210 { 20211 "description": "Order direction. Can be one of: asc, desc.", 20212 "example": "desc", 20213 "name": "order", 20214 "in": "query", 20215 "schema": { 20216 "type": "string" 20217 } 20218 }, 20219 { 20220 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n <li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n <li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 20221 "example": "mykey* translated:true", 20222 "name": "q", 20223 "in": "query", 20224 "schema": { 20225 "type": "string" 20226 } 20227 }, 20228 { 20229 "description": "Locale used to determine the translation state of a key when filtering for untranslated or translated keys.", 20230 "example": "abcd1234abcd1234abcd1234abcd1234", 20231 "name": "locale_id", 20232 "in": "query", 20233 "schema": { 20234 "type": "string" 20235 } 20236 } 20237 ], 20238 "responses": { 20239 "200": { 20240 "description": "OK", 20241 "content": { 20242 "application/json": { 20243 "schema": { 20244 "type": "array", 20245 "items": { 20246 "$ref": "#/components/schemas/translation_key" 20247 } 20248 } 20249 } 20250 }, 20251 "headers": { 20252 "X-Rate-Limit-Limit": { 20253 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20254 }, 20255 "X-Rate-Limit-Remaining": { 20256 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20257 }, 20258 "X-Rate-Limit-Reset": { 20259 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20260 }, 20261 "Link": { 20262 "$ref": "#/components/headers/Link" 20263 }, 20264 "Pagination": { 20265 "$ref": "#/components/headers/Pagination" 20266 } 20267 } 20268 }, 20269 "400": { 20270 "$ref": "#/components/responses/400" 20271 }, 20272 "404": { 20273 "$ref": "#/components/responses/404" 20274 }, 20275 "429": { 20276 "$ref": "#/components/responses/429" 20277 } 20278 }, 20279 "x-code-samples": [ 20280 { 20281 "lang": "Curl", 20282 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys?branch=my-feature-branch&sort=updated_at&order=desc&q=mykey*%20translated:true&locale_id=abcd1234abcd1234abcd1234abcd1234\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 20283 }, 20284 { 20285 "lang": "CLI v2", 20286 "source": "phrase keys list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--sort updated_at \\\n--order desc \\\n--query 'mykey* translated:true' \\\n--locale_id abcd1234abcd1234abcd1234abcd1234 \\\n--access_token <token>" 20287 } 20288 ], 20289 "x-cli-version": "2.5" 20290 }, 20291 "post": { 20292 "summary": "Create a key", 20293 "description": "Create a new key.", 20294 "operationId": "key/create", 20295 "tags": [ 20296 "Keys" 20297 ], 20298 "parameters": [ 20299 { 20300 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20301 }, 20302 { 20303 "$ref": "#/components/parameters/project_id" 20304 } 20305 ], 20306 "responses": { 20307 "201": { 20308 "description": "Created", 20309 "content": { 20310 "application/json": { 20311 "schema": { 20312 "$ref": "#/components/schemas/translation_key_details" 20313 } 20314 } 20315 }, 20316 "headers": { 20317 "X-Rate-Limit-Limit": { 20318 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20319 }, 20320 "X-Rate-Limit-Remaining": { 20321 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20322 }, 20323 "X-Rate-Limit-Reset": { 20324 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20325 } 20326 } 20327 }, 20328 "400": { 20329 "$ref": "#/components/responses/400" 20330 }, 20331 "404": { 20332 "$ref": "#/components/responses/404" 20333 }, 20334 "429": { 20335 "$ref": "#/components/responses/429" 20336 } 20337 }, 20338 "x-code-samples": [ 20339 { 20340 "lang": "Curl", 20341 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F branch=my-feature-branch \\\n -F name=home.index.headline \\\n -F description=Some%20description%20worth%20knowing... \\\n -F name_plural=home.index.headlines \\\n -F data_type=number \\\n -F tags=awesome-feature,needs-proofreading \\\n -F max_characters_allowed=140 \\\n -F screenshot=@/path/to/my/screenshot.png\n -F custom_metadata[property]=value" 20342 }, 20343 { 20344 "lang": "CLI v2", 20345 "source": "phrase keys create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"home.index.headline\", \"description\": \"Some description worth knowing...\", \"name_plural\":\"home.index.headlines\", \"data_type\":\"number\", \"tags\":\"awesome-feature,needs-proofreading\", \"max_characters_allowed\":\"140\", \"screenshot\":\"/path/to/my/screenshot.png\", \"custom_metadata\": {\"property\" => \"value\"}}' \\\n--access_token <token>" 20346 } 20347 ], 20348 "requestBody": { 20349 "required": true, 20350 "content": { 20351 "application/json": { 20352 "schema": { 20353 "type": "object", 20354 "title": "key/create/parameters", 20355 "required": [ 20356 "name" 20357 ], 20358 "properties": { 20359 "branch": { 20360 "description": "specify the branch to use", 20361 "type": "string", 20362 "example": "my-feature-branch" 20363 }, 20364 "name": { 20365 "description": "Key name", 20366 "type": "string", 20367 "example": "home.index.headline" 20368 }, 20369 "description": { 20370 "description": "Key description (usually includes contextual information for translators)", 20371 "type": "string", 20372 "example": "Some description worth knowing..." 20373 }, 20374 "plural": { 20375 "description": "Indicates whether key supports pluralization", 20376 "type": "boolean", 20377 "example": null 20378 }, 20379 "name_plural": { 20380 "description": "Plural name for the key (used in some file formats, e.g. Gettext)", 20381 "type": "string", 20382 "example": "home.index.headlines" 20383 }, 20384 "data_type": { 20385 "description": "Type of the key. Can be one of the following: string, number, boolean, array, markdown.", 20386 "type": "string", 20387 "example": "number" 20388 }, 20389 "tags": { 20390 "description": "List of tags separated by comma to be associated with the key.", 20391 "type": "string", 20392 "example": "awesome-feature,needs-proofreading" 20393 }, 20394 "max_characters_allowed": { 20395 "description": "Max. number of characters translations for this key can have.", 20396 "type": "integer", 20397 "example": 140 20398 }, 20399 "screenshot": { 20400 "description": "Screenshot/image for the key. This parameter is deprecated. Please use the Screenshots endpoint instead.", 20401 "type": "string", 20402 "format": "binary", 20403 "example": "/path/to/my/screenshot.png", 20404 "deprecated": true 20405 }, 20406 "remove_screenshot": { 20407 "description": "Indicates whether the screenshot will be deleted. This parameter is deprecated. Please use the Screenshots endpoint instead.", 20408 "type": "boolean", 20409 "example": null, 20410 "deprecated": true 20411 }, 20412 "unformatted": { 20413 "description": "Indicates whether the key should be exported as \"unformatted\". Supported by Android XML and other formats.", 20414 "type": "boolean", 20415 "example": null 20416 }, 20417 "default_translation_content": { 20418 "description": "Creates a translation in the default locale with the specified content", 20419 "type": "string", 20420 "example": "Default translation content" 20421 }, 20422 "xml_space_preserve": { 20423 "description": "Indicates whether the key should be exported with \"xml:space=preserve\". Supported by several XML-based formats.", 20424 "type": "boolean", 20425 "example": null 20426 }, 20427 "original_file": { 20428 "description": "Original file attribute. Used in some formats, e.g. XLIFF.", 20429 "type": "string", 20430 "example": null 20431 }, 20432 "localized_format_string": { 20433 "description": "NSStringLocalizedFormatKey attribute. Used in .stringsdict format.", 20434 "type": "string", 20435 "example": null 20436 }, 20437 "localized_format_key": { 20438 "description": "NSStringLocalizedFormatKey attribute. Used in .stringsdict format.", 20439 "type": "string", 20440 "example": null 20441 }, 20442 "custom_metadata": { 20443 "description": "Custom metadata property name and value pairs to be associated with key.", 20444 "type": "object", 20445 "example": { 20446 "fruit": "Apple", 20447 "vegetable": "Tomato" 20448 } 20449 } 20450 } 20451 } 20452 } 20453 } 20454 }, 20455 "x-cli-version": "2.5" 20456 }, 20457 "delete": { 20458 "summary": "Delete collection of keys", 20459 "description": "Delete all keys matching query. Same constraints as list. Please limit the number of affected keys to about 1,000 as you might experience timeouts otherwise.", 20460 "operationId": "keys/delete-collection", 20461 "tags": [ 20462 "Keys" 20463 ], 20464 "parameters": [ 20465 { 20466 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20467 }, 20468 { 20469 "$ref": "#/components/parameters/project_id" 20470 }, 20471 { 20472 "description": "specify the branch to use", 20473 "example": "my-feature-branch", 20474 "name": "branch", 20475 "in": "query", 20476 "schema": { 20477 "type": "string" 20478 } 20479 }, 20480 { 20481 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name</code> for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name</code> to filter for keys with certain tags</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 20482 "example": "mykey* translated:true", 20483 "name": "q", 20484 "in": "query", 20485 "schema": { 20486 "type": "string" 20487 } 20488 }, 20489 { 20490 "description": "Locale used to determine the translation state of a key when filtering for untranslated or translated keys.", 20491 "example": "abcd1234abcd1234abcd1234abcd1234", 20492 "name": "locale_id", 20493 "in": "query", 20494 "schema": { 20495 "type": "string" 20496 } 20497 } 20498 ], 20499 "responses": { 20500 "200": { 20501 "description": "OK", 20502 "content": { 20503 "application/json": { 20504 "schema": { 20505 "$ref": "#/components/schemas/affected_resources" 20506 } 20507 } 20508 }, 20509 "headers": { 20510 "X-Rate-Limit-Limit": { 20511 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20512 }, 20513 "X-Rate-Limit-Remaining": { 20514 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20515 }, 20516 "X-Rate-Limit-Reset": { 20517 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20518 } 20519 } 20520 }, 20521 "400": { 20522 "$ref": "#/components/responses/400" 20523 }, 20524 "404": { 20525 "$ref": "#/components/responses/404" 20526 }, 20527 "429": { 20528 "$ref": "#/components/responses/429" 20529 } 20530 }, 20531 "x-code-samples": [ 20532 { 20533 "lang": "Curl", 20534 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"mykey* translated:true\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'" 20535 }, 20536 { 20537 "lang": "CLI v2", 20538 "source": "phrase keys delete-collection \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--query 'mykey* translated:true' \\\n--locale_id abcd1234abcd1234abcd1234abcd1234 \\\n--access_token <token>" 20539 } 20540 ], 20541 "x-cli-version": "2.5" 20542 } 20543 }, 20544 "/projects/{project_id}/keys/search": { 20545 "post": { 20546 "summary": "Search keys", 20547 "description": "Search keys for the given project matching query.", 20548 "operationId": "keys/search", 20549 "tags": [ 20550 "Keys" 20551 ], 20552 "parameters": [ 20553 { 20554 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20555 }, 20556 { 20557 "$ref": "#/components/parameters/project_id" 20558 }, 20559 { 20560 "$ref": "#/components/parameters/page" 20561 }, 20562 { 20563 "$ref": "#/components/parameters/per_page" 20564 } 20565 ], 20566 "responses": { 20567 "200": { 20568 "description": "OK", 20569 "content": { 20570 "application/json": { 20571 "schema": { 20572 "type": "array", 20573 "items": { 20574 "$ref": "#/components/schemas/translation_key" 20575 } 20576 } 20577 } 20578 }, 20579 "headers": { 20580 "X-Rate-Limit-Limit": { 20581 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20582 }, 20583 "X-Rate-Limit-Remaining": { 20584 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20585 }, 20586 "X-Rate-Limit-Reset": { 20587 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20588 } 20589 } 20590 }, 20591 "400": { 20592 "$ref": "#/components/responses/400" 20593 }, 20594 "404": { 20595 "$ref": "#/components/responses/404" 20596 }, 20597 "429": { 20598 "$ref": "#/components/responses/429" 20599 } 20600 }, 20601 "x-code-samples": [ 20602 { 20603 "lang": "Curl", 20604 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/search\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"sort\":\"updated_at\",\"order\":\"desc\",\"q\":\"mykey* translated:true\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n -H 'Content-Type: application/json'" 20605 }, 20606 { 20607 "lang": "CLI v2", 20608 "source": "phrase keys search \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"sort\":\"updated_at\", \"order\":\"desc\", \"q\":\"'mykey* translated:true'\", \"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\"}' \\\n--access_token <token>" 20609 } 20610 ], 20611 "requestBody": { 20612 "required": true, 20613 "content": { 20614 "application/json": { 20615 "schema": { 20616 "type": "object", 20617 "title": "keys/search/parameters", 20618 "properties": { 20619 "branch": { 20620 "description": "specify the branch to use", 20621 "type": "string", 20622 "example": "my-feature-branch" 20623 }, 20624 "sort": { 20625 "description": "Sort by field. Can be one of: name, created_at, updated_at.", 20626 "type": "string", 20627 "example": "updated_at" 20628 }, 20629 "order": { 20630 "description": "Order direction. Can be one of: asc, desc.", 20631 "type": "string", 20632 "example": "desc" 20633 }, 20634 "q": { 20635 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name,...</code> for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name,...</code> to filter for keys with certain comma-seperated list of tags</li>\n <li><code>uploads:upload_id,...</code> to filter for keys with certain comma-seperated list of uploads</li>\n <li><code>job:{true|false}</code> to filter for keys mentioned in an active job</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\nPlease note: If <code>tags</code> are added to filter the search, the search will be limited to a maximum of 65,536 tagged keys.\n", 20636 "type": "string", 20637 "example": "mykey* translated:true" 20638 }, 20639 "locale_id": { 20640 "description": "Locale used to determine the translation state of a key when filtering for untranslated or translated keys.", 20641 "type": "string", 20642 "example": "abcd1234abcd1234abcd1234abcd1234" 20643 } 20644 } 20645 } 20646 } 20647 } 20648 }, 20649 "x-cli-version": "2.5" 20650 } 20651 }, 20652 "/projects/{project_id}/keys/{id}": { 20653 "get": { 20654 "summary": "Get a single key", 20655 "description": "Get details on a single key for a given project.", 20656 "operationId": "key/show", 20657 "tags": [ 20658 "Keys" 20659 ], 20660 "parameters": [ 20661 { 20662 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20663 }, 20664 { 20665 "$ref": "#/components/parameters/project_id" 20666 }, 20667 { 20668 "$ref": "#/components/parameters/id" 20669 }, 20670 { 20671 "description": "specify the branch to use", 20672 "example": "my-feature-branch", 20673 "name": "branch", 20674 "in": "query", 20675 "schema": { 20676 "type": "string" 20677 } 20678 } 20679 ], 20680 "responses": { 20681 "200": { 20682 "description": "OK", 20683 "content": { 20684 "application/json": { 20685 "schema": { 20686 "$ref": "#/components/schemas/translation_key_details" 20687 } 20688 } 20689 }, 20690 "headers": { 20691 "X-Rate-Limit-Limit": { 20692 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20693 }, 20694 "X-Rate-Limit-Remaining": { 20695 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20696 }, 20697 "X-Rate-Limit-Reset": { 20698 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20699 } 20700 } 20701 }, 20702 "400": { 20703 "$ref": "#/components/responses/400" 20704 }, 20705 "404": { 20706 "$ref": "#/components/responses/404" 20707 }, 20708 "429": { 20709 "$ref": "#/components/responses/429" 20710 } 20711 }, 20712 "x-code-samples": [ 20713 { 20714 "lang": "Curl", 20715 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 20716 }, 20717 { 20718 "lang": "CLI v2", 20719 "source": "phrase keys show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 20720 } 20721 ], 20722 "x-cli-version": "2.5" 20723 }, 20724 "patch": { 20725 "summary": "Update a key", 20726 "description": "Update an existing key.", 20727 "operationId": "key/update", 20728 "tags": [ 20729 "Keys" 20730 ], 20731 "parameters": [ 20732 { 20733 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20734 }, 20735 { 20736 "$ref": "#/components/parameters/project_id" 20737 }, 20738 { 20739 "$ref": "#/components/parameters/id" 20740 } 20741 ], 20742 "responses": { 20743 "200": { 20744 "description": "OK", 20745 "content": { 20746 "application/json": { 20747 "schema": { 20748 "$ref": "#/components/schemas/translation_key_details" 20749 } 20750 } 20751 }, 20752 "headers": { 20753 "X-Rate-Limit-Limit": { 20754 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20755 }, 20756 "X-Rate-Limit-Remaining": { 20757 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20758 }, 20759 "X-Rate-Limit-Reset": { 20760 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20761 } 20762 } 20763 }, 20764 "400": { 20765 "$ref": "#/components/responses/400" 20766 }, 20767 "404": { 20768 "$ref": "#/components/responses/404" 20769 }, 20770 "429": { 20771 "$ref": "#/components/responses/429" 20772 } 20773 }, 20774 "x-code-samples": [ 20775 { 20776 "lang": "Curl", 20777 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -F branch=my-feature-branch \\\n -F name=home.index.headline \\\n -F description=Some%20description%20worth%20knowing... \\\n -F name_plural=home.index.headlines \\\n -F data_type=number \\\n -F tags=awesome-feature,needs-proofreading \\\n -F max_characters_allowed=140 \\\n -F screenshot=@/path/to/my/screenshot.png\n -F custom_metadata[property]=value" 20778 }, 20779 { 20780 "lang": "CLI v2", 20781 "source": "phrase keys update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"home.index.headline\", \"description\": \"Some description worth knowing...\", \"name_plural\":\"home.index.headlines\", \"data_type\":\"number\", \"tags\":\"awesome-feature,needs-proofreading\", \"max_characters_allowed\":\"140\", \"screenshot\":\"/path/to/my/screenshot.png\", \"custom_metadata\": {\"property\" => \"value\"}}' \\\n--access_token <token>" 20782 } 20783 ], 20784 "requestBody": { 20785 "required": true, 20786 "content": { 20787 "application/json": { 20788 "schema": { 20789 "type": "object", 20790 "title": "key/update/parameters", 20791 "properties": { 20792 "branch": { 20793 "description": "specify the branch to use", 20794 "type": "string", 20795 "example": "my-feature-branch" 20796 }, 20797 "name": { 20798 "description": "Key name", 20799 "type": "string", 20800 "example": "home.index.headline" 20801 }, 20802 "description": { 20803 "description": "Key description (usually includes contextual information for translators)", 20804 "type": "string", 20805 "example": "Some description worth knowing..." 20806 }, 20807 "plural": { 20808 "description": "Indicates whether key supports pluralization", 20809 "type": "boolean", 20810 "example": null 20811 }, 20812 "name_plural": { 20813 "description": "Plural name for the key (used in some file formats, e.g. Gettext)", 20814 "type": "string", 20815 "example": "home.index.headlines" 20816 }, 20817 "data_type": { 20818 "description": "Type of the key. Can be one of the following: string, number, boolean, array, markdown.", 20819 "type": "string", 20820 "example": "number" 20821 }, 20822 "tags": { 20823 "description": "List of tags separated by comma to be associated with the key.", 20824 "type": "string", 20825 "example": "awesome-feature,needs-proofreading" 20826 }, 20827 "max_characters_allowed": { 20828 "description": "Max. number of characters translations for this key can have.", 20829 "type": "integer", 20830 "example": 140 20831 }, 20832 "screenshot": { 20833 "description": "Screenshot/image for the key. This parameter is deprecated. Please use the Screenshots endpoint instead.", 20834 "type": "string", 20835 "format": "binary", 20836 "example": "/path/to/my/screenshot.png", 20837 "deprecated": true 20838 }, 20839 "remove_screenshot": { 20840 "description": "Indicates whether the screenshot will be deleted. This parameter is deprecated. Please use the Screenshots endpoint instead.", 20841 "type": "boolean", 20842 "example": null, 20843 "deprecated": true 20844 }, 20845 "unformatted": { 20846 "description": "Indicates whether the key should be exported as \"unformatted\". Supported by Android XML and other formats.", 20847 "type": "boolean", 20848 "example": null 20849 }, 20850 "xml_space_preserve": { 20851 "description": "Indicates whether the key should be exported with \"xml:space=preserve\". Supported by several XML-based formats.", 20852 "type": "boolean", 20853 "example": null 20854 }, 20855 "original_file": { 20856 "description": "Original file attribute. Used in some formats, e.g. XLIFF.", 20857 "type": "string", 20858 "example": null 20859 }, 20860 "localized_format_string": { 20861 "description": "NSStringLocalizedFormatKey attribute. Used in .stringsdict format.", 20862 "type": "string", 20863 "example": null 20864 }, 20865 "localized_format_key": { 20866 "description": "NSStringLocalizedFormatKey attribute. Used in .stringsdict format.", 20867 "type": "string", 20868 "example": null 20869 }, 20870 "custom_metadata": { 20871 "description": "Updates/Creates custom metadata property name and value pairs to be associated with key. If you want to delete a custom metadata property, you can set its value to null. If you want to update a custom metadata property, you can set its value to the new value.", 20872 "type": "object", 20873 "example": { 20874 "fruit": "Apple", 20875 "vegetable": "Tomato" 20876 } 20877 } 20878 } 20879 } 20880 } 20881 } 20882 }, 20883 "x-cli-version": "2.5" 20884 }, 20885 "delete": { 20886 "summary": "Delete a key", 20887 "description": "Delete an existing key.", 20888 "operationId": "key/delete", 20889 "tags": [ 20890 "Keys" 20891 ], 20892 "parameters": [ 20893 { 20894 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20895 }, 20896 { 20897 "$ref": "#/components/parameters/project_id" 20898 }, 20899 { 20900 "$ref": "#/components/parameters/id" 20901 }, 20902 { 20903 "description": "specify the branch to use", 20904 "example": "my-feature-branch", 20905 "name": "branch", 20906 "in": "query", 20907 "schema": { 20908 "type": "string" 20909 } 20910 } 20911 ], 20912 "responses": { 20913 "204": { 20914 "$ref": "#/components/responses/204" 20915 }, 20916 "400": { 20917 "$ref": "#/components/responses/400" 20918 }, 20919 "404": { 20920 "$ref": "#/components/responses/404" 20921 }, 20922 "429": { 20923 "$ref": "#/components/responses/429" 20924 } 20925 }, 20926 "x-code-samples": [ 20927 { 20928 "lang": "Curl", 20929 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 20930 }, 20931 { 20932 "lang": "CLI v2", 20933 "source": "phrase keys delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 20934 } 20935 ], 20936 "x-cli-version": "2.5" 20937 } 20938 }, 20939 "/projects/{project_id}/keys/tag": { 20940 "patch": { 20941 "summary": "Add tags to collection of keys", 20942 "description": "Tags all keys matching query. Same constraints as list.", 20943 "operationId": "keys/tag", 20944 "tags": [ 20945 "Keys" 20946 ], 20947 "parameters": [ 20948 { 20949 "$ref": "#/components/parameters/X-PhraseApp-OTP" 20950 }, 20951 { 20952 "$ref": "#/components/parameters/project_id" 20953 } 20954 ], 20955 "responses": { 20956 "200": { 20957 "description": "OK", 20958 "content": { 20959 "application/json": { 20960 "schema": { 20961 "$ref": "#/components/schemas/affected_resources" 20962 } 20963 } 20964 }, 20965 "headers": { 20966 "X-Rate-Limit-Limit": { 20967 "$ref": "#/components/headers/X-Rate-Limit-Limit" 20968 }, 20969 "X-Rate-Limit-Remaining": { 20970 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 20971 }, 20972 "X-Rate-Limit-Reset": { 20973 "$ref": "#/components/headers/X-Rate-Limit-Reset" 20974 } 20975 } 20976 }, 20977 "400": { 20978 "$ref": "#/components/responses/400" 20979 }, 20980 "404": { 20981 "$ref": "#/components/responses/404" 20982 }, 20983 "429": { 20984 "$ref": "#/components/responses/429" 20985 } 20986 }, 20987 "x-code-samples": [ 20988 { 20989 "lang": "Curl", 20990 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/tag\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"mykey* translated:true\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"tags\":\"landing-page,release-1.2\"}' \\\n -H 'Content-Type: application/json'" 20991 }, 20992 { 20993 "lang": "CLI v2", 20994 "source": "phrase keys tag \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'mykey* translated:true'\", \"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"tags\":\"landing-page,release-1.2\"}' \\\n--access_token <token>" 20995 } 20996 ], 20997 "requestBody": { 20998 "required": true, 20999 "content": { 21000 "application/json": { 21001 "schema": { 21002 "type": "object", 21003 "title": "keys/tag/parameters", 21004 "properties": { 21005 "branch": { 21006 "description": "specify the branch to use", 21007 "type": "string", 21008 "example": "my-feature-branch" 21009 }, 21010 "q": { 21011 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name</code> for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name</code> to filter for keys with certain tags</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 21012 "type": "string", 21013 "example": "mykey* translated:true" 21014 }, 21015 "locale_id": { 21016 "description": "Locale used to determine the translation state of a key when filtering for untranslated or translated keys.", 21017 "type": "string", 21018 "example": "abcd1234abcd1234abcd1234abcd1234" 21019 }, 21020 "tags": { 21021 "description": "Tag or comma-separated list of tags to add to the matching collection of keys", 21022 "type": "string", 21023 "example": "landing-page,release-1.2" 21024 } 21025 } 21026 } 21027 } 21028 } 21029 }, 21030 "x-cli-version": "2.5" 21031 } 21032 }, 21033 "/projects/{project_id}/keys/untag": { 21034 "patch": { 21035 "summary": "Remove tags from collection of keys", 21036 "description": "Removes specified tags from keys matching query.", 21037 "operationId": "keys/untag", 21038 "tags": [ 21039 "Keys" 21040 ], 21041 "parameters": [ 21042 { 21043 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21044 }, 21045 { 21046 "$ref": "#/components/parameters/project_id" 21047 } 21048 ], 21049 "responses": { 21050 "200": { 21051 "description": "OK", 21052 "content": { 21053 "application/json": { 21054 "schema": { 21055 "$ref": "#/components/schemas/affected_resources" 21056 } 21057 } 21058 }, 21059 "headers": { 21060 "X-Rate-Limit-Limit": { 21061 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21062 }, 21063 "X-Rate-Limit-Remaining": { 21064 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21065 }, 21066 "X-Rate-Limit-Reset": { 21067 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21068 } 21069 } 21070 }, 21071 "400": { 21072 "$ref": "#/components/responses/400" 21073 }, 21074 "404": { 21075 "$ref": "#/components/responses/404" 21076 }, 21077 "429": { 21078 "$ref": "#/components/responses/429" 21079 } 21080 }, 21081 "x-code-samples": [ 21082 { 21083 "lang": "Curl", 21084 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/untag\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"mykey* translated:true\",\"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"tags\":\"landing-page,release-1.2\"}' \\\n -H 'Content-Type: application/json'" 21085 }, 21086 { 21087 "lang": "CLI v2", 21088 "source": "phrase keys untag \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'mykey* translated:true'\", \"locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"tags\":\"landing-page,release-1.2\"}' \\\n--access_token <token>" 21089 } 21090 ], 21091 "requestBody": { 21092 "required": true, 21093 "content": { 21094 "application/json": { 21095 "schema": { 21096 "type": "object", 21097 "title": "keys/untag/parameters", 21098 "properties": { 21099 "branch": { 21100 "description": "specify the branch to use", 21101 "type": "string", 21102 "example": "my-feature-branch" 21103 }, 21104 "q": { 21105 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name</code> for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name</code> to filter for keys with certain tags</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 21106 "type": "string", 21107 "example": "mykey* translated:true" 21108 }, 21109 "locale_id": { 21110 "description": "Locale used to determine the translation state of a key when filtering for untranslated or translated keys.", 21111 "type": "string", 21112 "example": "abcd1234abcd1234abcd1234abcd1234" 21113 }, 21114 "tags": { 21115 "description": "Tag or comma-separated list of tags to remove from the matching collection of keys", 21116 "type": "string", 21117 "example": "landing-page,release-1.2" 21118 } 21119 } 21120 } 21121 } 21122 } 21123 }, 21124 "x-cli-version": "2.5" 21125 } 21126 }, 21127 "/projects/{project_id}/keys/exclude": { 21128 "patch": { 21129 "summary": "Exclude a locale on a collection of keys", 21130 "description": "Exclude a locale on keys matching query. Same constraints as list.", 21131 "operationId": "keys/exclude", 21132 "tags": [ 21133 "Keys" 21134 ], 21135 "parameters": [ 21136 { 21137 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21138 }, 21139 { 21140 "$ref": "#/components/parameters/project_id" 21141 } 21142 ], 21143 "responses": { 21144 "200": { 21145 "description": "OK", 21146 "content": { 21147 "application/json": { 21148 "schema": { 21149 "$ref": "#/components/schemas/affected_resources" 21150 } 21151 } 21152 }, 21153 "headers": { 21154 "X-Rate-Limit-Limit": { 21155 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21156 }, 21157 "X-Rate-Limit-Remaining": { 21158 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21159 }, 21160 "X-Rate-Limit-Reset": { 21161 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21162 } 21163 } 21164 }, 21165 "400": { 21166 "$ref": "#/components/responses/400" 21167 }, 21168 "404": { 21169 "$ref": "#/components/responses/404" 21170 }, 21171 "429": { 21172 "$ref": "#/components/responses/429" 21173 } 21174 }, 21175 "x-code-samples": [ 21176 { 21177 "lang": "Curl", 21178 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/exclude\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"mykey* translated:true\",\"target_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"tags\":\"landing-page,release-1.2\"}' \\\n -H 'Content-Type: application/json'" 21179 }, 21180 { 21181 "lang": "CLI v2", 21182 "source": "phrase keys exclude \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'mykey* translated:true'\", \"target_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"tags\":\"landing-page,release-1.2\"}' \\\n--access_token <token>" 21183 } 21184 ], 21185 "requestBody": { 21186 "required": true, 21187 "content": { 21188 "application/json": { 21189 "schema": { 21190 "type": "object", 21191 "title": "keys/exclude/parameters", 21192 "properties": { 21193 "branch": { 21194 "description": "specify the branch to use", 21195 "type": "string", 21196 "example": "my-feature-branch" 21197 }, 21198 "q": { 21199 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name</code> for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name</code> to filter for keys with certain tags</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 21200 "type": "string", 21201 "example": "mykey* translated:true" 21202 }, 21203 "target_locale_id": { 21204 "description": "Locale used to exlcude or include keys.", 21205 "type": "string", 21206 "example": "abcd1234abcd1234abcd1234abcd1234" 21207 }, 21208 "tags": { 21209 "description": "Tag or comma-separated list of tags to add to the matching collection of keys", 21210 "type": "string", 21211 "example": "landing-page,release-1.2" 21212 } 21213 } 21214 } 21215 } 21216 } 21217 }, 21218 "x-cli-version": "2.5" 21219 } 21220 }, 21221 "/projects/{project_id}/keys/include": { 21222 "patch": { 21223 "summary": "Include a locale on a collection of keys", 21224 "description": "Include a locale on keys matching query. Same constraints as list.", 21225 "operationId": "keys/include", 21226 "tags": [ 21227 "Keys" 21228 ], 21229 "parameters": [ 21230 { 21231 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21232 }, 21233 { 21234 "$ref": "#/components/parameters/project_id" 21235 } 21236 ], 21237 "responses": { 21238 "200": { 21239 "description": "OK", 21240 "content": { 21241 "application/json": { 21242 "schema": { 21243 "$ref": "#/components/schemas/affected_resources" 21244 } 21245 } 21246 }, 21247 "headers": { 21248 "X-Rate-Limit-Limit": { 21249 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21250 }, 21251 "X-Rate-Limit-Remaining": { 21252 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21253 }, 21254 "X-Rate-Limit-Reset": { 21255 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21256 } 21257 } 21258 }, 21259 "400": { 21260 "$ref": "#/components/responses/400" 21261 }, 21262 "404": { 21263 "$ref": "#/components/responses/404" 21264 }, 21265 "429": { 21266 "$ref": "#/components/responses/429" 21267 } 21268 }, 21269 "x-code-samples": [ 21270 { 21271 "lang": "Curl", 21272 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/include\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"mykey* translated:true\",\"target_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"tags\":\"landing-page,release-1.2\"}' \\\n -H 'Content-Type: application/json'" 21273 }, 21274 { 21275 "lang": "CLI v2", 21276 "source": "phrase keys include \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'mykey* translated:true'\", \"target_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"tags\":\"landing-page,release-1.2\"}' \\\n--access_token <token>" 21277 } 21278 ], 21279 "requestBody": { 21280 "required": true, 21281 "content": { 21282 "application/json": { 21283 "schema": { 21284 "type": "object", 21285 "title": "keys/include/parameters", 21286 "properties": { 21287 "branch": { 21288 "description": "specify the branch to use", 21289 "type": "string", 21290 "example": "my-feature-branch" 21291 }, 21292 "q": { 21293 "description": "Specify a query to do broad search for keys by name (including wildcards).<br><br>\nThe following qualifiers are also supported in the search term:<br>\n<ul>\n <li><code>ids:key_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>name:key_name</code> for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes</li>\n <li><code>tags:tag_name</code> to filter for keys with certain tags</li>\n <li><code>translated:{true|false}</code> for translation status (also requires <code>locale_id</code> to be specified)</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>unmentioned_in_upload:upload_id</code> to filter keys unmentioned within upload</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 21294 "type": "string", 21295 "example": "mykey* translated:true" 21296 }, 21297 "target_locale_id": { 21298 "description": "Locale used to exlcude or include keys.", 21299 "type": "string", 21300 "example": "abcd1234abcd1234abcd1234abcd1234" 21301 }, 21302 "tags": { 21303 "description": "Tag or comma-separated list of tags to add to the matching collection of keys", 21304 "type": "string", 21305 "example": "landing-page,release-1.2" 21306 } 21307 } 21308 } 21309 } 21310 } 21311 }, 21312 "x-cli-version": "2.5" 21313 } 21314 }, 21315 "/projects/{project_id}/orders": { 21316 "get": { 21317 "summary": "List orders", 21318 "description": "List all orders for the given project.", 21319 "operationId": "orders/list", 21320 "tags": [ 21321 "Orders" 21322 ], 21323 "parameters": [ 21324 { 21325 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21326 }, 21327 { 21328 "$ref": "#/components/parameters/project_id" 21329 }, 21330 { 21331 "$ref": "#/components/parameters/page" 21332 }, 21333 { 21334 "$ref": "#/components/parameters/per_page" 21335 }, 21336 { 21337 "description": "specify the branch to use", 21338 "example": "my-feature-branch", 21339 "name": "branch", 21340 "in": "query", 21341 "schema": { 21342 "type": "string" 21343 } 21344 } 21345 ], 21346 "responses": { 21347 "200": { 21348 "description": "OK", 21349 "content": { 21350 "application/json": { 21351 "schema": { 21352 "type": "array", 21353 "items": { 21354 "$ref": "#/components/schemas/translation_order" 21355 } 21356 } 21357 } 21358 }, 21359 "headers": { 21360 "X-Rate-Limit-Limit": { 21361 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21362 }, 21363 "X-Rate-Limit-Remaining": { 21364 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21365 }, 21366 "X-Rate-Limit-Reset": { 21367 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21368 }, 21369 "Link": { 21370 "$ref": "#/components/headers/Link" 21371 }, 21372 "Pagination": { 21373 "$ref": "#/components/headers/Pagination" 21374 } 21375 } 21376 }, 21377 "400": { 21378 "$ref": "#/components/responses/400" 21379 }, 21380 "404": { 21381 "$ref": "#/components/responses/404" 21382 }, 21383 "429": { 21384 "$ref": "#/components/responses/429" 21385 } 21386 }, 21387 "x-code-samples": [ 21388 { 21389 "lang": "Curl", 21390 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/orders?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 21391 }, 21392 { 21393 "lang": "CLI v2", 21394 "source": "phrase orders list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--access_token <token>" 21395 } 21396 ], 21397 "x-cli-version": "2.5" 21398 }, 21399 "post": { 21400 "summary": "Create a new order", 21401 "description": "Create a new order. Access token scope must include <code>orders.create</code>.", 21402 "operationId": "order/create", 21403 "tags": [ 21404 "Orders" 21405 ], 21406 "parameters": [ 21407 { 21408 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21409 }, 21410 { 21411 "$ref": "#/components/parameters/project_id" 21412 } 21413 ], 21414 "responses": { 21415 "201": { 21416 "description": "Created", 21417 "content": { 21418 "application/json": { 21419 "schema": { 21420 "$ref": "#/components/schemas/translation_order" 21421 } 21422 } 21423 }, 21424 "headers": { 21425 "X-Rate-Limit-Limit": { 21426 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21427 }, 21428 "X-Rate-Limit-Remaining": { 21429 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21430 }, 21431 "X-Rate-Limit-Reset": { 21432 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21433 } 21434 } 21435 }, 21436 "400": { 21437 "$ref": "#/components/responses/400" 21438 }, 21439 "404": { 21440 "$ref": "#/components/responses/404" 21441 }, 21442 "429": { 21443 "$ref": "#/components/responses/429" 21444 } 21445 }, 21446 "x-code-samples": [ 21447 { 21448 "lang": "Curl", 21449 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/orders\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"name\":\"Welcome message translations\",\"lsp\":\"textmaster\",\"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"target_locale_ids\":[\"1234abcd1234abcd1234abcd1234abcd\",\"abcd1234abcd1234abcd1234abcd1234\"],\"translation_type\":\"premium\",\"tag\":\"my-awesome-feature\",\"message\":\"Please make everything sound really nice :)\",\"styleguide_id\":\"1234abcd1234abcd1234abcd1234abcd\",\"category\":\"C021\"}' \\\n -H 'Content-Type: application/json'" 21450 }, 21451 { 21452 "lang": "CLI v2", 21453 "source": "phrase orders create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"name\":\"Welcome message translations\", \"lsp\":\"textmaster\", \"source_locale_id\":\"abcd1234abcd1234abcd1234abcd1234\", \"target_locale_ids\": \"1234abcd1234abcd1234abcd1234abcd,abcd1234abcd1234abcd1234abcd1234\", \"translation_type\":\"premium\", \"tag\":\"my-awesome-feature\", \"message\": \"Please make everything sound really nice :)\", \"styleguide_id\":\"1234abcd1234abcd1234abcd1234abcd\", \"category\":\"C021\"}' \\\n--access_token <token>" 21454 } 21455 ], 21456 "requestBody": { 21457 "required": true, 21458 "content": { 21459 "application/json": { 21460 "schema": { 21461 "type": "object", 21462 "title": "order/create/parameters", 21463 "required": [ 21464 "name", 21465 "lsp" 21466 ], 21467 "properties": { 21468 "branch": { 21469 "description": "specify the branch to use", 21470 "type": "string", 21471 "example": "my-feature-branch" 21472 }, 21473 "name": { 21474 "description": "the name of the order, default name is: Translation order from 'current datetime'", 21475 "type": "string", 21476 "example": "Welcome message translations" 21477 }, 21478 "lsp": { 21479 "description": "Name of the LSP that should process this order. Can be one of gengo, textmaster.", 21480 "type": "string", 21481 "example": "textmaster" 21482 }, 21483 "source_locale_id": { 21484 "description": "Source locale for the order. Can be the name or id of the source locale. Preferred is id.", 21485 "type": "string", 21486 "example": "abcd1234abcd1234abcd1234abcd1234" 21487 }, 21488 "target_locale_ids": { 21489 "description": "List of target locales you want the source content translate to. Can be the name or id of the target locales. Preferred is id.", 21490 "type": "array", 21491 "items": { 21492 "type": "string" 21493 }, 21494 "example": [ 21495 "1234abcd1234abcd1234abcd1234abcd", 21496 "abcd1234abcd1234abcd1234abcd1234" 21497 ] 21498 }, 21499 "translation_type": { 21500 "description": "Name of the quality level, availability depends on the LSP. Can be one of: standard, pro (for orders processed by Gengo) and one of regular, premium, enterprise (for orders processed by TextMaster)", 21501 "type": "string", 21502 "example": "premium" 21503 }, 21504 "tag": { 21505 "description": "Tag you want to order translations for.", 21506 "type": "string", 21507 "example": "my-awesome-feature" 21508 }, 21509 "message": { 21510 "description": "Message that is displayed to the translators for description.", 21511 "type": "string", 21512 "example": "Please make everything sound really nice :)" 21513 }, 21514 "styleguide_id": { 21515 "description": "Style guide for translators to be sent with the order.", 21516 "type": "string", 21517 "example": "1234abcd1234abcd1234abcd1234abcd" 21518 }, 21519 "unverify_translations_upon_delivery": { 21520 "description": "Unverify translations upon delivery.", 21521 "type": "boolean", 21522 "example": null 21523 }, 21524 "include_untranslated_keys": { 21525 "description": "Order translations for keys with untranslated content in the selected target locales.", 21526 "type": "boolean", 21527 "example": null 21528 }, 21529 "include_unverified_translations": { 21530 "description": "Order translations for keys with unverified content in the selected target locales.", 21531 "type": "boolean", 21532 "example": null 21533 }, 21534 "category": { 21535 "description": "Category to use (required for orders processed by TextMaster).", 21536 "type": "string", 21537 "example": "C021" 21538 }, 21539 "quality": { 21540 "description": "Extra proofreading option to ensure consistency in vocabulary and style. Only available for orders processed by TextMaster.", 21541 "type": "boolean", 21542 "example": null 21543 }, 21544 "priority": { 21545 "description": "Indicates whether the priority option should be ordered which decreases turnaround time by 30%. Available only for orders processed by TextMaster.", 21546 "type": "boolean", 21547 "example": null 21548 } 21549 } 21550 } 21551 } 21552 } 21553 }, 21554 "x-cli-version": "2.5" 21555 } 21556 }, 21557 "/projects/{project_id}/orders/{id}": { 21558 "get": { 21559 "summary": "Get a single order", 21560 "description": "Get details on a single order.", 21561 "operationId": "order/show", 21562 "tags": [ 21563 "Orders" 21564 ], 21565 "parameters": [ 21566 { 21567 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21568 }, 21569 { 21570 "$ref": "#/components/parameters/project_id" 21571 }, 21572 { 21573 "$ref": "#/components/parameters/id" 21574 }, 21575 { 21576 "description": "specify the branch to use", 21577 "example": "my-feature-branch", 21578 "name": "branch", 21579 "in": "query", 21580 "schema": { 21581 "type": "string" 21582 } 21583 } 21584 ], 21585 "responses": { 21586 "200": { 21587 "description": "OK", 21588 "content": { 21589 "application/json": { 21590 "schema": { 21591 "$ref": "#/components/schemas/translation_order" 21592 } 21593 } 21594 }, 21595 "headers": { 21596 "X-Rate-Limit-Limit": { 21597 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21598 }, 21599 "X-Rate-Limit-Remaining": { 21600 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21601 }, 21602 "X-Rate-Limit-Reset": { 21603 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21604 } 21605 } 21606 }, 21607 "400": { 21608 "$ref": "#/components/responses/400" 21609 }, 21610 "404": { 21611 "$ref": "#/components/responses/404" 21612 }, 21613 "429": { 21614 "$ref": "#/components/responses/429" 21615 } 21616 }, 21617 "x-code-samples": [ 21618 { 21619 "lang": "Curl", 21620 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/orders/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 21621 }, 21622 { 21623 "lang": "CLI v2", 21624 "source": "phrase orders show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 21625 } 21626 ], 21627 "x-cli-version": "2.5" 21628 }, 21629 "delete": { 21630 "summary": "Cancel an order", 21631 "description": "Cancel an existing order. Must not yet be confirmed.", 21632 "operationId": "order/delete", 21633 "tags": [ 21634 "Orders" 21635 ], 21636 "parameters": [ 21637 { 21638 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21639 }, 21640 { 21641 "$ref": "#/components/parameters/project_id" 21642 }, 21643 { 21644 "$ref": "#/components/parameters/id" 21645 }, 21646 { 21647 "description": "specify the branch to use", 21648 "example": "my-feature-branch", 21649 "name": "branch", 21650 "in": "query", 21651 "schema": { 21652 "type": "string" 21653 } 21654 } 21655 ], 21656 "responses": { 21657 "204": { 21658 "$ref": "#/components/responses/204" 21659 }, 21660 "400": { 21661 "$ref": "#/components/responses/400" 21662 }, 21663 "404": { 21664 "$ref": "#/components/responses/404" 21665 }, 21666 "429": { 21667 "$ref": "#/components/responses/429" 21668 } 21669 }, 21670 "x-code-samples": [ 21671 { 21672 "lang": "Curl", 21673 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/orders/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 21674 }, 21675 { 21676 "lang": "CLI v2", 21677 "source": "phrase orders delete \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 21678 } 21679 ], 21680 "x-cli-version": "2.5" 21681 } 21682 }, 21683 "/projects/{project_id}/orders/{id}/confirm": { 21684 "patch": { 21685 "summary": "Confirm an order", 21686 "description": "Confirm an existing order and send it to the provider for translation. Same constraints as for create.", 21687 "operationId": "order/confirm", 21688 "tags": [ 21689 "Orders" 21690 ], 21691 "parameters": [ 21692 { 21693 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21694 }, 21695 { 21696 "$ref": "#/components/parameters/project_id" 21697 }, 21698 { 21699 "$ref": "#/components/parameters/id" 21700 } 21701 ], 21702 "responses": { 21703 "200": { 21704 "description": "OK", 21705 "content": { 21706 "application/json": { 21707 "schema": { 21708 "$ref": "#/components/schemas/translation_order" 21709 } 21710 } 21711 }, 21712 "headers": { 21713 "X-Rate-Limit-Limit": { 21714 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21715 }, 21716 "X-Rate-Limit-Remaining": { 21717 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21718 }, 21719 "X-Rate-Limit-Reset": { 21720 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21721 } 21722 } 21723 }, 21724 "400": { 21725 "$ref": "#/components/responses/400" 21726 }, 21727 "404": { 21728 "$ref": "#/components/responses/404" 21729 }, 21730 "429": { 21731 "$ref": "#/components/responses/429" 21732 } 21733 }, 21734 "x-code-samples": [ 21735 { 21736 "lang": "Curl", 21737 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/orders/:id/confirm\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 21738 }, 21739 { 21740 "lang": "CLI v2", 21741 "source": "phrase orders confirm \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 21742 } 21743 ], 21744 "requestBody": { 21745 "required": true, 21746 "content": { 21747 "application/json": { 21748 "schema": { 21749 "type": "object", 21750 "title": "order/confirm/parameters", 21751 "properties": { 21752 "branch": { 21753 "description": "specify the branch to use", 21754 "type": "string", 21755 "example": "my-feature-branch" 21756 } 21757 } 21758 } 21759 } 21760 } 21761 }, 21762 "x-cli-version": "2.5" 21763 } 21764 }, 21765 "/projects/{project_id}/quality_performance_score": { 21766 "post": { 21767 "summary": "Get Translation Quality", 21768 "description": "Retrieves the quality scores for your Strings translations. Returns a score, measured by Phrase QPS", 21769 "operationId": "projects/quality_performance_score", 21770 "tags": [ 21771 "Quality performance score" 21772 ], 21773 "parameters": [ 21774 { 21775 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21776 }, 21777 { 21778 "$ref": "#/components/parameters/project_id" 21779 } 21780 ], 21781 "responses": { 21782 "200": { 21783 "description": "OK", 21784 "content": { 21785 "application/json": { 21786 "schema": { 21787 "anyOf": [ 21788 { 21789 "type": "object", 21790 "title": "error", 21791 "description": "Error field for when the request completely fails", 21792 "properties": { 21793 "error": { 21794 "type": "object", 21795 "properties": { 21796 "message": { 21797 "type": "string" 21798 }, 21799 "code": { 21800 "type": "string" 21801 } 21802 } 21803 } 21804 } 21805 }, 21806 { 21807 "type": "object", 21808 "properties": { 21809 "data": { 21810 "type": "object", 21811 "properties": { 21812 "translations": { 21813 "type": "array", 21814 "items": { 21815 "type": "object", 21816 "properties": { 21817 "engine": { 21818 "type": "string", 21819 "description": "Engine used for the translation scoring" 21820 }, 21821 "score": { 21822 "type": "number", 21823 "description": "Quality score for the translation" 21824 }, 21825 "id": { 21826 "type": "string", 21827 "description": "One of the translation ids passed in arguments" 21828 } 21829 } 21830 } 21831 } 21832 } 21833 }, 21834 "errors": { 21835 "type": "array", 21836 "description": "Array of errors for any failing translation IDs", 21837 "items": { 21838 "type": "object", 21839 "properties": { 21840 "message": { 21841 "type": "string" 21842 }, 21843 "code": { 21844 "type": "string" 21845 }, 21846 "id": { 21847 "type": "string", 21848 "description": "One of the translation ids passed in arguments" 21849 } 21850 } 21851 } 21852 } 21853 } 21854 } 21855 ], 21856 "example": { 21857 "data": { 21858 "translations": [ 21859 { 21860 "engine": "qe_v4", 21861 "score": 0.78, 21862 "id": "translation_id_1" 21863 }, 21864 { 21865 "engine": "qe_v4", 21866 "score": 0.95, 21867 "id": "translation_id_2" 21868 } 21869 ] 21870 }, 21871 "errors": [] 21872 } 21873 } 21874 } 21875 }, 21876 "headers": { 21877 "X-Rate-Limit-Limit": { 21878 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21879 }, 21880 "X-Rate-Limit-Remaining": { 21881 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21882 }, 21883 "X-Rate-Limit-Reset": { 21884 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21885 } 21886 } 21887 }, 21888 "400": { 21889 "$ref": "#/components/responses/400" 21890 }, 21891 "401": { 21892 "$ref": "#/components/responses/401" 21893 }, 21894 "404": { 21895 "$ref": "#/components/responses/404" 21896 }, 21897 "422": { 21898 "$ref": "#/components/responses/422" 21899 }, 21900 "429": { 21901 "$ref": "#/components/responses/429" 21902 }, 21903 "504": { 21904 "$ref": "#/components/responses/504" 21905 } 21906 }, 21907 "x-code-samples": [ 21908 { 21909 "lang": "Curl", 21910 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/quality_performance_score\" \\\n -X POST \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -d '{\"translation_ids\":[\"translation_id_1\", \"translation_id_2\"]}' \\\n -H 'Content-Type: application/json'" 21911 }, 21912 { 21913 "lang": "CLI v2", 21914 "source": "phrase projects quality_performance_score \\\n--project_id <project_id> \\\n--data '{\"translation_ids\":[\"translation_id_1\", \"translation_id_2\"]}' \\\n--access_token <token>" 21915 } 21916 ], 21917 "requestBody": { 21918 "required": true, 21919 "content": { 21920 "application/json": { 21921 "schema": { 21922 "type": "object", 21923 "properties": { 21924 "translation_ids": { 21925 "description": "Translation ids you want to get the quality performance score for", 21926 "type": "array", 21927 "items": { 21928 "type": "string", 21929 "example": "translation_id_1" 21930 } 21931 } 21932 } 21933 } 21934 } 21935 } 21936 }, 21937 "x-cli-version": "2.20" 21938 } 21939 }, 21940 "/accounts/{account_id}/repo_syncs": { 21941 "get": { 21942 "summary": "Get Repo Syncs", 21943 "description": "Lists all Repo Syncs from an account", 21944 "operationId": "repo_sync/list", 21945 "tags": [ 21946 "Repo Syncs" 21947 ], 21948 "parameters": [ 21949 { 21950 "$ref": "#/components/parameters/X-PhraseApp-OTP" 21951 }, 21952 { 21953 "$ref": "#/components/parameters/account_id" 21954 } 21955 ], 21956 "responses": { 21957 "200": { 21958 "description": "OK", 21959 "content": { 21960 "application/json": { 21961 "schema": { 21962 "type": "array", 21963 "items": { 21964 "$ref": "#/components/schemas/repo_sync" 21965 } 21966 } 21967 } 21968 }, 21969 "headers": { 21970 "X-Rate-Limit-Limit": { 21971 "$ref": "#/components/headers/X-Rate-Limit-Limit" 21972 }, 21973 "X-Rate-Limit-Remaining": { 21974 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 21975 }, 21976 "X-Rate-Limit-Reset": { 21977 "$ref": "#/components/headers/X-Rate-Limit-Reset" 21978 }, 21979 "Link": { 21980 "$ref": "#/components/headers/Link" 21981 }, 21982 "Pagination": { 21983 "$ref": "#/components/headers/Pagination" 21984 } 21985 } 21986 }, 21987 "400": { 21988 "$ref": "#/components/responses/400" 21989 }, 21990 "404": { 21991 "$ref": "#/components/responses/404" 21992 }, 21993 "429": { 21994 "$ref": "#/components/responses/429" 21995 } 21996 }, 21997 "x-code-samples": [ 21998 { 21999 "lang": "Curl", 22000 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs\"\\\n -u USERNAME_OR_ACCESS_TOKEN" 22001 }, 22002 { 22003 "lang": "CLI v2", 22004 "source": "phrase repo_sync list \\\n--account_id abcd1234 \\\n--access_token <token>" 22005 } 22006 ], 22007 "x-cli-version": "2.24" 22008 } 22009 }, 22010 "/accounts/{account_id}/repo_syncs/{repo_sync_id}": { 22011 "get": { 22012 "summary": "Get a single Repo Sync", 22013 "description": "Shows a single Repo Sync setting.", 22014 "operationId": "repo_sync/show", 22015 "tags": [ 22016 "Repo Syncs" 22017 ], 22018 "parameters": [ 22019 { 22020 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22021 }, 22022 { 22023 "$ref": "#/components/parameters/account_id" 22024 }, 22025 { 22026 "$ref": "#/components/parameters/repo_sync_id" 22027 } 22028 ], 22029 "responses": { 22030 "200": { 22031 "description": "OK", 22032 "content": { 22033 "application/json": { 22034 "schema": { 22035 "$ref": "#/components/schemas/repo_sync" 22036 } 22037 } 22038 }, 22039 "headers": { 22040 "X-Rate-Limit-Limit": { 22041 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22042 }, 22043 "X-Rate-Limit-Remaining": { 22044 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22045 }, 22046 "X-Rate-Limit-Reset": { 22047 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22048 } 22049 } 22050 }, 22051 "400": { 22052 "$ref": "#/components/responses/400" 22053 }, 22054 "404": { 22055 "$ref": "#/components/responses/404" 22056 }, 22057 "429": { 22058 "$ref": "#/components/responses/429" 22059 } 22060 }, 22061 "x-code-samples": [ 22062 { 22063 "lang": "Curl", 22064 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/56ef78\"\\\n -u USERNAME_OR_ACCESS_TOKEN" 22065 }, 22066 { 22067 "lang": "CLI v2", 22068 "source": "phrase repo_sync show \\\n--id <id> \\\n--account_id abcd1234 \\\n--access_token <token>" 22069 } 22070 ], 22071 "x-cli-version": "2.24" 22072 } 22073 }, 22074 "/accounts/{account_id}/repo_syncs/{repo_sync_id}/export": { 22075 "post": { 22076 "summary": "Export to code repository", 22077 "description": "> Beta: this feature will change in the future.\n\nExport translations from Phrase Strings to repository provider according to the\n.phrase.yml file within the code repository.\n\n*Export is done asynchronously and may take several seconds depending on the project size.*", 22078 "operationId": "repo_sync/export", 22079 "tags": [ 22080 "Repo Syncs" 22081 ], 22082 "parameters": [ 22083 { 22084 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22085 }, 22086 { 22087 "$ref": "#/components/parameters/account_id" 22088 }, 22089 { 22090 "$ref": "#/components/parameters/repo_sync_id" 22091 } 22092 ], 22093 "responses": { 22094 "200": { 22095 "description": "OK", 22096 "content": { 22097 "application/json": { 22098 "schema": { 22099 "type": "object", 22100 "title": "repo_sync/export", 22101 "properties": { 22102 "message": { 22103 "type": "string", 22104 "example": "Export started" 22105 } 22106 } 22107 } 22108 } 22109 }, 22110 "headers": { 22111 "X-Rate-Limit-Limit": { 22112 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22113 }, 22114 "X-Rate-Limit-Remaining": { 22115 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22116 }, 22117 "X-Rate-Limit-Reset": { 22118 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22119 } 22120 } 22121 }, 22122 "400": { 22123 "$ref": "#/components/responses/400" 22124 }, 22125 "404": { 22126 "$ref": "#/components/responses/404" 22127 }, 22128 "429": { 22129 "$ref": "#/components/responses/429" 22130 } 22131 }, 22132 "x-code-samples": [ 22133 { 22134 "lang": "Curl", 22135 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/export\"\\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -H 'Content-Type: application/json'" 22136 }, 22137 { 22138 "lang": "CLI v2", 22139 "source": "phrase repo_sync export \\\n--repo_sync_id <repo_sync_id> \\\n--access_token <token>" 22140 } 22141 ], 22142 "x-cli-version": "2.24" 22143 } 22144 }, 22145 "/accounts/{account_id}/repo_syncs/{repo_sync_id}/import": { 22146 "post": { 22147 "summary": "Import from code repository", 22148 "description": "> Beta: this feature will change in the future.\n\nImport translations from repository provider to Phrase Strings according to the .phrase.yml file\nwithin the code repository.\n\n_Import is done asynchronously and may take several seconds depending on the project size._", 22149 "operationId": "repo_sync/import", 22150 "tags": [ 22151 "Repo Syncs" 22152 ], 22153 "parameters": [ 22154 { 22155 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22156 }, 22157 { 22158 "$ref": "#/components/parameters/account_id" 22159 }, 22160 { 22161 "$ref": "#/components/parameters/repo_sync_id" 22162 } 22163 ], 22164 "responses": { 22165 "200": { 22166 "description": "OK", 22167 "content": { 22168 "application/json": { 22169 "schema": { 22170 "type": "object", 22171 "title": "repo_sync/import", 22172 "properties": { 22173 "message": { 22174 "type": "string", 22175 "example": "Import started" 22176 } 22177 } 22178 } 22179 } 22180 }, 22181 "headers": { 22182 "X-Rate-Limit-Limit": { 22183 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22184 }, 22185 "X-Rate-Limit-Remaining": { 22186 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22187 }, 22188 "X-Rate-Limit-Reset": { 22189 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22190 } 22191 } 22192 }, 22193 "400": { 22194 "$ref": "#/components/responses/400" 22195 }, 22196 "404": { 22197 "$ref": "#/components/responses/404" 22198 }, 22199 "429": { 22200 "$ref": "#/components/responses/429" 22201 } 22202 }, 22203 "x-code-samples": [ 22204 { 22205 "lang": "Curl", 22206 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/import\"\\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -H 'Content-Type: application/json'" 22207 }, 22208 { 22209 "lang": "CLI v2", 22210 "source": "phrase repo_sync import \\\n--repo_sync_id <repo_sync_id> \\\n--access_token <token>" 22211 } 22212 ], 22213 "x-cli-version": "2.24" 22214 } 22215 }, 22216 "/accounts/{account_id}/repo_syncs/{repo_sync_id}/events": { 22217 "get": { 22218 "summary": "Repository Syncs History", 22219 "description": "Get the history of a single Repo Sync. The history includes all imports and exports\nperformed by the Repo Sync.", 22220 "operationId": "repo_sync/events", 22221 "tags": [ 22222 "Repo Syncs" 22223 ], 22224 "parameters": [ 22225 { 22226 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22227 }, 22228 { 22229 "$ref": "#/components/parameters/account_id" 22230 }, 22231 { 22232 "$ref": "#/components/parameters/repo_sync_id" 22233 } 22234 ], 22235 "responses": { 22236 "200": { 22237 "description": "Successful response", 22238 "content": { 22239 "application/json": { 22240 "schema": { 22241 "type": "array", 22242 "items": { 22243 "$ref": "#/components/schemas/repo_sync_event" 22244 } 22245 } 22246 } 22247 }, 22248 "headers": { 22249 "X-Rate-Limit-Limit": { 22250 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22251 }, 22252 "X-Rate-Limit-Remaining": { 22253 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22254 }, 22255 "X-Rate-Limit-Reset": { 22256 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22257 }, 22258 "Link": { 22259 "$ref": "#/components/headers/Link" 22260 }, 22261 "Pagination": { 22262 "$ref": "#/components/headers/Pagination" 22263 } 22264 } 22265 }, 22266 "400": { 22267 "$ref": "#/components/responses/400" 22268 }, 22269 "404": { 22270 "$ref": "#/components/responses/404" 22271 }, 22272 "429": { 22273 "$ref": "#/components/responses/429" 22274 } 22275 }, 22276 "x-code-samples": [ 22277 { 22278 "lang": "Curl", 22279 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/56ef78/events\"\\\n -u USERNAME_OR_ACCESS_TOKEN" 22280 }, 22281 { 22282 "lang": "CLI v2", 22283 "source": "phrase repo_sync events \\\n--id <id> \\\n--account_id abcd1234 \\\n--access_token <token>" 22284 } 22285 ], 22286 "x-cli-version": "2.24" 22287 } 22288 }, 22289 "/accounts/{account_id}/repo_syncs/{repo_sync_id}/deactivate": { 22290 "post": { 22291 "summary": "Deactivate a Repo Sync", 22292 "description": "Deactivate an active Repo Sync. Import and export can't be performed on deactivated syncs\nand the pushes to the repository won't trigger the import to Phrase.", 22293 "operationId": "repo_sync/deactivate", 22294 "tags": [ 22295 "Repo Syncs" 22296 ], 22297 "parameters": [ 22298 { 22299 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22300 }, 22301 { 22302 "$ref": "#/components/parameters/account_id" 22303 }, 22304 { 22305 "$ref": "#/components/parameters/repo_sync_id" 22306 } 22307 ], 22308 "responses": { 22309 "200": { 22310 "description": "OK", 22311 "content": { 22312 "application/json": { 22313 "schema": { 22314 "$ref": "#/components/schemas/repo_sync" 22315 } 22316 } 22317 }, 22318 "headers": { 22319 "X-Rate-Limit-Limit": { 22320 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22321 }, 22322 "X-Rate-Limit-Remaining": { 22323 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22324 }, 22325 "X-Rate-Limit-Reset": { 22326 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22327 } 22328 } 22329 }, 22330 "400": { 22331 "$ref": "#/components/responses/400" 22332 }, 22333 "404": { 22334 "$ref": "#/components/responses/404" 22335 }, 22336 "429": { 22337 "$ref": "#/components/responses/429" 22338 } 22339 }, 22340 "x-code-samples": [ 22341 { 22342 "lang": "Curl", 22343 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/deactivate\"\\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -H 'Content-Type: application/json'" 22344 }, 22345 { 22346 "lang": "CLI v2", 22347 "source": "phrase repo_sync deactivate \\\n--repo_sync_id <repo_sync_id> \\\n--access_token <token>" 22348 } 22349 ], 22350 "x-cli-version": "2.24" 22351 } 22352 }, 22353 "/accounts/{account_id}/repo_syncs/{repo_sync_id}/activate": { 22354 "post": { 22355 "summary": "Activate a Repo Sync", 22356 "description": "Activate a deactivated Repo Sync. Active syncs can be used to import and export translations,\nand imports to Phrase are automatically triggered by pushes to the repository, if configured.", 22357 "operationId": "repo_sync/activate", 22358 "tags": [ 22359 "Repo Syncs" 22360 ], 22361 "parameters": [ 22362 { 22363 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22364 }, 22365 { 22366 "$ref": "#/components/parameters/account_id" 22367 }, 22368 { 22369 "$ref": "#/components/parameters/repo_sync_id" 22370 } 22371 ], 22372 "responses": { 22373 "200": { 22374 "description": "OK", 22375 "content": { 22376 "application/json": { 22377 "schema": { 22378 "$ref": "#/components/schemas/repo_sync" 22379 } 22380 } 22381 }, 22382 "headers": { 22383 "X-Rate-Limit-Limit": { 22384 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22385 }, 22386 "X-Rate-Limit-Remaining": { 22387 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22388 }, 22389 "X-Rate-Limit-Reset": { 22390 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22391 } 22392 } 22393 }, 22394 "400": { 22395 "$ref": "#/components/responses/400" 22396 }, 22397 "404": { 22398 "$ref": "#/components/responses/404" 22399 }, 22400 "429": { 22401 "$ref": "#/components/responses/429" 22402 } 22403 }, 22404 "x-code-samples": [ 22405 { 22406 "lang": "Curl", 22407 "source": "curl \"https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/activate\"\\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -H 'Content-Type: application/json'" 22408 }, 22409 { 22410 "lang": "CLI v2", 22411 "source": "phrase repo_sync activate \\\n--repo_sync_id <repo_sync_id> \\\n--access_token <token>" 22412 } 22413 ], 22414 "x-cli-version": "2.24" 22415 } 22416 }, 22417 "/accounts/{account_id}/spaces": { 22418 "get": { 22419 "summary": "List Spaces", 22420 "description": "List all Spaces for the given account.", 22421 "operationId": "spaces/list", 22422 "tags": [ 22423 "Spaces" 22424 ], 22425 "parameters": [ 22426 { 22427 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22428 }, 22429 { 22430 "$ref": "#/components/parameters/account_id" 22431 }, 22432 { 22433 "$ref": "#/components/parameters/page" 22434 }, 22435 { 22436 "$ref": "#/components/parameters/per_page" 22437 } 22438 ], 22439 "responses": { 22440 "200": { 22441 "description": "OK", 22442 "content": { 22443 "application/json": { 22444 "schema": { 22445 "type": "array", 22446 "items": { 22447 "$ref": "#/components/schemas/space" 22448 } 22449 } 22450 } 22451 }, 22452 "headers": { 22453 "X-Rate-Limit-Limit": { 22454 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22455 }, 22456 "X-Rate-Limit-Remaining": { 22457 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22458 }, 22459 "X-Rate-Limit-Reset": { 22460 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22461 }, 22462 "Link": { 22463 "$ref": "#/components/headers/Link" 22464 }, 22465 "Pagination": { 22466 "$ref": "#/components/headers/Pagination" 22467 } 22468 } 22469 }, 22470 "400": { 22471 "$ref": "#/components/responses/400" 22472 }, 22473 "404": { 22474 "$ref": "#/components/responses/404" 22475 }, 22476 "429": { 22477 "$ref": "#/components/responses/429" 22478 } 22479 }, 22480 "x-code-samples": [ 22481 { 22482 "lang": "Curl", 22483 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 22484 }, 22485 { 22486 "lang": "CLI v2", 22487 "source": "phrase spaces list \\\n--account_id <account_id> \\\n--access_token <token>" 22488 } 22489 ], 22490 "x-cli-version": "2.5" 22491 }, 22492 "post": { 22493 "summary": "Create a Space", 22494 "description": "Create a new Space.", 22495 "operationId": "space/create", 22496 "tags": [ 22497 "Spaces" 22498 ], 22499 "parameters": [ 22500 { 22501 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22502 }, 22503 { 22504 "$ref": "#/components/parameters/account_id" 22505 } 22506 ], 22507 "responses": { 22508 "201": { 22509 "description": "Created", 22510 "content": { 22511 "application/json": { 22512 "schema": { 22513 "$ref": "#/components/schemas/space" 22514 } 22515 } 22516 }, 22517 "headers": { 22518 "X-Rate-Limit-Limit": { 22519 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22520 }, 22521 "X-Rate-Limit-Remaining": { 22522 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22523 }, 22524 "X-Rate-Limit-Reset": { 22525 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22526 } 22527 } 22528 }, 22529 "400": { 22530 "$ref": "#/components/responses/400" 22531 }, 22532 "404": { 22533 "$ref": "#/components/responses/404" 22534 }, 22535 "429": { 22536 "$ref": "#/components/responses/429" 22537 } 22538 }, 22539 "x-code-samples": [ 22540 { 22541 "lang": "Curl", 22542 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"My Android Projects\"}' \\\n -H 'Content-Type: application/json'" 22543 }, 22544 { 22545 "lang": "CLI v2", 22546 "source": "phrase spaces create \\\n--account_id <account_id> \\\n--data '{\"name\": \"My Android Projects\"}' \\\n--access_token <token>" 22547 } 22548 ], 22549 "requestBody": { 22550 "required": true, 22551 "content": { 22552 "application/json": { 22553 "schema": { 22554 "type": "object", 22555 "title": "space/create/parameters", 22556 "required": [ 22557 "name" 22558 ], 22559 "properties": { 22560 "name": { 22561 "description": "Name of the space", 22562 "type": "string", 22563 "example": "My Android Projects" 22564 } 22565 } 22566 } 22567 } 22568 } 22569 }, 22570 "x-cli-version": "2.5" 22571 } 22572 }, 22573 "/accounts/{account_id}/spaces/{id}": { 22574 "get": { 22575 "summary": "Get Space", 22576 "description": "Show the specified Space.", 22577 "operationId": "space/show", 22578 "tags": [ 22579 "Spaces" 22580 ], 22581 "parameters": [ 22582 { 22583 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22584 }, 22585 { 22586 "$ref": "#/components/parameters/account_id" 22587 }, 22588 { 22589 "$ref": "#/components/parameters/id" 22590 } 22591 ], 22592 "responses": { 22593 "200": { 22594 "description": "OK", 22595 "content": { 22596 "application/json": { 22597 "schema": { 22598 "$ref": "#/components/schemas/space" 22599 } 22600 } 22601 }, 22602 "headers": { 22603 "X-Rate-Limit-Limit": { 22604 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22605 }, 22606 "X-Rate-Limit-Remaining": { 22607 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22608 }, 22609 "X-Rate-Limit-Reset": { 22610 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22611 } 22612 } 22613 }, 22614 "400": { 22615 "$ref": "#/components/responses/400" 22616 }, 22617 "404": { 22618 "$ref": "#/components/responses/404" 22619 }, 22620 "429": { 22621 "$ref": "#/components/responses/429" 22622 } 22623 }, 22624 "x-code-samples": [ 22625 { 22626 "lang": "Curl", 22627 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 22628 }, 22629 { 22630 "lang": "CLI v2", 22631 "source": "phrase spaces show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 22632 } 22633 ], 22634 "x-cli-version": "2.5" 22635 }, 22636 "patch": { 22637 "summary": "Update Space", 22638 "description": "Update the specified Space.", 22639 "operationId": "space/update", 22640 "tags": [ 22641 "Spaces" 22642 ], 22643 "parameters": [ 22644 { 22645 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22646 }, 22647 { 22648 "$ref": "#/components/parameters/account_id" 22649 }, 22650 { 22651 "$ref": "#/components/parameters/id" 22652 } 22653 ], 22654 "responses": { 22655 "200": { 22656 "description": "OK", 22657 "content": { 22658 "application/json": { 22659 "schema": { 22660 "$ref": "#/components/schemas/space" 22661 } 22662 } 22663 }, 22664 "headers": { 22665 "X-Rate-Limit-Limit": { 22666 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22667 }, 22668 "X-Rate-Limit-Remaining": { 22669 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22670 }, 22671 "X-Rate-Limit-Reset": { 22672 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22673 } 22674 } 22675 }, 22676 "400": { 22677 "$ref": "#/components/responses/400" 22678 }, 22679 "404": { 22680 "$ref": "#/components/responses/404" 22681 }, 22682 "429": { 22683 "$ref": "#/components/responses/429" 22684 } 22685 }, 22686 "x-code-samples": [ 22687 { 22688 "lang": "Curl", 22689 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"My Android Projects\"}' \\\n -H 'Content-Type: application/json'" 22690 }, 22691 { 22692 "lang": "CLI v2", 22693 "source": "phrase spaces update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"name\": \"My Android Projects\"}' \\\n--access_token <token>" 22694 } 22695 ], 22696 "requestBody": { 22697 "required": true, 22698 "content": { 22699 "application/json": { 22700 "schema": { 22701 "type": "object", 22702 "title": "space/update/parameters", 22703 "properties": { 22704 "name": { 22705 "description": "New name of the space", 22706 "type": "string", 22707 "example": "My Android Projects" 22708 } 22709 } 22710 } 22711 } 22712 } 22713 }, 22714 "x-cli-version": "2.5" 22715 }, 22716 "delete": { 22717 "summary": "Delete Space", 22718 "description": "Delete the specified Space.", 22719 "operationId": "space/delete", 22720 "tags": [ 22721 "Spaces" 22722 ], 22723 "parameters": [ 22724 { 22725 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22726 }, 22727 { 22728 "$ref": "#/components/parameters/account_id" 22729 }, 22730 { 22731 "$ref": "#/components/parameters/id" 22732 } 22733 ], 22734 "responses": { 22735 "204": { 22736 "$ref": "#/components/responses/204" 22737 }, 22738 "400": { 22739 "$ref": "#/components/responses/400" 22740 }, 22741 "404": { 22742 "$ref": "#/components/responses/404" 22743 }, 22744 "429": { 22745 "$ref": "#/components/responses/429" 22746 } 22747 }, 22748 "x-code-samples": [ 22749 { 22750 "lang": "Curl", 22751 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 22752 }, 22753 { 22754 "lang": "CLI v2", 22755 "source": "phrase spaces delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 22756 } 22757 ], 22758 "x-cli-version": "2.5" 22759 } 22760 }, 22761 "/accounts/{account_id}/spaces/{space_id}/projects": { 22762 "get": { 22763 "summary": "List Projects in Space", 22764 "description": "List all projects for the specified Space.", 22765 "operationId": "spaces/projects/list", 22766 "tags": [ 22767 "Spaces" 22768 ], 22769 "parameters": [ 22770 { 22771 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22772 }, 22773 { 22774 "$ref": "#/components/parameters/account_id" 22775 }, 22776 { 22777 "$ref": "#/components/parameters/space_id" 22778 }, 22779 { 22780 "$ref": "#/components/parameters/page" 22781 }, 22782 { 22783 "$ref": "#/components/parameters/per_page" 22784 } 22785 ], 22786 "responses": { 22787 "200": { 22788 "description": "OK", 22789 "content": { 22790 "application/json": { 22791 "schema": { 22792 "type": "array", 22793 "items": { 22794 "$ref": "#/components/schemas/project" 22795 } 22796 } 22797 } 22798 }, 22799 "headers": { 22800 "X-Rate-Limit-Limit": { 22801 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22802 }, 22803 "X-Rate-Limit-Remaining": { 22804 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22805 }, 22806 "X-Rate-Limit-Reset": { 22807 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22808 }, 22809 "Link": { 22810 "$ref": "#/components/headers/Link" 22811 }, 22812 "Pagination": { 22813 "$ref": "#/components/headers/Pagination" 22814 } 22815 } 22816 }, 22817 "400": { 22818 "$ref": "#/components/responses/400" 22819 }, 22820 "404": { 22821 "$ref": "#/components/responses/404" 22822 }, 22823 "429": { 22824 "$ref": "#/components/responses/429" 22825 } 22826 }, 22827 "x-code-samples": [ 22828 { 22829 "lang": "Curl", 22830 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 22831 }, 22832 { 22833 "lang": "CLI v2", 22834 "source": "phrase spaces projects_list \\\n--account_id <account_id> \\\n--space_id <space_id> \\\n--access_token <token>" 22835 } 22836 ], 22837 "x-cli-version": "2.5" 22838 }, 22839 "post": { 22840 "summary": "Add Project to Space", 22841 "description": "Adds an existing project to the space.", 22842 "operationId": "spaces/projects/create", 22843 "tags": [ 22844 "Spaces" 22845 ], 22846 "parameters": [ 22847 { 22848 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22849 }, 22850 { 22851 "$ref": "#/components/parameters/account_id" 22852 }, 22853 { 22854 "$ref": "#/components/parameters/space_id" 22855 } 22856 ], 22857 "responses": { 22858 "201": { 22859 "description": "Created", 22860 "headers": { 22861 "X-Rate-Limit-Limit": { 22862 "$ref": "#/components/headers/X-Rate-Limit-Limit" 22863 }, 22864 "X-Rate-Limit-Remaining": { 22865 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 22866 }, 22867 "X-Rate-Limit-Reset": { 22868 "$ref": "#/components/headers/X-Rate-Limit-Reset" 22869 } 22870 } 22871 }, 22872 "400": { 22873 "$ref": "#/components/responses/400" 22874 }, 22875 "404": { 22876 "$ref": "#/components/responses/404" 22877 }, 22878 "429": { 22879 "$ref": "#/components/responses/429" 22880 } 22881 }, 22882 "x-code-samples": [ 22883 { 22884 "lang": "Curl", 22885 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"id\":\"a4b3c2d1\"}' \\\n -H 'Content-Type: application/json'" 22886 }, 22887 { 22888 "lang": "CLI v2", 22889 "source": "phrase spaces projects_create \\\n--account_id <account_id> \\\n--space_id <space_id> \\\n--data '{\"id\":\"a4b3c2d1\"}' \\\n--access_token <token>" 22890 } 22891 ], 22892 "requestBody": { 22893 "required": true, 22894 "content": { 22895 "application/json": { 22896 "schema": { 22897 "type": "object", 22898 "title": "spaces/projects/create/parameters", 22899 "required": [ 22900 "id" 22901 ], 22902 "properties": { 22903 "id": { 22904 "description": "Project ID to add or to the Space", 22905 "type": "string", 22906 "example": "a4b3c2d1" 22907 } 22908 } 22909 } 22910 } 22911 } 22912 }, 22913 "x-cli-version": "2.5" 22914 } 22915 }, 22916 "/accounts/{account_id}/spaces/{space_id}/projects/{id}": { 22917 "delete": { 22918 "summary": "Remove Project from Space", 22919 "description": "Removes a specified project from the specified space.", 22920 "operationId": "spaces/projects/delete", 22921 "tags": [ 22922 "Spaces" 22923 ], 22924 "parameters": [ 22925 { 22926 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22927 }, 22928 { 22929 "$ref": "#/components/parameters/account_id" 22930 }, 22931 { 22932 "$ref": "#/components/parameters/space_id" 22933 }, 22934 { 22935 "$ref": "#/components/parameters/id" 22936 } 22937 ], 22938 "responses": { 22939 "204": { 22940 "$ref": "#/components/responses/204" 22941 }, 22942 "400": { 22943 "$ref": "#/components/responses/400" 22944 }, 22945 "404": { 22946 "$ref": "#/components/responses/404" 22947 }, 22948 "429": { 22949 "$ref": "#/components/responses/429" 22950 } 22951 }, 22952 "x-code-samples": [ 22953 { 22954 "lang": "Curl", 22955 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 22956 }, 22957 { 22958 "lang": "CLI v2", 22959 "source": "phrase spaces projects_delete \\\n--account_id <account_id> \\\n--space_id <space_id> \\\n--id <id> \\\n--access_token <token>" 22960 } 22961 ], 22962 "x-cli-version": "2.5" 22963 } 22964 }, 22965 "/accounts/{account_id}/teams": { 22966 "get": { 22967 "summary": "List Teams", 22968 "description": "List all Teams for the given account.", 22969 "operationId": "teams/list", 22970 "tags": [ 22971 "Teams" 22972 ], 22973 "parameters": [ 22974 { 22975 "$ref": "#/components/parameters/X-PhraseApp-OTP" 22976 }, 22977 { 22978 "$ref": "#/components/parameters/account_id" 22979 }, 22980 { 22981 "$ref": "#/components/parameters/page" 22982 }, 22983 { 22984 "$ref": "#/components/parameters/per_page" 22985 } 22986 ], 22987 "responses": { 22988 "200": { 22989 "description": "OK", 22990 "content": { 22991 "application/json": { 22992 "schema": { 22993 "type": "array", 22994 "items": { 22995 "$ref": "#/components/schemas/team" 22996 } 22997 } 22998 } 22999 }, 23000 "headers": { 23001 "X-Rate-Limit-Limit": { 23002 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23003 }, 23004 "X-Rate-Limit-Remaining": { 23005 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23006 }, 23007 "X-Rate-Limit-Reset": { 23008 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23009 }, 23010 "Link": { 23011 "$ref": "#/components/headers/Link" 23012 }, 23013 "Pagination": { 23014 "$ref": "#/components/headers/Pagination" 23015 } 23016 } 23017 }, 23018 "400": { 23019 "$ref": "#/components/responses/400" 23020 }, 23021 "404": { 23022 "$ref": "#/components/responses/404" 23023 }, 23024 "429": { 23025 "$ref": "#/components/responses/429" 23026 } 23027 }, 23028 "x-code-samples": [ 23029 { 23030 "lang": "Curl", 23031 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 23032 }, 23033 { 23034 "lang": "CLI v2", 23035 "source": "phrase teams list \\\n--account_id <account_id> \\\n--access_token <token>" 23036 } 23037 ], 23038 "x-cli-version": "2.5" 23039 }, 23040 "post": { 23041 "summary": "Create a Team", 23042 "description": "Create a new Team.", 23043 "operationId": "team/create", 23044 "tags": [ 23045 "Teams" 23046 ], 23047 "parameters": [ 23048 { 23049 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23050 }, 23051 { 23052 "$ref": "#/components/parameters/account_id" 23053 } 23054 ], 23055 "responses": { 23056 "201": { 23057 "description": "Created", 23058 "content": { 23059 "application/json": { 23060 "schema": { 23061 "$ref": "#/components/schemas/team_detail" 23062 } 23063 } 23064 }, 23065 "headers": { 23066 "X-Rate-Limit-Limit": { 23067 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23068 }, 23069 "X-Rate-Limit-Remaining": { 23070 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23071 }, 23072 "X-Rate-Limit-Reset": { 23073 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23074 } 23075 } 23076 }, 23077 "400": { 23078 "$ref": "#/components/responses/400" 23079 }, 23080 "404": { 23081 "$ref": "#/components/responses/404" 23082 }, 23083 "429": { 23084 "$ref": "#/components/responses/429" 23085 } 23086 }, 23087 "x-code-samples": [ 23088 { 23089 "lang": "Curl", 23090 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"German Translators\"}' \\\n -H 'Content-Type: application/json'" 23091 }, 23092 { 23093 "lang": "CLI v2", 23094 "source": "phrase teams create \\\n--account_id <account_id> \\\n--data '{\"name\": \"German Translators\"}' \\\n--access_token <token>" 23095 } 23096 ], 23097 "requestBody": { 23098 "required": true, 23099 "content": { 23100 "application/json": { 23101 "schema": { 23102 "type": "object", 23103 "title": "team/create/parameters", 23104 "required": [ 23105 "name" 23106 ], 23107 "properties": { 23108 "name": { 23109 "description": "Name of the team", 23110 "type": "string", 23111 "example": "German Translators" 23112 } 23113 } 23114 } 23115 } 23116 } 23117 }, 23118 "x-cli-version": "2.5" 23119 } 23120 }, 23121 "/accounts/{account_id}/teams/{id}": { 23122 "get": { 23123 "summary": "Get Team", 23124 "description": "Show the specified Team.", 23125 "operationId": "team/show", 23126 "tags": [ 23127 "Teams" 23128 ], 23129 "parameters": [ 23130 { 23131 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23132 }, 23133 { 23134 "$ref": "#/components/parameters/account_id" 23135 }, 23136 { 23137 "$ref": "#/components/parameters/id" 23138 } 23139 ], 23140 "responses": { 23141 "200": { 23142 "description": "OK", 23143 "content": { 23144 "application/json": { 23145 "schema": { 23146 "$ref": "#/components/schemas/team_detail" 23147 } 23148 } 23149 }, 23150 "headers": { 23151 "X-Rate-Limit-Limit": { 23152 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23153 }, 23154 "X-Rate-Limit-Remaining": { 23155 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23156 }, 23157 "X-Rate-Limit-Reset": { 23158 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23159 } 23160 } 23161 }, 23162 "400": { 23163 "$ref": "#/components/responses/400" 23164 }, 23165 "404": { 23166 "$ref": "#/components/responses/404" 23167 }, 23168 "429": { 23169 "$ref": "#/components/responses/429" 23170 } 23171 }, 23172 "x-code-samples": [ 23173 { 23174 "lang": "Curl", 23175 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 23176 }, 23177 { 23178 "lang": "CLI v2", 23179 "source": "phrase teams show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 23180 } 23181 ], 23182 "x-cli-version": "2.5" 23183 }, 23184 "patch": { 23185 "summary": "Update Team", 23186 "description": "Update the specified Team.", 23187 "operationId": "team/update", 23188 "tags": [ 23189 "Teams" 23190 ], 23191 "parameters": [ 23192 { 23193 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23194 }, 23195 { 23196 "$ref": "#/components/parameters/account_id" 23197 }, 23198 { 23199 "$ref": "#/components/parameters/id" 23200 } 23201 ], 23202 "responses": { 23203 "200": { 23204 "description": "OK", 23205 "content": { 23206 "application/json": { 23207 "schema": { 23208 "$ref": "#/components/schemas/team_detail" 23209 } 23210 } 23211 }, 23212 "headers": { 23213 "X-Rate-Limit-Limit": { 23214 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23215 }, 23216 "X-Rate-Limit-Remaining": { 23217 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23218 }, 23219 "X-Rate-Limit-Reset": { 23220 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23221 } 23222 } 23223 }, 23224 "400": { 23225 "$ref": "#/components/responses/400" 23226 }, 23227 "404": { 23228 "$ref": "#/components/responses/404" 23229 }, 23230 "429": { 23231 "$ref": "#/components/responses/429" 23232 } 23233 }, 23234 "x-code-samples": [ 23235 { 23236 "lang": "Curl", 23237 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"name\":\"German Translators\"}' \\\n -H 'Content-Type: application/json'" 23238 }, 23239 { 23240 "lang": "CLI v2", 23241 "source": "phrase teams update \\\n--account_id <account_id> \\\n--id <id> \\\n--data '{\"name\": \"German Translators\"}' \\\n--access_token <token>" 23242 } 23243 ], 23244 "requestBody": { 23245 "required": true, 23246 "content": { 23247 "application/json": { 23248 "schema": { 23249 "type": "object", 23250 "title": "team/update/parameters", 23251 "properties": { 23252 "name": { 23253 "description": "New name of the team", 23254 "type": "string", 23255 "example": "German Translators" 23256 } 23257 } 23258 } 23259 } 23260 } 23261 }, 23262 "x-cli-version": "2.5" 23263 }, 23264 "delete": { 23265 "summary": "Delete Team", 23266 "description": "Delete the specified Team.", 23267 "operationId": "team/delete", 23268 "tags": [ 23269 "Teams" 23270 ], 23271 "parameters": [ 23272 { 23273 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23274 }, 23275 { 23276 "$ref": "#/components/parameters/account_id" 23277 }, 23278 { 23279 "$ref": "#/components/parameters/id" 23280 } 23281 ], 23282 "responses": { 23283 "204": { 23284 "$ref": "#/components/responses/204" 23285 }, 23286 "400": { 23287 "$ref": "#/components/responses/400" 23288 }, 23289 "404": { 23290 "$ref": "#/components/responses/404" 23291 }, 23292 "429": { 23293 "$ref": "#/components/responses/429" 23294 } 23295 }, 23296 "x-code-samples": [ 23297 { 23298 "lang": "Curl", 23299 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 23300 }, 23301 { 23302 "lang": "CLI v2", 23303 "source": "phrase teams delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 23304 } 23305 ], 23306 "x-cli-version": "2.5" 23307 } 23308 }, 23309 "/accounts/{account_id}/teams/{team_id}/projects": { 23310 "post": { 23311 "summary": "Add Project to Team", 23312 "description": "Adds an existing project to the team.", 23313 "operationId": "teams/projects/create", 23314 "tags": [ 23315 "Teams" 23316 ], 23317 "parameters": [ 23318 { 23319 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23320 }, 23321 { 23322 "$ref": "#/components/parameters/account_id" 23323 }, 23324 { 23325 "$ref": "#/components/parameters/team_id" 23326 } 23327 ], 23328 "responses": { 23329 "201": { 23330 "description": "Created", 23331 "headers": { 23332 "X-Rate-Limit-Limit": { 23333 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23334 }, 23335 "X-Rate-Limit-Remaining": { 23336 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23337 }, 23338 "X-Rate-Limit-Reset": { 23339 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23340 } 23341 } 23342 }, 23343 "400": { 23344 "$ref": "#/components/responses/400" 23345 }, 23346 "404": { 23347 "$ref": "#/components/responses/404" 23348 }, 23349 "429": { 23350 "$ref": "#/components/responses/429" 23351 } 23352 }, 23353 "x-code-samples": [ 23354 { 23355 "lang": "Curl", 23356 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/projects\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"id\":\"a4b3c2d1\"}' \\\n -H 'Content-Type: application/json'" 23357 }, 23358 { 23359 "lang": "CLI v2", 23360 "source": "phrase teams projects_create \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--data '{\"id\":\"a4b3c2d1\"}' \\\n--access_token <token>" 23361 } 23362 ], 23363 "requestBody": { 23364 "required": true, 23365 "content": { 23366 "application/json": { 23367 "schema": { 23368 "type": "object", 23369 "title": "teams/projects/create/parameters", 23370 "required": [ 23371 "id" 23372 ], 23373 "properties": { 23374 "id": { 23375 "description": "Project ID to add to the Team", 23376 "type": "string", 23377 "example": "a4b3c2d1" 23378 } 23379 } 23380 } 23381 } 23382 } 23383 }, 23384 "x-cli-version": "2.5" 23385 } 23386 }, 23387 "/accounts/{account_id}/teams/{team_id}/projects/{id}": { 23388 "delete": { 23389 "summary": "Remove Project from Team", 23390 "description": "Removes a specified project from the specified team.", 23391 "operationId": "teams/projects/delete", 23392 "tags": [ 23393 "Teams" 23394 ], 23395 "parameters": [ 23396 { 23397 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23398 }, 23399 { 23400 "$ref": "#/components/parameters/account_id" 23401 }, 23402 { 23403 "$ref": "#/components/parameters/team_id" 23404 }, 23405 { 23406 "$ref": "#/components/parameters/id" 23407 } 23408 ], 23409 "responses": { 23410 "204": { 23411 "$ref": "#/components/responses/204" 23412 }, 23413 "400": { 23414 "$ref": "#/components/responses/400" 23415 }, 23416 "404": { 23417 "$ref": "#/components/responses/404" 23418 }, 23419 "429": { 23420 "$ref": "#/components/responses/429" 23421 } 23422 }, 23423 "x-code-samples": [ 23424 { 23425 "lang": "Curl", 23426 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/projects/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 23427 }, 23428 { 23429 "lang": "CLI v2", 23430 "source": "phrase teams projects_delete \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--id <id> \\\n--access_token <token>" 23431 } 23432 ], 23433 "x-cli-version": "2.5" 23434 } 23435 }, 23436 "/accounts/{account_id}/teams/{team_id}/spaces": { 23437 "post": { 23438 "summary": "Add Space", 23439 "description": "Adds an existing space to the team.", 23440 "operationId": "teams/spaces/create", 23441 "tags": [ 23442 "Teams" 23443 ], 23444 "parameters": [ 23445 { 23446 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23447 }, 23448 { 23449 "$ref": "#/components/parameters/account_id" 23450 }, 23451 { 23452 "$ref": "#/components/parameters/team_id" 23453 } 23454 ], 23455 "responses": { 23456 "201": { 23457 "description": "Created", 23458 "headers": { 23459 "X-Rate-Limit-Limit": { 23460 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23461 }, 23462 "X-Rate-Limit-Remaining": { 23463 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23464 }, 23465 "X-Rate-Limit-Reset": { 23466 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23467 } 23468 } 23469 }, 23470 "400": { 23471 "$ref": "#/components/responses/400" 23472 }, 23473 "404": { 23474 "$ref": "#/components/responses/404" 23475 }, 23476 "429": { 23477 "$ref": "#/components/responses/429" 23478 } 23479 }, 23480 "x-code-samples": [ 23481 { 23482 "lang": "Curl", 23483 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/spaces\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"id\":\"a4b3c2d1\"}' \\\n -H 'Content-Type: application/json'" 23484 }, 23485 { 23486 "lang": "CLI v2", 23487 "source": "phrase teams spaces_create \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--data '{\"id\":\"a4b3c2d1\"}' \\\n--access_token <token>" 23488 } 23489 ], 23490 "requestBody": { 23491 "required": true, 23492 "content": { 23493 "application/json": { 23494 "schema": { 23495 "type": "object", 23496 "title": "teams/spaces/create/parameters", 23497 "required": [ 23498 "id" 23499 ], 23500 "properties": { 23501 "id": { 23502 "description": "Space ID to add to the Team", 23503 "type": "string", 23504 "example": "a4b3c2d1" 23505 } 23506 } 23507 } 23508 } 23509 } 23510 }, 23511 "x-cli-version": "2.5" 23512 } 23513 }, 23514 "/accounts/{account_id}/teams/{team_id}/spaces/{id}": { 23515 "delete": { 23516 "summary": "Remove Space", 23517 "description": "Removes a specified space from the specified team.", 23518 "operationId": "teams/spaces/delete", 23519 "tags": [ 23520 "Teams" 23521 ], 23522 "parameters": [ 23523 { 23524 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23525 }, 23526 { 23527 "$ref": "#/components/parameters/account_id" 23528 }, 23529 { 23530 "$ref": "#/components/parameters/team_id" 23531 }, 23532 { 23533 "$ref": "#/components/parameters/id" 23534 } 23535 ], 23536 "responses": { 23537 "204": { 23538 "$ref": "#/components/responses/204" 23539 }, 23540 "400": { 23541 "$ref": "#/components/responses/400" 23542 }, 23543 "404": { 23544 "$ref": "#/components/responses/404" 23545 }, 23546 "429": { 23547 "$ref": "#/components/responses/429" 23548 } 23549 }, 23550 "x-code-samples": [ 23551 { 23552 "lang": "Curl", 23553 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/spaces/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 23554 }, 23555 { 23556 "lang": "CLI v2", 23557 "source": "phrase teams spaces_delete \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--id <id> \\\n--access_token <token>" 23558 } 23559 ], 23560 "x-cli-version": "2.5" 23561 } 23562 }, 23563 "/accounts/{account_id}/teams/{team_id}/users": { 23564 "post": { 23565 "summary": "Add User", 23566 "description": "Adds an existing user to the team.", 23567 "operationId": "teams/users/create", 23568 "tags": [ 23569 "Teams" 23570 ], 23571 "parameters": [ 23572 { 23573 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23574 }, 23575 { 23576 "$ref": "#/components/parameters/account_id" 23577 }, 23578 { 23579 "$ref": "#/components/parameters/team_id" 23580 } 23581 ], 23582 "responses": { 23583 "201": { 23584 "description": "Created", 23585 "headers": { 23586 "X-Rate-Limit-Limit": { 23587 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23588 }, 23589 "X-Rate-Limit-Remaining": { 23590 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23591 }, 23592 "X-Rate-Limit-Reset": { 23593 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23594 } 23595 } 23596 }, 23597 "400": { 23598 "$ref": "#/components/responses/400" 23599 }, 23600 "404": { 23601 "$ref": "#/components/responses/404" 23602 }, 23603 "429": { 23604 "$ref": "#/components/responses/429" 23605 } 23606 }, 23607 "x-code-samples": [ 23608 { 23609 "lang": "Curl", 23610 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/users\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"id\":\"a4b3c2d1\"}' \\\n -H 'Content-Type: application/json'" 23611 }, 23612 { 23613 "lang": "CLI v2", 23614 "source": "phrase teams users_create \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--data '{\"id\":\"a4b3c2d1\"}' \\\n--access_token <token>" 23615 } 23616 ], 23617 "requestBody": { 23618 "required": true, 23619 "content": { 23620 "application/json": { 23621 "schema": { 23622 "type": "object", 23623 "title": "teams/users/create/parameters", 23624 "required": [ 23625 "id" 23626 ], 23627 "properties": { 23628 "id": { 23629 "description": "User ID to add to the Team", 23630 "type": "string", 23631 "example": "a4b3c2d1" 23632 } 23633 } 23634 } 23635 } 23636 } 23637 }, 23638 "x-cli-version": "2.5" 23639 } 23640 }, 23641 "/accounts/{account_id}/teams/{team_id}/users/{id}": { 23642 "delete": { 23643 "summary": "Remove User", 23644 "description": "Removes a specified user from the specified team.", 23645 "operationId": "teams/users/delete", 23646 "tags": [ 23647 "Teams" 23648 ], 23649 "parameters": [ 23650 { 23651 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23652 }, 23653 { 23654 "$ref": "#/components/parameters/account_id" 23655 }, 23656 { 23657 "$ref": "#/components/parameters/team_id" 23658 }, 23659 { 23660 "$ref": "#/components/parameters/id" 23661 } 23662 ], 23663 "responses": { 23664 "204": { 23665 "$ref": "#/components/responses/204" 23666 }, 23667 "400": { 23668 "$ref": "#/components/responses/400" 23669 }, 23670 "404": { 23671 "$ref": "#/components/responses/404" 23672 }, 23673 "429": { 23674 "$ref": "#/components/responses/429" 23675 } 23676 }, 23677 "x-code-samples": [ 23678 { 23679 "lang": "Curl", 23680 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/users/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE" 23681 }, 23682 { 23683 "lang": "CLI v2", 23684 "source": "phrase teams users_delete \\\n--account_id <account_id> \\\n--team_id <team_id> \\\n--id <id> \\\n--access_token <token>" 23685 } 23686 ], 23687 "x-cli-version": "2.5" 23688 } 23689 }, 23690 "/projects/{project_id}/translations": { 23691 "get": { 23692 "summary": "List all translations", 23693 "description": "List translations for the given project. If you want to download all translations for one locale we recommend to use the <code>locales#download</code> endpoint.", 23694 "operationId": "translations/list", 23695 "tags": [ 23696 "Translations" 23697 ], 23698 "parameters": [ 23699 { 23700 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23701 }, 23702 { 23703 "$ref": "#/components/parameters/If-Modified-Since" 23704 }, 23705 { 23706 "$ref": "#/components/parameters/If-None-Match" 23707 }, 23708 { 23709 "$ref": "#/components/parameters/project_id" 23710 }, 23711 { 23712 "$ref": "#/components/parameters/page" 23713 }, 23714 { 23715 "$ref": "#/components/parameters/per_page" 23716 }, 23717 { 23718 "description": "specify the branch to use", 23719 "example": "my-feature-branch", 23720 "name": "branch", 23721 "in": "query", 23722 "schema": { 23723 "type": "string" 23724 } 23725 }, 23726 { 23727 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 23728 "example": "updated_at", 23729 "name": "sort", 23730 "in": "query", 23731 "schema": { 23732 "type": "string" 23733 } 23734 }, 23735 { 23736 "description": "Order direction. Can be one of: asc, desc.", 23737 "example": "desc", 23738 "name": "order", 23739 "in": "query", 23740 "schema": { 23741 "type": "string" 23742 } 23743 }, 23744 { 23745 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n <li><code>reviewed_after:2013-02-21T00:00:00Z</code> for fetching translations that were reviewed after the given timestamp</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 23746 "example": "PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center", 23747 "name": "q", 23748 "in": "query", 23749 "schema": { 23750 "type": "string" 23751 } 23752 } 23753 ], 23754 "responses": { 23755 "200": { 23756 "description": "OK", 23757 "content": { 23758 "application/json": { 23759 "schema": { 23760 "type": "array", 23761 "items": { 23762 "$ref": "#/components/schemas/translation" 23763 } 23764 } 23765 } 23766 }, 23767 "headers": { 23768 "X-Rate-Limit-Limit": { 23769 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23770 }, 23771 "X-Rate-Limit-Remaining": { 23772 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23773 }, 23774 "X-Rate-Limit-Reset": { 23775 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23776 }, 23777 "Link": { 23778 "$ref": "#/components/headers/Link" 23779 }, 23780 "Pagination": { 23781 "$ref": "#/components/headers/Pagination" 23782 } 23783 } 23784 }, 23785 "400": { 23786 "$ref": "#/components/responses/400" 23787 }, 23788 "404": { 23789 "$ref": "#/components/responses/404" 23790 }, 23791 "429": { 23792 "$ref": "#/components/responses/429" 23793 } 23794 }, 23795 "x-code-samples": [ 23796 { 23797 "lang": "Curl", 23798 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations?branch=my-feature-branch&sort=updated_at&order=desc&q=PhraseApp*%2520unverified:true%2520excluded:true%2520tags:feature,center\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 23799 }, 23800 { 23801 "lang": "CLI v2", 23802 "source": "phrase translations list \\\n--project_id <project_id> \\\n--branch my-feature-branch \\\n--sort updated_at \\\n--order desc \\\n--query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \\\n--access_token <token>" 23803 } 23804 ], 23805 "x-cli-version": "2.6.4" 23806 }, 23807 "post": { 23808 "summary": "Create a translation", 23809 "description": "Create a translation.", 23810 "operationId": "translation/create", 23811 "tags": [ 23812 "Translations" 23813 ], 23814 "parameters": [ 23815 { 23816 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23817 }, 23818 { 23819 "$ref": "#/components/parameters/project_id" 23820 } 23821 ], 23822 "responses": { 23823 "201": { 23824 "description": "Created", 23825 "content": { 23826 "application/json": { 23827 "schema": { 23828 "$ref": "#/components/schemas/translation_details" 23829 } 23830 } 23831 }, 23832 "headers": { 23833 "X-Rate-Limit-Limit": { 23834 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23835 }, 23836 "X-Rate-Limit-Remaining": { 23837 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 23838 }, 23839 "X-Rate-Limit-Reset": { 23840 "$ref": "#/components/headers/X-Rate-Limit-Reset" 23841 } 23842 } 23843 }, 23844 "400": { 23845 "$ref": "#/components/responses/400" 23846 }, 23847 "404": { 23848 "$ref": "#/components/responses/404" 23849 }, 23850 "429": { 23851 "$ref": "#/components/responses/429" 23852 } 23853 }, 23854 "x-code-samples": [ 23855 { 23856 "lang": "Curl", 23857 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"key_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"content\":\"My translation\"}' \\\n -H 'Content-Type: application/json'" 23858 }, 23859 { 23860 "lang": "CLI v2", 23861 "source": "phrase translations create \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"key_id\":\"abcd1234cdef1234abcd1234cdef1234\", \"content\": \"My translation\"}' \\\n--access_token <token>" 23862 } 23863 ], 23864 "requestBody": { 23865 "required": true, 23866 "content": { 23867 "application/json": { 23868 "schema": { 23869 "type": "object", 23870 "title": "translation/create/parameters", 23871 "properties": { 23872 "branch": { 23873 "description": "specify the branch to use", 23874 "type": "string", 23875 "example": "my-feature-branch" 23876 }, 23877 "locale_id": { 23878 "description": "Locale. Can be the name or id of the locale. Preferred is id", 23879 "type": "string", 23880 "example": "abcd1234cdef1234abcd1234cdef1234" 23881 }, 23882 "key_id": { 23883 "description": "Key", 23884 "type": "string", 23885 "example": "abcd1234cdef1234abcd1234cdef1234" 23886 }, 23887 "content": { 23888 "description": "Translation content", 23889 "type": "string", 23890 "example": "My translation" 23891 }, 23892 "plural_suffix": { 23893 "description": "Plural suffix. Can be one of: zero, one, two, few, many, other. Must be specified if the key associated to the translation is pluralized.", 23894 "type": "string", 23895 "example": null 23896 }, 23897 "unverified": { 23898 "description": "Indicates whether translation is unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 23899 "type": "boolean", 23900 "example": null 23901 }, 23902 "excluded": { 23903 "description": "Indicates whether translation is excluded.", 23904 "type": "boolean", 23905 "example": null 23906 }, 23907 "autotranslate": { 23908 "description": "Indicates whether the translation should be auto-translated. Responses with status 422 if provided for translation within a non-default locale or the project does not have the Autopilot feature enabled.", 23909 "type": "boolean", 23910 "example": null 23911 } 23912 } 23913 } 23914 } 23915 } 23916 }, 23917 "x-cli-version": "2.5" 23918 } 23919 }, 23920 "/projects/{project_id}/locales/{locale_id}/translations": { 23921 "get": { 23922 "summary": "List translations by locale", 23923 "description": "List translations for a specific locale. If you want to download all translations for one locale we recommend to use the <code>locales#download</code> endpoint.", 23924 "operationId": "translations/by_locale", 23925 "tags": [ 23926 "Translations" 23927 ], 23928 "parameters": [ 23929 { 23930 "$ref": "#/components/parameters/X-PhraseApp-OTP" 23931 }, 23932 { 23933 "$ref": "#/components/parameters/project_id" 23934 }, 23935 { 23936 "$ref": "#/components/parameters/locale_id" 23937 }, 23938 { 23939 "$ref": "#/components/parameters/page" 23940 }, 23941 { 23942 "$ref": "#/components/parameters/per_page" 23943 }, 23944 { 23945 "description": "specify the branch to use", 23946 "example": "my-feature-branch", 23947 "name": "branch", 23948 "in": "query", 23949 "schema": { 23950 "type": "string" 23951 } 23952 }, 23953 { 23954 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 23955 "example": "updated_at", 23956 "name": "sort", 23957 "in": "query", 23958 "schema": { 23959 "type": "string" 23960 } 23961 }, 23962 { 23963 "description": "Order direction. Can be one of: asc, desc.", 23964 "example": "desc", 23965 "name": "order", 23966 "in": "query", 23967 "schema": { 23968 "type": "string" 23969 } 23970 }, 23971 { 23972 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 23973 "example": "PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center", 23974 "name": "q", 23975 "in": "query", 23976 "schema": { 23977 "type": "string" 23978 } 23979 } 23980 ], 23981 "responses": { 23982 "200": { 23983 "description": "OK", 23984 "content": { 23985 "application/json": { 23986 "schema": { 23987 "type": "array", 23988 "items": { 23989 "$ref": "#/components/schemas/translation" 23990 } 23991 } 23992 } 23993 }, 23994 "headers": { 23995 "X-Rate-Limit-Limit": { 23996 "$ref": "#/components/headers/X-Rate-Limit-Limit" 23997 }, 23998 "X-Rate-Limit-Remaining": { 23999 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24000 }, 24001 "X-Rate-Limit-Reset": { 24002 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24003 }, 24004 "Link": { 24005 "$ref": "#/components/headers/Link" 24006 }, 24007 "Pagination": { 24008 "$ref": "#/components/headers/Pagination" 24009 } 24010 } 24011 }, 24012 "400": { 24013 "$ref": "#/components/responses/400" 24014 }, 24015 "404": { 24016 "$ref": "#/components/responses/404" 24017 }, 24018 "429": { 24019 "$ref": "#/components/responses/429" 24020 } 24021 }, 24022 "x-code-samples": [ 24023 { 24024 "lang": "Curl", 24025 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/locales/:locale_id/translations?branch=my-feature-branch&sort=updated_at&order=desc&q=PhraseApp*%2520unverified:true%2520excluded:true%2520tags:feature,center\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 24026 }, 24027 { 24028 "lang": "CLI v2", 24029 "source": "phrase translations by_locale \\\n--project_id <project_id> \\\n--locale_id <locale_id> \\\n--branch my-feature-branch \\\n--sort updated_at \\\n--order desc \\\n--query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \\\n--access_token <token>" 24030 } 24031 ], 24032 "x-cli-version": "2.5" 24033 } 24034 }, 24035 "/projects/{project_id}/keys/{key_id}/translations": { 24036 "get": { 24037 "summary": "List translations by key", 24038 "description": "List translations for a specific key.", 24039 "operationId": "translations/by_key", 24040 "tags": [ 24041 "Translations" 24042 ], 24043 "parameters": [ 24044 { 24045 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24046 }, 24047 { 24048 "$ref": "#/components/parameters/project_id" 24049 }, 24050 { 24051 "$ref": "#/components/parameters/key_id" 24052 }, 24053 { 24054 "$ref": "#/components/parameters/page" 24055 }, 24056 { 24057 "$ref": "#/components/parameters/per_page" 24058 }, 24059 { 24060 "description": "specify the branch to use", 24061 "example": "my-feature-branch", 24062 "name": "branch", 24063 "in": "query", 24064 "schema": { 24065 "type": "string" 24066 } 24067 }, 24068 { 24069 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 24070 "example": "updated_at", 24071 "name": "sort", 24072 "in": "query", 24073 "schema": { 24074 "type": "string" 24075 } 24076 }, 24077 { 24078 "description": "Order direction. Can be one of: asc, desc.", 24079 "example": "desc", 24080 "name": "order", 24081 "in": "query", 24082 "schema": { 24083 "type": "string" 24084 } 24085 }, 24086 { 24087 "description": "Specify a query to find translations by content (including wildcards).<br><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 24088 "example": "PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center", 24089 "name": "q", 24090 "in": "query", 24091 "schema": { 24092 "type": "string" 24093 } 24094 } 24095 ], 24096 "responses": { 24097 "200": { 24098 "description": "OK", 24099 "content": { 24100 "application/json": { 24101 "schema": { 24102 "type": "array", 24103 "items": { 24104 "$ref": "#/components/schemas/translation" 24105 } 24106 } 24107 } 24108 }, 24109 "headers": { 24110 "X-Rate-Limit-Limit": { 24111 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24112 }, 24113 "X-Rate-Limit-Remaining": { 24114 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24115 }, 24116 "X-Rate-Limit-Reset": { 24117 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24118 }, 24119 "Link": { 24120 "$ref": "#/components/headers/Link" 24121 }, 24122 "Pagination": { 24123 "$ref": "#/components/headers/Pagination" 24124 } 24125 } 24126 }, 24127 "400": { 24128 "$ref": "#/components/responses/400" 24129 }, 24130 "404": { 24131 "$ref": "#/components/responses/404" 24132 }, 24133 "429": { 24134 "$ref": "#/components/responses/429" 24135 } 24136 }, 24137 "x-code-samples": [ 24138 { 24139 "lang": "Curl", 24140 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/keys/:key_id/translations?branch=my-feature-branch&sort=updated_at&order=desc&q=PhraseApp*%2520unverified:true%2520excluded:true%2520tags:feature,center\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 24141 }, 24142 { 24143 "lang": "CLI v2", 24144 "source": "phrase translations by_key \\\n--project_id <project_id> \\\n--key_id <key_id> \\\n--branch my-feature-branch \\\n--sort updated_at \\\n--order desc \\\n--query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \\\n--access_token <token>" 24145 } 24146 ], 24147 "x-cli-version": "2.5" 24148 } 24149 }, 24150 "/projects/{project_id}/translations/search": { 24151 "post": { 24152 "summary": "Search translations", 24153 "description": "Search translations for the given project. Provides the same search interface as <code>translations#index</code> but allows POST requests to avoid limitations imposed by GET requests. If you want to download all translations for one locale we recommend to use the <code>locales#download</code> endpoint.", 24154 "operationId": "translations/search", 24155 "tags": [ 24156 "Translations" 24157 ], 24158 "parameters": [ 24159 { 24160 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24161 }, 24162 { 24163 "$ref": "#/components/parameters/project_id" 24164 }, 24165 { 24166 "$ref": "#/components/parameters/page" 24167 }, 24168 { 24169 "$ref": "#/components/parameters/per_page" 24170 } 24171 ], 24172 "responses": { 24173 "200": { 24174 "description": "OK", 24175 "content": { 24176 "application/json": { 24177 "schema": { 24178 "type": "array", 24179 "items": { 24180 "$ref": "#/components/schemas/translation" 24181 } 24182 } 24183 } 24184 }, 24185 "headers": { 24186 "X-Rate-Limit-Limit": { 24187 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24188 }, 24189 "X-Rate-Limit-Remaining": { 24190 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24191 }, 24192 "X-Rate-Limit-Reset": { 24193 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24194 } 24195 } 24196 }, 24197 "400": { 24198 "$ref": "#/components/responses/400" 24199 }, 24200 "404": { 24201 "$ref": "#/components/responses/404" 24202 }, 24203 "429": { 24204 "$ref": "#/components/responses/429" 24205 } 24206 }, 24207 "x-code-samples": [ 24208 { 24209 "lang": "Curl", 24210 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/search\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"sort\":\"updated_at\",\"order\":\"desc\",\"q\":\"PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center\"}' \\\n -H 'Content-Type: application/json'" 24211 }, 24212 { 24213 "lang": "CLI v2", 24214 "source": "phrase translations search \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"sort\":\"updated_at\", \"order\":\"desc\", \"q\":\"'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center'\"}' \\\n--access_token <token>" 24215 } 24216 ], 24217 "requestBody": { 24218 "required": true, 24219 "content": { 24220 "application/json": { 24221 "schema": { 24222 "type": "object", 24223 "title": "translations/search/parameters", 24224 "properties": { 24225 "branch": { 24226 "description": "specify the branch to use", 24227 "type": "string", 24228 "example": "my-feature-branch" 24229 }, 24230 "sort": { 24231 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 24232 "type": "string", 24233 "example": "updated_at" 24234 }, 24235 "order": { 24236 "description": "Order direction. Can be one of: asc, desc.", 24237 "type": "string", 24238 "example": "desc" 24239 }, 24240 "q": { 24241 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 24242 "type": "string", 24243 "example": "PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center" 24244 } 24245 } 24246 } 24247 } 24248 } 24249 }, 24250 "x-cli-version": "2.5" 24251 } 24252 }, 24253 "/projects/{project_id}/translations/{id}": { 24254 "get": { 24255 "summary": "Get a single translation", 24256 "description": "Get details on a single translation.", 24257 "operationId": "translation/show", 24258 "tags": [ 24259 "Translations" 24260 ], 24261 "parameters": [ 24262 { 24263 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24264 }, 24265 { 24266 "$ref": "#/components/parameters/project_id" 24267 }, 24268 { 24269 "$ref": "#/components/parameters/id" 24270 }, 24271 { 24272 "description": "specify the branch to use", 24273 "example": "my-feature-branch", 24274 "name": "branch", 24275 "in": "query", 24276 "schema": { 24277 "type": "string" 24278 } 24279 } 24280 ], 24281 "responses": { 24282 "200": { 24283 "description": "OK", 24284 "content": { 24285 "application/json": { 24286 "schema": { 24287 "$ref": "#/components/schemas/translation_details" 24288 } 24289 } 24290 }, 24291 "headers": { 24292 "X-Rate-Limit-Limit": { 24293 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24294 }, 24295 "X-Rate-Limit-Remaining": { 24296 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24297 }, 24298 "X-Rate-Limit-Reset": { 24299 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24300 } 24301 } 24302 }, 24303 "400": { 24304 "$ref": "#/components/responses/400" 24305 }, 24306 "404": { 24307 "$ref": "#/components/responses/404" 24308 }, 24309 "429": { 24310 "$ref": "#/components/responses/429" 24311 } 24312 }, 24313 "x-code-samples": [ 24314 { 24315 "lang": "Curl", 24316 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 24317 }, 24318 { 24319 "lang": "CLI v2", 24320 "source": "phrase translations show \\\n--project_id <project_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 24321 } 24322 ], 24323 "x-cli-version": "2.5" 24324 }, 24325 "patch": { 24326 "summary": "Update a translation", 24327 "description": "Update an existing translation.", 24328 "operationId": "translation/update", 24329 "tags": [ 24330 "Translations" 24331 ], 24332 "parameters": [ 24333 { 24334 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24335 }, 24336 { 24337 "$ref": "#/components/parameters/project_id" 24338 }, 24339 { 24340 "$ref": "#/components/parameters/id" 24341 } 24342 ], 24343 "responses": { 24344 "200": { 24345 "description": "OK", 24346 "content": { 24347 "application/json": { 24348 "schema": { 24349 "$ref": "#/components/schemas/translation_details" 24350 } 24351 } 24352 }, 24353 "headers": { 24354 "X-Rate-Limit-Limit": { 24355 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24356 }, 24357 "X-Rate-Limit-Remaining": { 24358 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24359 }, 24360 "X-Rate-Limit-Reset": { 24361 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24362 } 24363 } 24364 }, 24365 "400": { 24366 "$ref": "#/components/responses/400" 24367 }, 24368 "404": { 24369 "$ref": "#/components/responses/404" 24370 }, 24371 "429": { 24372 "$ref": "#/components/responses/429" 24373 } 24374 }, 24375 "x-code-samples": [ 24376 { 24377 "lang": "Curl", 24378 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"content\":\"My translation\"}' \\\n -H 'Content-Type: application/json'" 24379 }, 24380 { 24381 "lang": "CLI v2", 24382 "source": "phrase translations update \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\", \"content\": \"My translation\"}' \\\n--access_token <token>" 24383 } 24384 ], 24385 "requestBody": { 24386 "required": true, 24387 "content": { 24388 "application/json": { 24389 "schema": { 24390 "type": "object", 24391 "title": "translation/update/parameters", 24392 "properties": { 24393 "branch": { 24394 "description": "specify the branch to use", 24395 "type": "string", 24396 "example": "my-feature-branch" 24397 }, 24398 "content": { 24399 "description": "Translation content", 24400 "type": "string", 24401 "example": "My translation" 24402 }, 24403 "plural_suffix": { 24404 "description": "Plural suffix. Can be one of: zero, one, two, few, many, other. Must be specified if the key associated to the translation is pluralized.", 24405 "type": "string", 24406 "example": null 24407 }, 24408 "unverified": { 24409 "description": "Indicates whether translation is unverified. Part of the <a href=\"https://support.phrase.com/hc/en-us/articles/5784094755484\" target=\"_blank\">Advanced Workflows</a> feature.", 24410 "type": "boolean", 24411 "example": null 24412 }, 24413 "excluded": { 24414 "description": "Indicates whether translation is excluded.", 24415 "type": "boolean", 24416 "example": null 24417 }, 24418 "autotranslate": { 24419 "description": "Indicates whether the translation should be auto-translated. Responses with status 422 if provided for translation within a non-default locale or the project does not have the Autopilot feature enabled.", 24420 "type": "boolean", 24421 "example": null 24422 } 24423 } 24424 } 24425 } 24426 } 24427 }, 24428 "x-cli-version": "2.5" 24429 } 24430 }, 24431 "/projects/{project_id}/translations/{id}/verify": { 24432 "patch": { 24433 "summary": "Verify a translation", 24434 "description": "Verify an existing translation.", 24435 "operationId": "translation/verify", 24436 "tags": [ 24437 "Translations" 24438 ], 24439 "parameters": [ 24440 { 24441 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24442 }, 24443 { 24444 "$ref": "#/components/parameters/project_id" 24445 }, 24446 { 24447 "$ref": "#/components/parameters/id" 24448 } 24449 ], 24450 "responses": { 24451 "200": { 24452 "description": "OK", 24453 "content": { 24454 "application/json": { 24455 "schema": { 24456 "$ref": "#/components/schemas/translation_details" 24457 } 24458 } 24459 }, 24460 "headers": { 24461 "X-Rate-Limit-Limit": { 24462 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24463 }, 24464 "X-Rate-Limit-Remaining": { 24465 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24466 }, 24467 "X-Rate-Limit-Reset": { 24468 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24469 } 24470 } 24471 }, 24472 "400": { 24473 "$ref": "#/components/responses/400" 24474 }, 24475 "404": { 24476 "$ref": "#/components/responses/404" 24477 }, 24478 "429": { 24479 "$ref": "#/components/responses/429" 24480 } 24481 }, 24482 "x-code-samples": [ 24483 { 24484 "lang": "Curl", 24485 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id/verify\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 24486 }, 24487 { 24488 "lang": "CLI v2", 24489 "source": "phrase translations verify \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 24490 } 24491 ], 24492 "requestBody": { 24493 "required": true, 24494 "content": { 24495 "application/json": { 24496 "schema": { 24497 "type": "object", 24498 "title": "translation/verify/parameters", 24499 "properties": { 24500 "branch": { 24501 "description": "specify the branch to use", 24502 "type": "string", 24503 "example": "my-feature-branch" 24504 } 24505 } 24506 } 24507 } 24508 } 24509 }, 24510 "x-cli-version": "2.5" 24511 } 24512 }, 24513 "/projects/{project_id}/translations/{id}/unverify": { 24514 "patch": { 24515 "summary": "Mark a translation as unverified", 24516 "description": "Mark an existing translation as unverified.", 24517 "operationId": "translation/unverify", 24518 "tags": [ 24519 "Translations" 24520 ], 24521 "parameters": [ 24522 { 24523 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24524 }, 24525 { 24526 "$ref": "#/components/parameters/project_id" 24527 }, 24528 { 24529 "$ref": "#/components/parameters/id" 24530 } 24531 ], 24532 "responses": { 24533 "200": { 24534 "description": "OK", 24535 "content": { 24536 "application/json": { 24537 "schema": { 24538 "$ref": "#/components/schemas/translation_details" 24539 } 24540 } 24541 }, 24542 "headers": { 24543 "X-Rate-Limit-Limit": { 24544 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24545 }, 24546 "X-Rate-Limit-Remaining": { 24547 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24548 }, 24549 "X-Rate-Limit-Reset": { 24550 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24551 } 24552 } 24553 }, 24554 "400": { 24555 "$ref": "#/components/responses/400" 24556 }, 24557 "404": { 24558 "$ref": "#/components/responses/404" 24559 }, 24560 "429": { 24561 "$ref": "#/components/responses/429" 24562 } 24563 }, 24564 "x-code-samples": [ 24565 { 24566 "lang": "Curl", 24567 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id/unverify\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 24568 }, 24569 { 24570 "lang": "CLI v2", 24571 "source": "phrase translations unverify \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 24572 } 24573 ], 24574 "requestBody": { 24575 "required": true, 24576 "content": { 24577 "application/json": { 24578 "schema": { 24579 "type": "object", 24580 "title": "translation/unverify/parameters", 24581 "properties": { 24582 "branch": { 24583 "description": "specify the branch to use", 24584 "type": "string", 24585 "example": "my-feature-branch" 24586 } 24587 } 24588 } 24589 } 24590 } 24591 }, 24592 "x-cli-version": "2.5" 24593 } 24594 }, 24595 "/projects/{project_id}/translations/{id}/review": { 24596 "patch": { 24597 "summary": "Review a translation", 24598 "description": "Mark an existing translation as reviewed.", 24599 "operationId": "translation/review", 24600 "tags": [ 24601 "Translations" 24602 ], 24603 "parameters": [ 24604 { 24605 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24606 }, 24607 { 24608 "$ref": "#/components/parameters/project_id" 24609 }, 24610 { 24611 "$ref": "#/components/parameters/id" 24612 } 24613 ], 24614 "responses": { 24615 "200": { 24616 "description": "OK", 24617 "content": { 24618 "application/json": { 24619 "schema": { 24620 "$ref": "#/components/schemas/translation_details" 24621 } 24622 } 24623 }, 24624 "headers": { 24625 "X-Rate-Limit-Limit": { 24626 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24627 }, 24628 "X-Rate-Limit-Remaining": { 24629 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24630 }, 24631 "X-Rate-Limit-Reset": { 24632 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24633 } 24634 } 24635 }, 24636 "400": { 24637 "$ref": "#/components/responses/400" 24638 }, 24639 "404": { 24640 "$ref": "#/components/responses/404" 24641 }, 24642 "429": { 24643 "$ref": "#/components/responses/429" 24644 } 24645 }, 24646 "x-code-samples": [ 24647 { 24648 "lang": "Curl", 24649 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id/review\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 24650 }, 24651 { 24652 "lang": "CLI v2", 24653 "source": "phrase translations review \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 24654 } 24655 ], 24656 "requestBody": { 24657 "required": true, 24658 "content": { 24659 "application/json": { 24660 "schema": { 24661 "type": "object", 24662 "title": "translation/review/parameters", 24663 "properties": { 24664 "branch": { 24665 "description": "specify the branch to use", 24666 "type": "string", 24667 "example": "my-feature-branch" 24668 } 24669 } 24670 } 24671 } 24672 } 24673 }, 24674 "x-cli-version": "2.5" 24675 } 24676 }, 24677 "/projects/{project_id}/translations/{id}/exclude": { 24678 "patch": { 24679 "summary": "Exclude a translation from export", 24680 "description": "Set exclude from export flag on an existing translation.", 24681 "operationId": "translation/exclude", 24682 "tags": [ 24683 "Translations" 24684 ], 24685 "parameters": [ 24686 { 24687 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24688 }, 24689 { 24690 "$ref": "#/components/parameters/project_id" 24691 }, 24692 { 24693 "$ref": "#/components/parameters/id" 24694 } 24695 ], 24696 "responses": { 24697 "200": { 24698 "description": "OK", 24699 "content": { 24700 "application/json": { 24701 "schema": { 24702 "$ref": "#/components/schemas/translation_details" 24703 } 24704 } 24705 }, 24706 "headers": { 24707 "X-Rate-Limit-Limit": { 24708 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24709 }, 24710 "X-Rate-Limit-Remaining": { 24711 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24712 }, 24713 "X-Rate-Limit-Reset": { 24714 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24715 } 24716 } 24717 }, 24718 "400": { 24719 "$ref": "#/components/responses/400" 24720 }, 24721 "404": { 24722 "$ref": "#/components/responses/404" 24723 }, 24724 "429": { 24725 "$ref": "#/components/responses/429" 24726 } 24727 }, 24728 "x-code-samples": [ 24729 { 24730 "lang": "Curl", 24731 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id/exclude\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 24732 }, 24733 { 24734 "lang": "CLI v2", 24735 "source": "phrase translations exclude \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 24736 } 24737 ], 24738 "requestBody": { 24739 "required": true, 24740 "content": { 24741 "application/json": { 24742 "schema": { 24743 "type": "object", 24744 "title": "translation/exclude/parameters", 24745 "properties": { 24746 "branch": { 24747 "description": "specify the branch to use", 24748 "type": "string", 24749 "example": "my-feature-branch" 24750 } 24751 } 24752 } 24753 } 24754 } 24755 }, 24756 "x-cli-version": "2.5" 24757 } 24758 }, 24759 "/projects/{project_id}/translations/{id}/include": { 24760 "patch": { 24761 "summary": "Include a translation", 24762 "description": "Remove exclude from export flag from an existing translation.", 24763 "operationId": "translation/include", 24764 "tags": [ 24765 "Translations" 24766 ], 24767 "parameters": [ 24768 { 24769 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24770 }, 24771 { 24772 "$ref": "#/components/parameters/project_id" 24773 }, 24774 { 24775 "$ref": "#/components/parameters/id" 24776 } 24777 ], 24778 "responses": { 24779 "200": { 24780 "description": "OK", 24781 "content": { 24782 "application/json": { 24783 "schema": { 24784 "$ref": "#/components/schemas/translation_details" 24785 } 24786 } 24787 }, 24788 "headers": { 24789 "X-Rate-Limit-Limit": { 24790 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24791 }, 24792 "X-Rate-Limit-Remaining": { 24793 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24794 }, 24795 "X-Rate-Limit-Reset": { 24796 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24797 } 24798 } 24799 }, 24800 "400": { 24801 "$ref": "#/components/responses/400" 24802 }, 24803 "404": { 24804 "$ref": "#/components/responses/404" 24805 }, 24806 "429": { 24807 "$ref": "#/components/responses/429" 24808 } 24809 }, 24810 "x-code-samples": [ 24811 { 24812 "lang": "Curl", 24813 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/:id/include\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 24814 }, 24815 { 24816 "lang": "CLI v2", 24817 "source": "phrase translations include \\\n--project_id <project_id> \\\n--id <id> \\\n--data '{\"branch\":\"my-feature-branch\"}' \\\n--access_token <token>" 24818 } 24819 ], 24820 "requestBody": { 24821 "required": true, 24822 "content": { 24823 "application/json": { 24824 "schema": { 24825 "type": "object", 24826 "title": "translation/include/parameters", 24827 "properties": { 24828 "branch": { 24829 "description": "specify the branch to use", 24830 "type": "string", 24831 "example": "my-feature-branch" 24832 } 24833 } 24834 } 24835 } 24836 } 24837 }, 24838 "x-cli-version": "2.5" 24839 } 24840 }, 24841 "/projects/{project_id}/translations/verify": { 24842 "patch": { 24843 "summary": "Verify translations by query", 24844 "description": "Verify translations matching query.", 24845 "operationId": "translations/verify-collection", 24846 "tags": [ 24847 "Translations" 24848 ], 24849 "parameters": [ 24850 { 24851 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24852 }, 24853 { 24854 "$ref": "#/components/parameters/project_id" 24855 } 24856 ], 24857 "responses": { 24858 "200": { 24859 "description": "OK", 24860 "content": { 24861 "application/json": { 24862 "schema": { 24863 "$ref": "#/components/schemas/affected_count" 24864 } 24865 } 24866 }, 24867 "headers": { 24868 "X-Rate-Limit-Limit": { 24869 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24870 }, 24871 "X-Rate-Limit-Remaining": { 24872 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24873 }, 24874 "X-Rate-Limit-Reset": { 24875 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24876 } 24877 } 24878 }, 24879 "400": { 24880 "$ref": "#/components/responses/400" 24881 }, 24882 "404": { 24883 "$ref": "#/components/responses/404" 24884 }, 24885 "429": { 24886 "$ref": "#/components/responses/429" 24887 } 24888 }, 24889 "x-code-samples": [ 24890 { 24891 "lang": "Curl", 24892 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/verify\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"PhraseApp*%20unverified:true%20tags:feature,center\"}' \\\n -H 'Content-Type: application/json'" 24893 }, 24894 { 24895 "lang": "CLI v2", 24896 "source": "phrase translations verify-collection \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'PhraseApp*%20unverified:true%20tags:feature,center'\"}' \\\n--access_token <token>" 24897 } 24898 ], 24899 "requestBody": { 24900 "required": true, 24901 "content": { 24902 "application/json": { 24903 "schema": { 24904 "type": "object", 24905 "title": "translations/verify/parameters", 24906 "properties": { 24907 "branch": { 24908 "description": "specify the branch to use", 24909 "type": "string", 24910 "example": "my-feature-branch" 24911 }, 24912 "locale_id": { 24913 "description": "specify the locale of the translations to be verified", 24914 "type": "string", 24915 "example": "fc2f11dd6a658fa9652f6f0a9ebee688" 24916 }, 24917 "q": { 24918 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 24919 "type": "string", 24920 "example": "PhraseApp*%20unverified:true%20tags:feature,center" 24921 } 24922 } 24923 } 24924 } 24925 } 24926 }, 24927 "x-cli-version": "2.5" 24928 } 24929 }, 24930 "/projects/{project_id}/translations/unverify": { 24931 "patch": { 24932 "summary": "Unverify translations by query", 24933 "description": "Mark translations matching query as unverified.", 24934 "operationId": "translations/unverify-collection", 24935 "tags": [ 24936 "Translations" 24937 ], 24938 "parameters": [ 24939 { 24940 "$ref": "#/components/parameters/X-PhraseApp-OTP" 24941 }, 24942 { 24943 "$ref": "#/components/parameters/project_id" 24944 } 24945 ], 24946 "responses": { 24947 "200": { 24948 "description": "OK", 24949 "content": { 24950 "application/json": { 24951 "schema": { 24952 "$ref": "#/components/schemas/affected_count" 24953 } 24954 } 24955 }, 24956 "headers": { 24957 "X-Rate-Limit-Limit": { 24958 "$ref": "#/components/headers/X-Rate-Limit-Limit" 24959 }, 24960 "X-Rate-Limit-Remaining": { 24961 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 24962 }, 24963 "X-Rate-Limit-Reset": { 24964 "$ref": "#/components/headers/X-Rate-Limit-Reset" 24965 } 24966 } 24967 }, 24968 "400": { 24969 "$ref": "#/components/responses/400" 24970 }, 24971 "404": { 24972 "$ref": "#/components/responses/404" 24973 }, 24974 "429": { 24975 "$ref": "#/components/responses/429" 24976 } 24977 }, 24978 "x-code-samples": [ 24979 { 24980 "lang": "Curl", 24981 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/unverify\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"PhraseApp*%20verified:true%20tags:feature,center\",\"sort\":\"updated_at\",\"order\":\"desc\"}' \\\n -H 'Content-Type: application/json'" 24982 }, 24983 { 24984 "lang": "CLI v2", 24985 "source": "phrase translations unverify-collection \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'PhraseApp*%20verified:true%20tags:feature,center'\", \"sort\":\"updated_at\", \"order\":\"desc\"}' \\\n--access_token <token>" 24986 } 24987 ], 24988 "requestBody": { 24989 "required": true, 24990 "content": { 24991 "application/json": { 24992 "schema": { 24993 "type": "object", 24994 "title": "translations/unverify/parameters", 24995 "properties": { 24996 "branch": { 24997 "description": "specify the branch to use", 24998 "type": "string", 24999 "example": "my-feature-branch" 25000 }, 25001 "q": { 25002 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 25003 "type": "string", 25004 "example": "PhraseApp*%20verified:true%20tags:feature,center" 25005 }, 25006 "sort": { 25007 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 25008 "type": "string", 25009 "example": "updated_at" 25010 }, 25011 "order": { 25012 "description": "Order direction. Can be one of: asc, desc.", 25013 "type": "string", 25014 "example": "desc" 25015 } 25016 } 25017 } 25018 } 25019 } 25020 }, 25021 "x-cli-version": "2.5" 25022 } 25023 }, 25024 "/projects/{project_id}/translations/review": { 25025 "patch": { 25026 "summary": "Review translations selected by query", 25027 "description": "Review translations matching query.", 25028 "operationId": "translations/review-collection", 25029 "tags": [ 25030 "Translations" 25031 ], 25032 "parameters": [ 25033 { 25034 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25035 }, 25036 { 25037 "$ref": "#/components/parameters/project_id" 25038 } 25039 ], 25040 "responses": { 25041 "200": { 25042 "description": "OK", 25043 "content": { 25044 "application/json": { 25045 "schema": { 25046 "$ref": "#/components/schemas/affected_count" 25047 } 25048 } 25049 }, 25050 "headers": { 25051 "X-Rate-Limit-Limit": { 25052 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25053 }, 25054 "X-Rate-Limit-Remaining": { 25055 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25056 }, 25057 "X-Rate-Limit-Reset": { 25058 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25059 } 25060 } 25061 }, 25062 "400": { 25063 "$ref": "#/components/responses/400" 25064 }, 25065 "404": { 25066 "$ref": "#/components/responses/404" 25067 }, 25068 "429": { 25069 "$ref": "#/components/responses/429" 25070 } 25071 }, 25072 "x-code-samples": [ 25073 { 25074 "lang": "Curl", 25075 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/review\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"PhraseApp*%reviewed:false%20tags:feature,center\"}' \\\n -H 'Content-Type: application/json'" 25076 }, 25077 { 25078 "lang": "CLI v2", 25079 "source": "phrase translations review-collection \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'PhraseApp*%reviewed:false%20tags:feature,center'\"}' \\\n--access_token <token>" 25080 } 25081 ], 25082 "requestBody": { 25083 "required": true, 25084 "content": { 25085 "application/json": { 25086 "schema": { 25087 "type": "object", 25088 "title": "translations/review/parameters", 25089 "properties": { 25090 "branch": { 25091 "description": "specify the branch to use", 25092 "type": "string", 25093 "example": "my-feature-branch" 25094 }, 25095 "q": { 25096 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 25097 "type": "string", 25098 "example": "PhraseApp*%reviewed:false%20tags:feature,center" 25099 } 25100 } 25101 } 25102 } 25103 } 25104 }, 25105 "x-cli-version": "2.5" 25106 } 25107 }, 25108 "/projects/{project_id}/translations/exclude": { 25109 "patch": { 25110 "summary": "Exclude translations by query", 25111 "description": "Exclude translations matching query from locale export.", 25112 "operationId": "translations/exclude-collection", 25113 "tags": [ 25114 "Translations" 25115 ], 25116 "parameters": [ 25117 { 25118 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25119 }, 25120 { 25121 "$ref": "#/components/parameters/project_id" 25122 } 25123 ], 25124 "responses": { 25125 "200": { 25126 "description": "OK", 25127 "content": { 25128 "application/json": { 25129 "schema": { 25130 "$ref": "#/components/schemas/affected_count" 25131 } 25132 } 25133 }, 25134 "headers": { 25135 "X-Rate-Limit-Limit": { 25136 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25137 }, 25138 "X-Rate-Limit-Remaining": { 25139 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25140 }, 25141 "X-Rate-Limit-Reset": { 25142 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25143 } 25144 } 25145 }, 25146 "400": { 25147 "$ref": "#/components/responses/400" 25148 }, 25149 "404": { 25150 "$ref": "#/components/responses/404" 25151 }, 25152 "429": { 25153 "$ref": "#/components/responses/429" 25154 } 25155 }, 25156 "x-code-samples": [ 25157 { 25158 "lang": "Curl", 25159 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/exclude\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"PhraseApp*%20verified:true%20tags:feature,center\",\"sort\":\"updated_at\",\"order\":\"desc\"}' \\\n -H 'Content-Type: application/json'" 25160 }, 25161 { 25162 "lang": "CLI v2", 25163 "source": "phrase translations exclude-collection \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'PhraseApp*%20verified:true%20tags:feature,center'\", \"sort\":\"updated_at\", \"order\":\"desc\"}' \\\n--access_token <token>" 25164 } 25165 ], 25166 "requestBody": { 25167 "required": true, 25168 "content": { 25169 "application/json": { 25170 "schema": { 25171 "type": "object", 25172 "title": "translations/exclude/parameters", 25173 "properties": { 25174 "branch": { 25175 "description": "specify the branch to use", 25176 "type": "string", 25177 "example": "my-feature-branch" 25178 }, 25179 "q": { 25180 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 25181 "type": "string", 25182 "example": "PhraseApp*%20verified:true%20tags:feature,center" 25183 }, 25184 "sort": { 25185 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 25186 "type": "string", 25187 "example": "updated_at" 25188 }, 25189 "order": { 25190 "description": "Order direction. Can be one of: asc, desc.", 25191 "type": "string", 25192 "example": "desc" 25193 } 25194 } 25195 } 25196 } 25197 } 25198 }, 25199 "x-cli-version": "2.5" 25200 } 25201 }, 25202 "/projects/{project_id}/translations/include": { 25203 "patch": { 25204 "summary": "Include translations by query", 25205 "description": "Include translations matching query in locale export.", 25206 "operationId": "translations/include-collection", 25207 "tags": [ 25208 "Translations" 25209 ], 25210 "parameters": [ 25211 { 25212 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25213 }, 25214 { 25215 "$ref": "#/components/parameters/project_id" 25216 } 25217 ], 25218 "responses": { 25219 "200": { 25220 "description": "OK", 25221 "content": { 25222 "application/json": { 25223 "schema": { 25224 "$ref": "#/components/schemas/affected_count" 25225 } 25226 } 25227 }, 25228 "headers": { 25229 "X-Rate-Limit-Limit": { 25230 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25231 }, 25232 "X-Rate-Limit-Remaining": { 25233 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25234 }, 25235 "X-Rate-Limit-Reset": { 25236 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25237 } 25238 } 25239 }, 25240 "400": { 25241 "$ref": "#/components/responses/400" 25242 }, 25243 "404": { 25244 "$ref": "#/components/responses/404" 25245 }, 25246 "429": { 25247 "$ref": "#/components/responses/429" 25248 } 25249 }, 25250 "x-code-samples": [ 25251 { 25252 "lang": "Curl", 25253 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/translations/include\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"q\":\"PhraseApp*%20verified:true%20tags:feature,center\",\"sort\":\"updated_at\",\"order\":\"desc\"}' \\\n -H 'Content-Type: application/json'" 25254 }, 25255 { 25256 "lang": "CLI v2", 25257 "source": "phrase translations include-collection \\\n--project_id <project_id> \\\n--data '{\"branch\":\"my-feature-branch\", \"q\":\"'PhraseApp*%20verified:true%20tags:feature,center'\", \"sort\":\"updated_at\", \"order\":\"desc\"}' \\\n--access_token <token>" 25258 } 25259 ], 25260 "requestBody": { 25261 "required": true, 25262 "content": { 25263 "application/json": { 25264 "schema": { 25265 "type": "object", 25266 "title": "translations/include/parameters", 25267 "properties": { 25268 "branch": { 25269 "description": "specify the branch to use", 25270 "type": "string", 25271 "example": "my-feature-branch" 25272 }, 25273 "q": { 25274 "description": "Specify a query to find translations by content (including wildcards).<br><br>\n<i>Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).</i><br>\nThe following qualifiers are supported in the query:<br>\n<ul>\n <li><code>id:translation_id,...</code> for queries on a comma-separated list of ids</li>\n <li><code>tags:XYZ</code> for tags on the translation</li>\n <li><code>unverified:{true|false}</code> for verification status</li>\n <li><code>excluded:{true|false}</code> for exclusion status</li>\n <li><code>updated_at:{>=|<=}2013-02-21T00:00:00Z</code> for date range queries</li>\n</ul>\nFind more examples <a href=\"#overview--usage-examples\">here</a>.\n", 25275 "type": "string", 25276 "example": "PhraseApp*%20verified:true%20tags:feature,center" 25277 }, 25278 "sort": { 25279 "description": "Sort criteria. Can be one of: key_name, created_at, updated_at.", 25280 "type": "string", 25281 "example": "updated_at" 25282 }, 25283 "order": { 25284 "description": "Order direction. Can be one of: asc, desc.", 25285 "type": "string", 25286 "example": "desc" 25287 } 25288 } 25289 } 25290 } 25291 } 25292 }, 25293 "x-cli-version": "2.5" 25294 } 25295 }, 25296 "/notifications": { 25297 "get": { 25298 "summary": "List notifications", 25299 "description": "List all notifications from the current user", 25300 "operationId": "notifications/list", 25301 "tags": [ 25302 "Notifications" 25303 ], 25304 "parameters": [ 25305 { 25306 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25307 }, 25308 { 25309 "$ref": "#/components/parameters/page" 25310 }, 25311 { 25312 "$ref": "#/components/parameters/per_page" 25313 }, 25314 { 25315 "description": "Include only unseen notifications", 25316 "example": true, 25317 "name": "unseen", 25318 "in": "query", 25319 "schema": { 25320 "type": "boolean" 25321 } 25322 } 25323 ], 25324 "responses": { 25325 "200": { 25326 "description": "OK", 25327 "content": { 25328 "application/json": { 25329 "schema": { 25330 "type": "array", 25331 "items": { 25332 "$ref": "#/components/schemas/notification" 25333 } 25334 } 25335 } 25336 }, 25337 "headers": { 25338 "X-Rate-Limit-Limit": { 25339 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25340 }, 25341 "X-Rate-Limit-Remaining": { 25342 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25343 }, 25344 "X-Rate-Limit-Reset": { 25345 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25346 }, 25347 "Link": { 25348 "$ref": "#/components/headers/Link" 25349 }, 25350 "Pagination": { 25351 "$ref": "#/components/headers/Pagination" 25352 } 25353 } 25354 }, 25355 "400": { 25356 "$ref": "#/components/responses/400" 25357 }, 25358 "404": { 25359 "$ref": "#/components/responses/404" 25360 }, 25361 "429": { 25362 "$ref": "#/components/responses/429" 25363 } 25364 }, 25365 "x-code-samples": [ 25366 { 25367 "lang": "Curl", 25368 "source": "curl \"https://api.phrase.com/v2/notifications\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 25369 }, 25370 { 25371 "lang": "CLI v2", 25372 "source": "phrase notifications list \\\n--access_token <token>" 25373 } 25374 ], 25375 "x-cli-version": "2.5" 25376 } 25377 }, 25378 "/notifications/mark_all_as_read": { 25379 "post": { 25380 "summary": "Mark all notifications as read", 25381 "description": "Mark all notifications of the current user as read", 25382 "operationId": "notifications/mark_all_as_read", 25383 "tags": [ 25384 "Notifications" 25385 ], 25386 "parameters": [ 25387 { 25388 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25389 } 25390 ], 25391 "responses": { 25392 "200": { 25393 "description": "OK", 25394 "content": { 25395 "application/json": { 25396 "schema": { 25397 "type": "array", 25398 "items": { 25399 "$ref": "#/components/schemas/notification" 25400 } 25401 } 25402 } 25403 }, 25404 "headers": { 25405 "X-Rate-Limit-Limit": { 25406 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25407 }, 25408 "X-Rate-Limit-Remaining": { 25409 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25410 }, 25411 "X-Rate-Limit-Reset": { 25412 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25413 } 25414 } 25415 }, 25416 "400": { 25417 "$ref": "#/components/responses/400" 25418 }, 25419 "404": { 25420 "$ref": "#/components/responses/404" 25421 }, 25422 "429": { 25423 "$ref": "#/components/responses/429" 25424 } 25425 }, 25426 "x-code-samples": [ 25427 { 25428 "lang": "Curl", 25429 "source": "curl \"https://api.phrase.com/v2/notifications/mark_all_as_read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -H 'Content-Type: application/json'" 25430 }, 25431 { 25432 "lang": "CLI v2", 25433 "source": "phrase notifications mark_all_as_read \\\n--access_token <token>" 25434 } 25435 ], 25436 "x-cli-version": "2.5" 25437 } 25438 }, 25439 "/notifications/{id}": { 25440 "get": { 25441 "summary": "Get a single notification", 25442 "description": "Get details on a single notification.", 25443 "operationId": "notifications/show", 25444 "tags": [ 25445 "Notifications" 25446 ], 25447 "parameters": [ 25448 { 25449 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25450 }, 25451 { 25452 "$ref": "#/components/parameters/id" 25453 } 25454 ], 25455 "responses": { 25456 "200": { 25457 "description": "OK", 25458 "content": { 25459 "application/json": { 25460 "schema": { 25461 "$ref": "#/components/schemas/notification" 25462 } 25463 } 25464 }, 25465 "headers": { 25466 "X-Rate-Limit-Limit": { 25467 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25468 }, 25469 "X-Rate-Limit-Remaining": { 25470 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25471 }, 25472 "X-Rate-Limit-Reset": { 25473 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25474 } 25475 } 25476 }, 25477 "400": { 25478 "$ref": "#/components/responses/400" 25479 }, 25480 "401": { 25481 "$ref": "#/components/responses/401" 25482 }, 25483 "403": { 25484 "$ref": "#/components/responses/403" 25485 }, 25486 "404": { 25487 "$ref": "#/components/responses/404" 25488 }, 25489 "429": { 25490 "$ref": "#/components/responses/429" 25491 } 25492 }, 25493 "x-code-samples": [ 25494 { 25495 "lang": "Curl", 25496 "source": "curl \"https://api.phrase.com/v2/notification/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 25497 }, 25498 { 25499 "lang": "CLI v2", 25500 "source": "phrase notifications show \\\n--id <id> \\\n--access_token <token>" 25501 } 25502 ], 25503 "x-cli-version": "2.5" 25504 } 25505 }, 25506 "/notification_groups": { 25507 "get": { 25508 "summary": "List notification groups", 25509 "description": "List all notification groups from the current user", 25510 "operationId": "notification_groups/list", 25511 "tags": [ 25512 "Notification Groups" 25513 ], 25514 "parameters": [ 25515 { 25516 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25517 }, 25518 { 25519 "$ref": "#/components/parameters/page" 25520 }, 25521 { 25522 "$ref": "#/components/parameters/per_page" 25523 } 25524 ], 25525 "responses": { 25526 "200": { 25527 "description": "OK", 25528 "content": { 25529 "application/json": { 25530 "schema": { 25531 "type": "array", 25532 "items": { 25533 "$ref": "#/components/schemas/notification_group_detail" 25534 } 25535 } 25536 } 25537 }, 25538 "headers": { 25539 "X-Rate-Limit-Limit": { 25540 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25541 }, 25542 "X-Rate-Limit-Remaining": { 25543 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25544 }, 25545 "X-Rate-Limit-Reset": { 25546 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25547 }, 25548 "Link": { 25549 "$ref": "#/components/headers/Link" 25550 }, 25551 "Pagination": { 25552 "$ref": "#/components/headers/Pagination" 25553 } 25554 } 25555 }, 25556 "400": { 25557 "$ref": "#/components/responses/400" 25558 }, 25559 "404": { 25560 "$ref": "#/components/responses/404" 25561 }, 25562 "429": { 25563 "$ref": "#/components/responses/429" 25564 } 25565 }, 25566 "x-code-samples": [ 25567 { 25568 "lang": "Curl", 25569 "source": "curl \"https://api.phrase.com/v2/notification_groups\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 25570 }, 25571 { 25572 "lang": "CLI v2", 25573 "source": "phrase notification_groups list \\\n--access_token <token>" 25574 } 25575 ], 25576 "x-cli-version": "2.5" 25577 } 25578 }, 25579 "/notification_groups/mark_all_as_read": { 25580 "patch": { 25581 "summary": "Mark all notification groups as read", 25582 "description": "Mark all notification groups of the current user as read", 25583 "operationId": "notification_groups/mark_all_as_read", 25584 "tags": [ 25585 "Notification Groups" 25586 ], 25587 "parameters": [ 25588 { 25589 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25590 } 25591 ], 25592 "responses": { 25593 "200": { 25594 "description": "OK", 25595 "content": { 25596 "application/json": { 25597 "schema": { 25598 "type": "array", 25599 "items": { 25600 "$ref": "#/components/schemas/notification_group_detail" 25601 } 25602 } 25603 } 25604 }, 25605 "headers": { 25606 "X-Rate-Limit-Limit": { 25607 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25608 }, 25609 "X-Rate-Limit-Remaining": { 25610 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25611 }, 25612 "X-Rate-Limit-Reset": { 25613 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25614 } 25615 } 25616 }, 25617 "400": { 25618 "$ref": "#/components/responses/400" 25619 }, 25620 "404": { 25621 "$ref": "#/components/responses/404" 25622 }, 25623 "429": { 25624 "$ref": "#/components/responses/429" 25625 } 25626 }, 25627 "x-code-samples": [ 25628 { 25629 "lang": "Curl", 25630 "source": "curl \"https://api.phrase.com/v2/notification_groups/mark_all_as_read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json'" 25631 }, 25632 { 25633 "lang": "CLI v2", 25634 "source": "phrase notification_groups mark_all_as_read \\\n--access_token <token>" 25635 } 25636 ], 25637 "x-cli-version": "2.5" 25638 } 25639 }, 25640 "/notification_groups/{id}/mark_as_read": { 25641 "patch": { 25642 "summary": "Mark a notification group as read", 25643 "description": "Mark a notifications group of the current user as read", 25644 "operationId": "notification_groups/mark_as_read", 25645 "tags": [ 25646 "Notification Groups" 25647 ], 25648 "parameters": [ 25649 { 25650 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25651 }, 25652 { 25653 "$ref": "#/components/parameters/id" 25654 } 25655 ], 25656 "responses": { 25657 "200": { 25658 "description": "OK", 25659 "content": { 25660 "application/json": { 25661 "schema": { 25662 "$ref": "#/components/schemas/notification_group_detail" 25663 } 25664 } 25665 }, 25666 "headers": { 25667 "X-Rate-Limit-Limit": { 25668 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25669 }, 25670 "X-Rate-Limit-Remaining": { 25671 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25672 }, 25673 "X-Rate-Limit-Reset": { 25674 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25675 } 25676 } 25677 }, 25678 "400": { 25679 "$ref": "#/components/responses/400" 25680 }, 25681 "404": { 25682 "$ref": "#/components/responses/404" 25683 }, 25684 "429": { 25685 "$ref": "#/components/responses/429" 25686 } 25687 }, 25688 "x-code-samples": [ 25689 { 25690 "lang": "Curl", 25691 "source": "curl \"https://api.phrase.com/v2/notification_groups/:id/mark_as_read\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json'" 25692 }, 25693 { 25694 "lang": "CLI v2", 25695 "source": "phrase notification_groups mark_as_read \\\n--id <id> \\\n--access_token <token>" 25696 } 25697 ], 25698 "x-cli-version": "2.5" 25699 } 25700 }, 25701 "/accounts/{account_id}/search": { 25702 "post": { 25703 "summary": "Search across projects", 25704 "description": "Search for keys and translations in all account projects <br><br><i>Note: Search is limited to 10000 results and may not include recently updated data depending on the project sizes.</i>", 25705 "operationId": "search/in_account", 25706 "tags": [ 25707 "Search" 25708 ], 25709 "parameters": [ 25710 { 25711 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25712 }, 25713 { 25714 "$ref": "#/components/parameters/account_id" 25715 } 25716 ], 25717 "responses": { 25718 "200": { 25719 "description": "OK", 25720 "content": { 25721 "application/json": { 25722 "schema": { 25723 "type": "object", 25724 "title": "account_search_result", 25725 "properties": { 25726 "query": { 25727 "type": "string" 25728 }, 25729 "excerpt": { 25730 "type": "string" 25731 }, 25732 "key": { 25733 "$ref": "#/components/schemas/key_preview" 25734 }, 25735 "locale": { 25736 "$ref": "#/components/schemas/locale_preview" 25737 }, 25738 "project": { 25739 "$ref": "#/components/schemas/project" 25740 }, 25741 "translation": { 25742 "$ref": "#/components/schemas/translation" 25743 }, 25744 "other_translations": { 25745 "type": "array", 25746 "items": { 25747 "$ref": "#/components/schemas/translation" 25748 } 25749 } 25750 }, 25751 "example": { 25752 "query": "keyword", 25753 "excerpt": "excerpt text", 25754 "key": { 25755 "id": "abcd1234cdef1234abcd1234cdef1234", 25756 "name": "key.name", 25757 "plural": false, 25758 "data_type": "string", 25759 "tags": [ 25760 "tag 1", 25761 "tag 2" 25762 ] 25763 }, 25764 "locale": { 25765 "id": "abcd1234cdef1234abcd1234cdef1234", 25766 "name": "German", 25767 "code": "de_DE" 25768 }, 25769 "project": { 25770 "id": "abcd1234cdef1234abcd1234cdef1234", 25771 "name": "project name", 25772 "slug": "project-slug", 25773 "main_format": "", 25774 "project_image_url": "", 25775 "created_at": "2021-05-04T14:16:26Z", 25776 "updated_at": "2021-06-14T14:26:09Z", 25777 "account": { 25778 "id": "abcd1234cdef1234abcd1234cdef1234", 25779 "name": "account name", 25780 "slug": "account-slug", 25781 "company": "company name", 25782 "created_at": "2021-04-27T14:27:25Z", 25783 "updated_at": "2021-06-14T14:35:15Z", 25784 "company_logo_url": "" 25785 }, 25786 "space": { 25787 "id": "abcd1234cdef1234abcd1234cdef1234", 25788 "name": "space name", 25789 "slug": "space-slug", 25790 "created_at": "2015-01-28T09:52:53Z", 25791 "updated_at": "2015-01-28T09:52:53Z", 25792 "projects_count": 1 25793 } 25794 }, 25795 "translation": { 25796 "id": "abcd1234cdef1234abcd1234cdef1234", 25797 "content": "some content", 25798 "unverified": true, 25799 "excluded": false, 25800 "plural_suffix": "", 25801 "key": { 25802 "id": "abcd1234cdef1234abcd1234cdef1234", 25803 "name": "key.name", 25804 "plural": false, 25805 "data_type": "string", 25806 "tags": [ 25807 "tag 1", 25808 "tag 2" 25809 ] 25810 }, 25811 "created_at": "2021-05-04T14:17:04Z", 25812 "updated_at": "2021-05-04T14:17:04Z", 25813 "placeholders": [], 25814 "state": "translated", 25815 "locale": { 25816 "id": "abcd1234cdef1234abcd1234cdef1234", 25817 "name": "German", 25818 "code": "de_DE" 25819 } 25820 }, 25821 "other_translations": [ 25822 { 25823 "id": "abcd1234cdef1234abcd1234cdef1234", 25824 "content": "some content", 25825 "unverified": true, 25826 "excluded": false, 25827 "plural_suffix": "", 25828 "key": { 25829 "id": "abcd1234cdef1234abcd1234cdef1234", 25830 "name": "key.name", 25831 "plural": false, 25832 "data_type": "string", 25833 "tags": [ 25834 "tag 1", 25835 "tag 2" 25836 ] 25837 }, 25838 "created_at": "2021-05-04T14:17:04Z", 25839 "updated_at": "2021-05-04T14:17:04Z", 25840 "placeholders": [], 25841 "state\"": "translated", 25842 "locale": { 25843 "id": "abcd1234cdef1234abcd1234cdef1234", 25844 "name": "English", 25845 "code": "en_EN" 25846 } 25847 } 25848 ] 25849 } 25850 } 25851 } 25852 }, 25853 "headers": { 25854 "X-Rate-Limit-Limit": { 25855 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25856 }, 25857 "X-Rate-Limit-Remaining": { 25858 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25859 }, 25860 "X-Rate-Limit-Reset": { 25861 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25862 } 25863 } 25864 }, 25865 "400": { 25866 "$ref": "#/components/responses/400" 25867 }, 25868 "404": { 25869 "$ref": "#/components/responses/404" 25870 }, 25871 "429": { 25872 "$ref": "#/components/responses/429" 25873 } 25874 }, 25875 "x-code-samples": [ 25876 { 25877 "lang": "Curl", 25878 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/search\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -F query=keyword \\\n -F locale_code=localecode \\\n -F page=1 \\\n -F per_page=25 \\" 25879 }, 25880 { 25881 "lang": "CLI v2", 25882 "source": "phrase search in_account \\\n--account_id <account_id> \\\n--data '{\"q\":\"keyword\",\"locale_code\": \"de\",\"page\": 1,\"per_page\": 25}' \\\n--access_token <token>" 25883 } 25884 ], 25885 "requestBody": { 25886 "required": true, 25887 "content": { 25888 "application/json": { 25889 "schema": { 25890 "type": "object", 25891 "title": "search/in_account/parameters", 25892 "properties": { 25893 "query": { 25894 "description": "Search query", 25895 "type": "string", 25896 "example": "keyword" 25897 }, 25898 "locale_code": { 25899 "description": "Locale code", 25900 "type": "string", 25901 "example": "de_DE" 25902 }, 25903 "page": { 25904 "description": "Page", 25905 "type": "integer", 25906 "example": 1 25907 }, 25908 "per_page": { 25909 "description": "Number of results per page", 25910 "type": "integer", 25911 "example": 25 25912 } 25913 } 25914 } 25915 } 25916 } 25917 }, 25918 "x-cli-version": "2.5" 25919 } 25920 }, 25921 "/projects/{project_id}/jobs/{job_id}/comments/{id}": { 25922 "get": { 25923 "summary": "Get a single job comment", 25924 "description": "Get details on a single job comment.", 25925 "operationId": "job_comment/show", 25926 "tags": [ 25927 "Job Comments" 25928 ], 25929 "parameters": [ 25930 { 25931 "$ref": "#/components/parameters/X-PhraseApp-OTP" 25932 }, 25933 { 25934 "$ref": "#/components/parameters/project_id" 25935 }, 25936 { 25937 "$ref": "#/components/parameters/job_id" 25938 }, 25939 { 25940 "$ref": "#/components/parameters/id" 25941 }, 25942 { 25943 "description": "specify the branch to use", 25944 "example": "my-feature-branch", 25945 "name": "branch", 25946 "in": "query", 25947 "schema": { 25948 "type": "string" 25949 } 25950 } 25951 ], 25952 "responses": { 25953 "200": { 25954 "description": "OK", 25955 "content": { 25956 "application/json": { 25957 "schema": { 25958 "$ref": "#/components/schemas/job_comment" 25959 } 25960 } 25961 }, 25962 "headers": { 25963 "X-Rate-Limit-Limit": { 25964 "$ref": "#/components/headers/X-Rate-Limit-Limit" 25965 }, 25966 "X-Rate-Limit-Remaining": { 25967 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 25968 }, 25969 "X-Rate-Limit-Reset": { 25970 "$ref": "#/components/headers/X-Rate-Limit-Reset" 25971 } 25972 } 25973 }, 25974 "400": { 25975 "$ref": "#/components/responses/400" 25976 }, 25977 "404": { 25978 "$ref": "#/components/responses/404" 25979 }, 25980 "429": { 25981 "$ref": "#/components/responses/429" 25982 } 25983 }, 25984 "x-code-samples": [ 25985 { 25986 "lang": "Curl", 25987 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id?branch=my-feature-branch\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 25988 }, 25989 { 25990 "lang": "CLI v2", 25991 "source": "phrase job_comments show \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 25992 } 25993 ], 25994 "x-cli-version": "2.5" 25995 }, 25996 "patch": { 25997 "summary": "Update a job comment", 25998 "description": "Update an existing job comment.", 25999 "operationId": "job_comment/update", 26000 "tags": [ 26001 "Job Comments" 26002 ], 26003 "parameters": [ 26004 { 26005 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26006 }, 26007 { 26008 "$ref": "#/components/parameters/project_id" 26009 }, 26010 { 26011 "$ref": "#/components/parameters/key_id" 26012 }, 26013 { 26014 "$ref": "#/components/parameters/id" 26015 } 26016 ], 26017 "responses": { 26018 "200": { 26019 "description": "OK", 26020 "content": { 26021 "application/json": { 26022 "schema": { 26023 "$ref": "#/components/schemas/job_comment" 26024 } 26025 } 26026 }, 26027 "headers": { 26028 "X-Rate-Limit-Limit": { 26029 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26030 }, 26031 "X-Rate-Limit-Remaining": { 26032 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26033 }, 26034 "X-Rate-Limit-Reset": { 26035 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26036 } 26037 } 26038 }, 26039 "400": { 26040 "$ref": "#/components/responses/400" 26041 }, 26042 "404": { 26043 "$ref": "#/components/responses/404" 26044 }, 26045 "429": { 26046 "$ref": "#/components/responses/429" 26047 } 26048 }, 26049 "x-code-samples": [ 26050 { 26051 "lang": "Curl", 26052 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"message\":\"Some message...\"}' \\\n -H 'Content-Type: application/json'" 26053 }, 26054 { 26055 "lang": "CLI v2", 26056 "source": "phrase job_comments update \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--id <id> \\\n--data '{\"message\": \"Some message...\"}' \\\n--access_token <token>" 26057 } 26058 ], 26059 "requestBody": { 26060 "required": true, 26061 "content": { 26062 "application/json": { 26063 "schema": { 26064 "type": "object", 26065 "title": "job_comment/update/parameters", 26066 "properties": { 26067 "message": { 26068 "description": "Comment message", 26069 "type": "string", 26070 "example": "Some message..." 26071 } 26072 } 26073 } 26074 } 26075 } 26076 }, 26077 "x-cli-version": "2.5" 26078 }, 26079 "delete": { 26080 "summary": "Delete a job comment", 26081 "description": "Delete an existing job comment.", 26082 "operationId": "job_comment/delete", 26083 "tags": [ 26084 "Job Comments" 26085 ], 26086 "parameters": [ 26087 { 26088 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26089 }, 26090 { 26091 "$ref": "#/components/parameters/project_id" 26092 }, 26093 { 26094 "$ref": "#/components/parameters/job_id" 26095 }, 26096 { 26097 "$ref": "#/components/parameters/id" 26098 }, 26099 { 26100 "description": "specify the branch to use", 26101 "example": "my-feature-branch", 26102 "name": "branch", 26103 "in": "query", 26104 "schema": { 26105 "type": "string" 26106 } 26107 } 26108 ], 26109 "responses": { 26110 "204": { 26111 "$ref": "#/components/responses/204" 26112 }, 26113 "400": { 26114 "$ref": "#/components/responses/400" 26115 }, 26116 "404": { 26117 "$ref": "#/components/responses/404" 26118 }, 26119 "429": { 26120 "$ref": "#/components/responses/429" 26121 } 26122 }, 26123 "x-code-samples": [ 26124 { 26125 "lang": "Curl", 26126 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'" 26127 }, 26128 { 26129 "lang": "CLI v2", 26130 "source": "phrase job_comments delete \\\n--project_id <project_id> \\\n--job_id <key_id> \\\n--id <id> \\\n--branch my-feature-branch \\\n--access_token <token>" 26131 } 26132 ], 26133 "x-cli-version": "2.5" 26134 } 26135 }, 26136 "/projects/{project_id}/jobs/{job_id}/comments": { 26137 "get": { 26138 "summary": "List job comments", 26139 "description": "List all comments for a job.", 26140 "operationId": "job_comments/list", 26141 "tags": [ 26142 "Job Comments" 26143 ], 26144 "parameters": [ 26145 { 26146 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26147 }, 26148 { 26149 "$ref": "#/components/parameters/project_id" 26150 }, 26151 { 26152 "$ref": "#/components/parameters/job_id" 26153 }, 26154 { 26155 "description": "specify the branch to use", 26156 "example": "my-feature-branch", 26157 "name": "branch", 26158 "in": "query", 26159 "schema": { 26160 "type": "string" 26161 } 26162 }, 26163 { 26164 "description": "Order direction. Can be one of: asc, desc.", 26165 "name": "order", 26166 "in": "query", 26167 "example": "desc", 26168 "schema": { 26169 "type": "string" 26170 } 26171 } 26172 ], 26173 "responses": { 26174 "200": { 26175 "description": "OK", 26176 "content": { 26177 "application/json": { 26178 "schema": { 26179 "type": "array", 26180 "items": { 26181 "$ref": "#/components/schemas/job_comment" 26182 } 26183 } 26184 } 26185 }, 26186 "headers": { 26187 "X-Rate-Limit-Limit": { 26188 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26189 }, 26190 "X-Rate-Limit-Remaining": { 26191 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26192 }, 26193 "X-Rate-Limit-Reset": { 26194 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26195 }, 26196 "Link": { 26197 "$ref": "#/components/headers/Link" 26198 }, 26199 "Pagination": { 26200 "$ref": "#/components/headers/Pagination" 26201 } 26202 } 26203 }, 26204 "400": { 26205 "$ref": "#/components/responses/400" 26206 }, 26207 "404": { 26208 "$ref": "#/components/responses/404" 26209 }, 26210 "429": { 26211 "$ref": "#/components/responses/429" 26212 } 26213 }, 26214 "x-code-samples": [ 26215 { 26216 "lang": "Curl", 26217 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments?branch=my-feature-branch&order=desc\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26218 }, 26219 { 26220 "lang": "CLI v2", 26221 "source": "phrase job_comments list \\\n--project_id <project_id> \\\n--job_id <key_id> \\\n--branch my-feature-branch \\\n--order desc \\\n--access_token <token>" 26222 } 26223 ], 26224 "x-cli-version": "2.5" 26225 }, 26226 "post": { 26227 "summary": "Create a job comment", 26228 "description": "Create a new comment for a job.", 26229 "operationId": "job_comment/create", 26230 "tags": [ 26231 "Job Comments" 26232 ], 26233 "parameters": [ 26234 { 26235 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26236 }, 26237 { 26238 "$ref": "#/components/parameters/project_id" 26239 }, 26240 { 26241 "$ref": "#/components/parameters/job_id" 26242 } 26243 ], 26244 "responses": { 26245 "201": { 26246 "description": "Created", 26247 "content": { 26248 "application/json": { 26249 "schema": { 26250 "$ref": "#/components/schemas/job_comment" 26251 } 26252 } 26253 }, 26254 "headers": { 26255 "X-Rate-Limit-Limit": { 26256 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26257 }, 26258 "X-Rate-Limit-Remaining": { 26259 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26260 }, 26261 "X-Rate-Limit-Reset": { 26262 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26263 } 26264 } 26265 }, 26266 "400": { 26267 "$ref": "#/components/responses/400" 26268 }, 26269 "404": { 26270 "$ref": "#/components/responses/404" 26271 }, 26272 "429": { 26273 "$ref": "#/components/responses/429" 26274 } 26275 }, 26276 "x-code-samples": [ 26277 { 26278 "lang": "Curl", 26279 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"message\":\"Some message...\"}' \\\n -H 'Content-Type: application/json'" 26280 }, 26281 { 26282 "lang": "CLI v2", 26283 "source": "phrase job_comments create \\\n--project_id <project_id> \\\n--job_id <job_id> \\\n--data '{\"message\": \"Some message...\"}' \\\n--access_token <token>" 26284 } 26285 ], 26286 "requestBody": { 26287 "required": true, 26288 "content": { 26289 "application/json": { 26290 "schema": { 26291 "type": "object", 26292 "title": "job_comment/create/parameters", 26293 "properties": { 26294 "message": { 26295 "description": "Job comment message", 26296 "type": "string", 26297 "example": "Some message..." 26298 } 26299 } 26300 } 26301 } 26302 } 26303 }, 26304 "x-cli-version": "2.5" 26305 } 26306 }, 26307 "/projects/{project_id}/webhooks/{webhook_id}/deliveries": { 26308 "get": { 26309 "summary": "List webhook deliveries", 26310 "description": "List all webhook deliveries for the given webhook_id.", 26311 "operationId": "webhook_deliveries/list", 26312 "tags": [ 26313 "Webhook Deliveries" 26314 ], 26315 "parameters": [ 26316 { 26317 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26318 }, 26319 { 26320 "$ref": "#/components/parameters/project_id" 26321 }, 26322 { 26323 "$ref": "#/components/parameters/webhook_id" 26324 }, 26325 { 26326 "$ref": "#/components/parameters/response_status_codes" 26327 } 26328 ], 26329 "responses": { 26330 "200": { 26331 "description": "OK", 26332 "content": { 26333 "application/json": { 26334 "schema": { 26335 "type": "array", 26336 "items": { 26337 "$ref": "#/components/schemas/webhook_delivery" 26338 } 26339 } 26340 } 26341 }, 26342 "headers": { 26343 "X-Rate-Limit-Limit": { 26344 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26345 }, 26346 "X-Rate-Limit-Remaining": { 26347 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26348 }, 26349 "X-Rate-Limit-Reset": { 26350 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26351 }, 26352 "Link": { 26353 "$ref": "#/components/headers/Link" 26354 }, 26355 "Pagination": { 26356 "$ref": "#/components/headers/Pagination" 26357 } 26358 } 26359 }, 26360 "400": { 26361 "$ref": "#/components/responses/400" 26362 }, 26363 "404": { 26364 "$ref": "#/components/responses/404" 26365 }, 26366 "429": { 26367 "$ref": "#/components/responses/429" 26368 } 26369 }, 26370 "x-code-samples": [ 26371 { 26372 "lang": "Curl", 26373 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries?response_status_codes=401%2C404\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26374 }, 26375 { 26376 "lang": "CLI v2", 26377 "source": "phrase webhooks list \\\n--project_id <project_id> \\\n--webhook_id <webhook_id> \\\n--access_token <token>" 26378 } 26379 ], 26380 "x-cli-version": "2.5" 26381 } 26382 }, 26383 "/projects/{project_id}/webhooks/{webhook_id}/deliveries/{id}": { 26384 "get": { 26385 "summary": "Get a single webhook delivery", 26386 "description": "Get all information about a single webhook delivery for the given ID.", 26387 "operationId": "webhook_deliveries/show", 26388 "tags": [ 26389 "Webhook Deliveries" 26390 ], 26391 "parameters": [ 26392 { 26393 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26394 }, 26395 { 26396 "$ref": "#/components/parameters/project_id" 26397 }, 26398 { 26399 "$ref": "#/components/parameters/webhook_id" 26400 }, 26401 { 26402 "$ref": "#/components/parameters/id" 26403 } 26404 ], 26405 "responses": { 26406 "200": { 26407 "description": "OK", 26408 "content": { 26409 "application/json": { 26410 "schema": { 26411 "$ref": "#/components/schemas/webhook_delivery" 26412 } 26413 } 26414 }, 26415 "headers": { 26416 "X-Rate-Limit-Limit": { 26417 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26418 }, 26419 "X-Rate-Limit-Remaining": { 26420 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26421 }, 26422 "X-Rate-Limit-Reset": { 26423 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26424 }, 26425 "Link": { 26426 "$ref": "#/components/headers/Link" 26427 } 26428 } 26429 }, 26430 "400": { 26431 "$ref": "#/components/responses/400" 26432 }, 26433 "404": { 26434 "$ref": "#/components/responses/404" 26435 }, 26436 "429": { 26437 "$ref": "#/components/responses/429" 26438 } 26439 }, 26440 "x-code-samples": [ 26441 { 26442 "lang": "Curl", 26443 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26444 }, 26445 { 26446 "lang": "CLI v2", 26447 "source": "phrase webhook deliveries show \\\n--project_id <project_id> \\\n--webhook_id <webhook_id> \\\n--id <delivery_id> \\\n--access_token <token>" 26448 } 26449 ], 26450 "x-cli-version": "2.5" 26451 } 26452 }, 26453 "/projects/{project_id}/webhooks/{webhook_id}/deliveries/{id}/redeliver": { 26454 "post": { 26455 "summary": "Redeliver a single webhook delivery", 26456 "description": "Trigger an individual webhook delivery to be redelivered.", 26457 "operationId": "webhook_deliveries/redeliver", 26458 "tags": [ 26459 "Webhook Deliveries" 26460 ], 26461 "parameters": [ 26462 { 26463 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26464 }, 26465 { 26466 "$ref": "#/components/parameters/project_id" 26467 }, 26468 { 26469 "$ref": "#/components/parameters/webhook_id" 26470 }, 26471 { 26472 "$ref": "#/components/parameters/id" 26473 } 26474 ], 26475 "responses": { 26476 "200": { 26477 "description": "OK", 26478 "content": { 26479 "application/json": { 26480 "schema": { 26481 "$ref": "#/components/schemas/webhook_delivery" 26482 } 26483 } 26484 }, 26485 "headers": { 26486 "X-Rate-Limit-Limit": { 26487 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26488 }, 26489 "X-Rate-Limit-Remaining": { 26490 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26491 }, 26492 "X-Rate-Limit-Reset": { 26493 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26494 }, 26495 "Link": { 26496 "$ref": "#/components/headers/Link" 26497 }, 26498 "Pagination": { 26499 "$ref": "#/components/headers/Pagination" 26500 } 26501 } 26502 }, 26503 "400": { 26504 "$ref": "#/components/responses/400" 26505 }, 26506 "404": { 26507 "$ref": "#/components/responses/404" 26508 }, 26509 "429": { 26510 "$ref": "#/components/responses/429" 26511 } 26512 }, 26513 "x-code-samples": [ 26514 { 26515 "lang": "Curl", 26516 "source": "curl \"https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries/:id/redeliver\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26517 }, 26518 { 26519 "lang": "CLI v2", 26520 "source": "phrase webhook deliveries show \\\n--project_id <project_id> \\\n--webhook_id <webhook_id> \\\n--id <delivery_id> \\\n--access_token <token>" 26521 } 26522 ], 26523 "x-cli-version": "2.5" 26524 } 26525 }, 26526 "/accounts/{account_id}/job_templates": { 26527 "get": { 26528 "summary": "List organization job templates", 26529 "description": "List all job templates for the given account.", 26530 "operationId": "organization_job_templates/list", 26531 "tags": [ 26532 "Organization Job Templates" 26533 ], 26534 "parameters": [ 26535 { 26536 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26537 }, 26538 { 26539 "$ref": "#/components/parameters/account_id" 26540 }, 26541 { 26542 "$ref": "#/components/parameters/page" 26543 }, 26544 { 26545 "$ref": "#/components/parameters/per_page" 26546 } 26547 ], 26548 "responses": { 26549 "200": { 26550 "description": "OK", 26551 "content": { 26552 "application/json": { 26553 "schema": { 26554 "type": "array", 26555 "items": { 26556 "$ref": "#/components/schemas/organization_job_template" 26557 } 26558 } 26559 } 26560 }, 26561 "headers": { 26562 "X-Rate-Limit-Limit": { 26563 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26564 }, 26565 "X-Rate-Limit-Remaining": { 26566 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26567 }, 26568 "X-Rate-Limit-Reset": { 26569 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26570 }, 26571 "Link": { 26572 "$ref": "#/components/headers/Link" 26573 }, 26574 "Pagination": { 26575 "$ref": "#/components/headers/Pagination" 26576 } 26577 } 26578 }, 26579 "400": { 26580 "$ref": "#/components/responses/400" 26581 }, 26582 "404": { 26583 "$ref": "#/components/responses/404" 26584 }, 26585 "429": { 26586 "$ref": "#/components/responses/429" 26587 } 26588 }, 26589 "x-code-samples": [ 26590 { 26591 "lang": "Curl", 26592 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26593 }, 26594 { 26595 "lang": "CLI v2", 26596 "source": "phrase organization_job_templates list \\\n--account_id <account_id> \\\n--access_token <token>" 26597 } 26598 ], 26599 "x-cli-version": "2.7.0" 26600 }, 26601 "post": { 26602 "summary": "Create an organization job template", 26603 "description": "Create a new organization job template.", 26604 "operationId": "organization_job_template/create", 26605 "tags": [ 26606 "Organization Job Templates" 26607 ], 26608 "parameters": [ 26609 { 26610 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26611 }, 26612 { 26613 "$ref": "#/components/parameters/account_id" 26614 } 26615 ], 26616 "responses": { 26617 "201": { 26618 "description": "Created", 26619 "content": { 26620 "application/json": { 26621 "schema": { 26622 "$ref": "#/components/schemas/organization_job_template_details" 26623 } 26624 } 26625 }, 26626 "headers": { 26627 "X-Rate-Limit-Limit": { 26628 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26629 }, 26630 "X-Rate-Limit-Remaining": { 26631 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26632 }, 26633 "X-Rate-Limit-Reset": { 26634 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26635 } 26636 } 26637 }, 26638 "400": { 26639 "$ref": "#/components/responses/400" 26640 }, 26641 "404": { 26642 "$ref": "#/components/responses/404" 26643 }, 26644 "429": { 26645 "$ref": "#/components/responses/429" 26646 } 26647 }, 26648 "x-code-samples": [ 26649 { 26650 "lang": "Curl", 26651 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"name\":\"template\",\"briefing\":\"text\"}' \\\n -H 'Content-Type: application/json'" 26652 }, 26653 { 26654 "lang": "CLI v2", 26655 "source": "phrase organization_job_templates create \\\n--account_id <account_id> \\\n--data '{\"name\":\"template\", \"briefing\":\"text\"}' \\\n--access_token <token>" 26656 } 26657 ], 26658 "requestBody": { 26659 "required": true, 26660 "content": { 26661 "application/json": { 26662 "schema": { 26663 "type": "object", 26664 "title": "organization_job_template/create/parameters", 26665 "properties": { 26666 "name": { 26667 "description": "Job template name", 26668 "type": "string", 26669 "example": "template" 26670 }, 26671 "briefing": { 26672 "description": "Briefing for the translators", 26673 "type": "string", 26674 "example": "text" 26675 } 26676 }, 26677 "required": [ 26678 "name" 26679 ] 26680 } 26681 } 26682 } 26683 }, 26684 "x-cli-version": "2.7.0" 26685 } 26686 }, 26687 "/accounts/{account_id}/job_templates/{id}": { 26688 "get": { 26689 "summary": "Get a single organization job template", 26690 "description": "Get details on a single organization job template for a given account.", 26691 "operationId": "organization_job_templates/show", 26692 "tags": [ 26693 "Organization Job Templates" 26694 ], 26695 "parameters": [ 26696 { 26697 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26698 }, 26699 { 26700 "$ref": "#/components/parameters/account_id" 26701 }, 26702 { 26703 "$ref": "#/components/parameters/id" 26704 } 26705 ], 26706 "responses": { 26707 "200": { 26708 "description": "OK", 26709 "content": { 26710 "application/json": { 26711 "schema": { 26712 "$ref": "#/components/schemas/organization_job_template_details" 26713 } 26714 } 26715 }, 26716 "headers": { 26717 "X-Rate-Limit-Limit": { 26718 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26719 }, 26720 "X-Rate-Limit-Remaining": { 26721 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26722 }, 26723 "X-Rate-Limit-Reset": { 26724 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26725 } 26726 } 26727 }, 26728 "400": { 26729 "$ref": "#/components/responses/400" 26730 }, 26731 "404": { 26732 "$ref": "#/components/responses/404" 26733 }, 26734 "429": { 26735 "$ref": "#/components/responses/429" 26736 } 26737 }, 26738 "x-code-samples": [ 26739 { 26740 "lang": "Curl", 26741 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26742 }, 26743 { 26744 "lang": "CLI v2", 26745 "source": "phrase organization_job_templates show \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 26746 } 26747 ], 26748 "x-cli-version": "2.7.0" 26749 }, 26750 "patch": { 26751 "summary": "Update an organization job template", 26752 "description": "Update an existing organization job template.", 26753 "operationId": "organization_job_template/update", 26754 "tags": [ 26755 "Organization Job Templates" 26756 ], 26757 "parameters": [ 26758 { 26759 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26760 }, 26761 { 26762 "$ref": "#/components/parameters/account_id" 26763 }, 26764 { 26765 "$ref": "#/components/parameters/id" 26766 } 26767 ], 26768 "responses": { 26769 "200": { 26770 "description": "OK", 26771 "content": { 26772 "application/json": { 26773 "schema": { 26774 "$ref": "#/components/schemas/organization_job_template_details" 26775 } 26776 } 26777 }, 26778 "headers": { 26779 "X-Rate-Limit-Limit": { 26780 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26781 }, 26782 "X-Rate-Limit-Remaining": { 26783 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26784 }, 26785 "X-Rate-Limit-Reset": { 26786 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26787 } 26788 } 26789 }, 26790 "400": { 26791 "$ref": "#/components/responses/400" 26792 }, 26793 "404": { 26794 "$ref": "#/components/responses/404" 26795 }, 26796 "429": { 26797 "$ref": "#/components/responses/429" 26798 } 26799 }, 26800 "x-code-samples": [ 26801 { 26802 "lang": "Curl", 26803 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -H 'Content-Type: application/json'" 26804 }, 26805 { 26806 "lang": "CLI v2", 26807 "source": "phrase organization_job_templates update \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 26808 } 26809 ], 26810 "requestBody": { 26811 "required": true, 26812 "content": { 26813 "application/json": { 26814 "schema": { 26815 "type": "object", 26816 "title": "organization_job_template/update/parameters", 26817 "properties": { 26818 "name": { 26819 "description": "Job template name", 26820 "type": "string", 26821 "example": "template" 26822 }, 26823 "briefing": { 26824 "description": "Briefing for the translators", 26825 "type": "string", 26826 "example": "text" 26827 } 26828 }, 26829 "required": [ 26830 "name" 26831 ] 26832 } 26833 } 26834 } 26835 }, 26836 "x-cli-version": "2.7.0" 26837 }, 26838 "delete": { 26839 "summary": "Delete an organization job template", 26840 "description": "Delete an existing organization job template.", 26841 "operationId": "organization_job_template/delete", 26842 "tags": [ 26843 "Organization Job Templates" 26844 ], 26845 "parameters": [ 26846 { 26847 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26848 }, 26849 { 26850 "$ref": "#/components/parameters/account_id" 26851 }, 26852 { 26853 "$ref": "#/components/parameters/id" 26854 } 26855 ], 26856 "responses": { 26857 "204": { 26858 "$ref": "#/components/responses/204" 26859 }, 26860 "400": { 26861 "$ref": "#/components/responses/400" 26862 }, 26863 "404": { 26864 "$ref": "#/components/responses/404" 26865 }, 26866 "429": { 26867 "$ref": "#/components/responses/429" 26868 } 26869 }, 26870 "x-code-samples": [ 26871 { 26872 "lang": "Curl", 26873 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -H 'Content-Type: application/json'" 26874 }, 26875 { 26876 "lang": "CLI v2", 26877 "source": "phrase organization_job_templates delete \\\n--account_id <account_id> \\\n--id <id> \\\n--access_token <token>" 26878 } 26879 ], 26880 "x-cli-version": "2.7.0" 26881 } 26882 }, 26883 "/accounts/{account_id}/job_templates/{job_template_id}/locales": { 26884 "get": { 26885 "summary": "List organization job template locales", 26886 "description": "List all job template locales for a given organization job template.", 26887 "operationId": "organization_job_template_locales/list", 26888 "tags": [ 26889 "Organization Job Template Locales" 26890 ], 26891 "parameters": [ 26892 { 26893 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26894 }, 26895 { 26896 "$ref": "#/components/parameters/account_id" 26897 }, 26898 { 26899 "$ref": "#/components/parameters/job_template_id" 26900 }, 26901 { 26902 "$ref": "#/components/parameters/page" 26903 }, 26904 { 26905 "$ref": "#/components/parameters/per_page" 26906 } 26907 ], 26908 "responses": { 26909 "200": { 26910 "description": "OK", 26911 "content": { 26912 "application/json": { 26913 "schema": { 26914 "type": "array", 26915 "items": { 26916 "$ref": "#/components/schemas/job_template_locales" 26917 } 26918 } 26919 } 26920 }, 26921 "headers": { 26922 "X-Rate-Limit-Limit": { 26923 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26924 }, 26925 "X-Rate-Limit-Remaining": { 26926 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26927 }, 26928 "X-Rate-Limit-Reset": { 26929 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26930 }, 26931 "Link": { 26932 "$ref": "#/components/headers/Link" 26933 }, 26934 "Pagination": { 26935 "$ref": "#/components/headers/Pagination" 26936 } 26937 } 26938 }, 26939 "400": { 26940 "$ref": "#/components/responses/400" 26941 }, 26942 "404": { 26943 "$ref": "#/components/responses/404" 26944 }, 26945 "429": { 26946 "$ref": "#/components/responses/429" 26947 } 26948 }, 26949 "x-code-samples": [ 26950 { 26951 "lang": "Curl", 26952 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 26953 }, 26954 { 26955 "lang": "CLI v2", 26956 "source": "phrase organization_job_template_locales list \\\n--account_id <account_id> \\\n--job_template_id <job_template_id> \\\n--access_token <token>" 26957 } 26958 ], 26959 "x-cli-version": "2.7.0" 26960 }, 26961 "post": { 26962 "summary": "Create an organization job template locale", 26963 "description": "Create a new organization job template locale.", 26964 "operationId": "organization_job_template_locales/create", 26965 "tags": [ 26966 "Organization Job Template Locales" 26967 ], 26968 "parameters": [ 26969 { 26970 "$ref": "#/components/parameters/X-PhraseApp-OTP" 26971 }, 26972 { 26973 "$ref": "#/components/parameters/account_id" 26974 }, 26975 { 26976 "$ref": "#/components/parameters/job_template_id" 26977 } 26978 ], 26979 "responses": { 26980 "201": { 26981 "description": "Created", 26982 "content": { 26983 "application/json": { 26984 "schema": { 26985 "$ref": "#/components/schemas/job_template_locales" 26986 } 26987 } 26988 }, 26989 "headers": { 26990 "X-Rate-Limit-Limit": { 26991 "$ref": "#/components/headers/X-Rate-Limit-Limit" 26992 }, 26993 "X-Rate-Limit-Remaining": { 26994 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 26995 }, 26996 "X-Rate-Limit-Reset": { 26997 "$ref": "#/components/headers/X-Rate-Limit-Reset" 26998 } 26999 } 27000 }, 27001 "400": { 27002 "$ref": "#/components/responses/400" 27003 }, 27004 "404": { 27005 "$ref": "#/components/responses/404" 27006 }, 27007 "429": { 27008 "$ref": "#/components/responses/429" 27009 } 27010 }, 27011 "x-code-samples": [ 27012 { 27013 "lang": "Curl", 27014 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"locale_name\":\"de-1\",\"locale_code:\"de-DE\",user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"reviewer_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 27015 }, 27016 { 27017 "lang": "CLI v2", 27018 "source": "phrase organization_job_template_locales create \\\n--account_id <account_id> \\\n--job_template_id <job_template_id> \\\n--data '{\"locale_name\": \"de-1\", \"locale_code: \"de-DE\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"reviewer_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"translator_team_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 27019 } 27020 ], 27021 "requestBody": { 27022 "required": true, 27023 "content": { 27024 "application/json": { 27025 "schema": { 27026 "type": "object", 27027 "title": "organization_job_template_locales/create/parameters", 27028 "properties": { 27029 "locale_name": { 27030 "description": "locale name", 27031 "type": "string", 27032 "example": "de-1" 27033 }, 27034 "locale_code": { 27035 "description": "locale code", 27036 "type": "string", 27037 "example": "de-DE" 27038 }, 27039 "user_ids": { 27040 "description": "Array of user ids to be assigned to the job template locale", 27041 "type": "array", 27042 "items": { 27043 "type": "string" 27044 }, 27045 "example": [ 27046 "abcd1234cdef1234abcd1234cdef1234" 27047 ] 27048 }, 27049 "reviewer_ids": { 27050 "description": "Array of reviewer ids to be assigned to the job template locale", 27051 "type": "array", 27052 "items": { 27053 "type": "string" 27054 }, 27055 "example": [ 27056 "abcd1234cdef1234abcd1234cdef1234" 27057 ] 27058 }, 27059 "translator_team_ids": { 27060 "description": "Array of team ids to be assigned to the job locale as translators", 27061 "type": "array", 27062 "items": { 27063 "type": "string" 27064 }, 27065 "example": [ 27066 "abcd1234cdef1234abcd1234cdef1234" 27067 ] 27068 }, 27069 "reviewer_team_ids": { 27070 "description": "Array of team ids to be assigned to the job locale as reviewers", 27071 "type": "array", 27072 "items": { 27073 "type": "string" 27074 }, 27075 "example": [ 27076 "abcd1234cdef1234abcd1234cdef1234" 27077 ] 27078 } 27079 }, 27080 "required": [ 27081 "locale_name", 27082 "locale_code" 27083 ] 27084 } 27085 } 27086 } 27087 }, 27088 "x-cli-version": "2.7.0" 27089 } 27090 }, 27091 "/accounts/{account_id}/job_templates/{job_template_id}/locales/{job_template_locale_id}": { 27092 "get": { 27093 "summary": "Get a single organization job template locale", 27094 "description": "Get a single job template locale for a given organization job template.", 27095 "operationId": "organization_job_template_locale/show", 27096 "tags": [ 27097 "Organization Job Template Locales" 27098 ], 27099 "parameters": [ 27100 { 27101 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27102 }, 27103 { 27104 "$ref": "#/components/parameters/account_id" 27105 }, 27106 { 27107 "$ref": "#/components/parameters/job_template_id" 27108 }, 27109 { 27110 "$ref": "#/components/parameters/job_template_locale_id" 27111 } 27112 ], 27113 "responses": { 27114 "200": { 27115 "description": "OK", 27116 "content": { 27117 "application/json": { 27118 "schema": { 27119 "$ref": "#/components/schemas/job_template_locales" 27120 } 27121 } 27122 }, 27123 "headers": { 27124 "X-Rate-Limit-Limit": { 27125 "$ref": "#/components/headers/X-Rate-Limit-Limit" 27126 }, 27127 "X-Rate-Limit-Remaining": { 27128 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 27129 }, 27130 "X-Rate-Limit-Reset": { 27131 "$ref": "#/components/headers/X-Rate-Limit-Reset" 27132 } 27133 } 27134 }, 27135 "400": { 27136 "$ref": "#/components/responses/400" 27137 }, 27138 "404": { 27139 "$ref": "#/components/responses/404" 27140 }, 27141 "429": { 27142 "$ref": "#/components/responses/429" 27143 } 27144 }, 27145 "x-code-samples": [ 27146 { 27147 "lang": "Curl", 27148 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id\" \\\n -u USERNAME_OR_ACCESS_TOKEN" 27149 }, 27150 { 27151 "lang": "CLI v2", 27152 "source": "phrase organization_job_template_locales show \\\n--account_id <account_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--access_token <token>" 27153 } 27154 ], 27155 "x-cli-version": "2.7.0" 27156 }, 27157 "patch": { 27158 "summary": "Update an organization job template locale", 27159 "description": "Update an existing organization job template locale.", 27160 "operationId": "organization_job_template_locale/update", 27161 "tags": [ 27162 "Organization Job Template Locales" 27163 ], 27164 "parameters": [ 27165 { 27166 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27167 }, 27168 { 27169 "$ref": "#/components/parameters/account_id" 27170 }, 27171 { 27172 "$ref": "#/components/parameters/job_template_id" 27173 }, 27174 { 27175 "$ref": "#/components/parameters/job_template_locale_id" 27176 } 27177 ], 27178 "responses": { 27179 "200": { 27180 "description": "OK", 27181 "content": { 27182 "application/json": { 27183 "schema": { 27184 "$ref": "#/components/schemas/job_template_locales" 27185 } 27186 } 27187 }, 27188 "headers": { 27189 "X-Rate-Limit-Limit": { 27190 "$ref": "#/components/headers/X-Rate-Limit-Limit" 27191 }, 27192 "X-Rate-Limit-Remaining": { 27193 "$ref": "#/components/headers/X-Rate-Limit-Remaining" 27194 }, 27195 "X-Rate-Limit-Reset": { 27196 "$ref": "#/components/headers/X-Rate-Limit-Reset" 27197 } 27198 } 27199 }, 27200 "400": { 27201 "$ref": "#/components/responses/400" 27202 }, 27203 "404": { 27204 "$ref": "#/components/responses/404" 27205 }, 27206 "429": { 27207 "$ref": "#/components/responses/429" 27208 } 27209 }, 27210 "x-code-samples": [ 27211 { 27212 "lang": "Curl", 27213 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"locale_name\":\"de-1\",\"locale_code:\"de-DE\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"reviewer_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"],\"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'" 27214 }, 27215 { 27216 "lang": "CLI v2", 27217 "source": "phrase organization_job_template_locales update \\\n--account_id <account_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--data '{\"locale_name\": \"de-1\", \"locale_code: \"de-DE\", \"user_ids\": \"abcd1234cdef1234abcd1234cdef1234\", \"reviewer_ids\": \"abcd1234cdef1234abcd1234cdef1234\",\"translator_team_ids\": \"abcd1234cdef1234abcd1234cdef1234\"}' \\\n--access_token <token>" 27218 } 27219 ], 27220 "requestBody": { 27221 "required": true, 27222 "content": { 27223 "application/json": { 27224 "schema": { 27225 "type": "object", 27226 "title": "organization_job_template_locale/update/parameters", 27227 "properties": { 27228 "locale_name": { 27229 "description": "locale name", 27230 "type": "string", 27231 "example": "de-1" 27232 }, 27233 "locale_code": { 27234 "description": "locale code", 27235 "type": "string", 27236 "example": "de-DE" 27237 }, 27238 "user_ids": { 27239 "description": "Array of user ids to be assigned to the job template locale", 27240 "type": "array", 27241 "items": { 27242 "type": "string" 27243 }, 27244 "example": [ 27245 "abcd1234cdef1234abcd1234cdef1234" 27246 ] 27247 }, 27248 "reviewer_ids": { 27249 "description": "Array of reviewer ids to be assigned to the job template locale", 27250 "type": "array", 27251 "items": { 27252 "type": "string" 27253 }, 27254 "example": [ 27255 "abcd1234cdef1234abcd1234cdef1234" 27256 ] 27257 }, 27258 "translator_team_ids": { 27259 "description": "Array of team ids to be assigned to the job locale as translators", 27260 "type": "array", 27261 "items": { 27262 "type": "string" 27263 }, 27264 "example": [ 27265 "abcd1234cdef1234abcd1234cdef1234" 27266 ] 27267 }, 27268 "reviewer_team_ids": { 27269 "description": "Array of team ids to be assigned to the job locale as reviewers", 27270 "type": "array", 27271 "items": { 27272 "type": "string" 27273 }, 27274 "example": [ 27275 "abcd1234cdef1234abcd1234cdef1234" 27276 ] 27277 } 27278 } 27279 } 27280 } 27281 } 27282 }, 27283 "x-cli-version": "2.7.0" 27284 }, 27285 "delete": { 27286 "summary": "Delete an organization job template locale", 27287 "description": "Delete an existing organization job template locale.", 27288 "operationId": "organization_job_template_locale/delete", 27289 "tags": [ 27290 "Organization Job Template Locales" 27291 ], 27292 "parameters": [ 27293 { 27294 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27295 }, 27296 { 27297 "$ref": "#/components/parameters/account_id" 27298 }, 27299 { 27300 "$ref": "#/components/parameters/job_template_id" 27301 }, 27302 { 27303 "$ref": "#/components/parameters/job_template_locale_id" 27304 } 27305 ], 27306 "responses": { 27307 "204": { 27308 "$ref": "#/components/responses/204" 27309 }, 27310 "400": { 27311 "$ref": "#/components/responses/400" 27312 }, 27313 "404": { 27314 "$ref": "#/components/responses/404" 27315 }, 27316 "429": { 27317 "$ref": "#/components/responses/429" 27318 } 27319 }, 27320 "x-code-samples": [ 27321 { 27322 "lang": "Curl", 27323 "source": "curl \"https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -H 'Content-Type: application/json'" 27324 }, 27325 { 27326 "lang": "CLI v2", 27327 "source": "phrase organization_job_template_locales delete \\\n--account_id <account_id> \\\n--job_template_id <job_template_id> \\\n--job_template_locale_id <job_template_locale_id> \\\n--access_token <token>" 27328 } 27329 ], 27330 "x-cli-version": "2.7.0" 27331 } 27332 }, 27333 "/projects/{project_id}/keys/{id}/key_links": { 27334 "delete": { 27335 "summary": "Batch unlink child keys from a parent key", 27336 "description": "Unlinks multiple child keys from a given parent key in a single operation.", 27337 "operationId": "key_links/batch_destroy", 27338 "tags": [ 27339 "Linked Keys" 27340 ], 27341 "parameters": [ 27342 { 27343 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27344 }, 27345 { 27346 "$ref": "#/components/parameters/project_id" 27347 }, 27348 { 27349 "$ref": "#/components/parameters/key_id_as_id" 27350 } 27351 ], 27352 "requestBody": { 27353 "required": true, 27354 "content": { 27355 "application/json": { 27356 "schema": { 27357 "required": [ 27358 "child_key_ids" 27359 ], 27360 "type": "object", 27361 "title": "key_links/batch_destroy/parameters", 27362 "properties": { 27363 "child_key_ids": { 27364 "description": "The IDs of the child keys to unlink from the parent key.", 27365 "type": "array", 27366 "example": [ 27367 "child_key_id1", 27368 "child_key_id2" 27369 ], 27370 "items": { 27371 "type": "string" 27372 } 27373 }, 27374 "unlink_parent": { 27375 "description": "Whether to unlink the parent key as well and unmark it as linked-key.", 27376 "type": "boolean", 27377 "default": false 27378 } 27379 } 27380 } 27381 } 27382 } 27383 }, 27384 "responses": { 27385 "200": { 27386 "description": "OK" 27387 }, 27388 "422": { 27389 "$ref": "#/components/responses/422" 27390 } 27391 } 27392 }, 27393 "get": { 27394 "summary": "List child keys of a parent key", 27395 "description": "Returns detailed information about a parent key, including its linked child keys.", 27396 "operationId": "key_links/index", 27397 "tags": [ 27398 "Linked Keys" 27399 ], 27400 "parameters": [ 27401 { 27402 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27403 }, 27404 { 27405 "$ref": "#/components/parameters/project_id" 27406 }, 27407 { 27408 "$ref": "#/components/parameters/key_id_as_id" 27409 } 27410 ], 27411 "responses": { 27412 "200": { 27413 "description": "OK", 27414 "content": { 27415 "application/json": { 27416 "schema": { 27417 "$ref": "#/components/schemas/key_link" 27418 } 27419 } 27420 } 27421 }, 27422 "400": { 27423 "description": "Bad Request", 27424 "content": { 27425 "application/json": { 27426 "schema": { 27427 "type": "object", 27428 "properties": { 27429 "message": { 27430 "type": "string" 27431 } 27432 }, 27433 "example": { 27434 "message": "Key <parent_key_code> is not a parent key" 27435 } 27436 } 27437 } 27438 } 27439 } 27440 } 27441 }, 27442 "post": { 27443 "summary": "Link child keys to a parent key", 27444 "description": "Creates links between a given parent key and one or more child keys.", 27445 "operationId": "key_links/create", 27446 "tags": [ 27447 "Linked Keys" 27448 ], 27449 "parameters": [ 27450 { 27451 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27452 }, 27453 { 27454 "$ref": "#/components/parameters/project_id" 27455 }, 27456 { 27457 "$ref": "#/components/parameters/key_id_as_id" 27458 } 27459 ], 27460 "requestBody": { 27461 "required": true, 27462 "content": { 27463 "application/json": { 27464 "schema": { 27465 "required": [ 27466 "child_key_ids" 27467 ], 27468 "type": "object", 27469 "title": "key_links/create/parameters", 27470 "properties": { 27471 "child_key_ids": { 27472 "description": "The IDs of the child keys to link to the parent key. Can be left empty, to only mark the given translation-key as parent", 27473 "type": "array", 27474 "example": [ 27475 "child_key_id1", 27476 "child_key_id2" 27477 ], 27478 "items": { 27479 "type": "string" 27480 } 27481 } 27482 } 27483 } 27484 } 27485 } 27486 }, 27487 "responses": { 27488 "201": { 27489 "description": "Created", 27490 "content": { 27491 "application/json": { 27492 "schema": { 27493 "$ref": "#/components/schemas/key_link" 27494 } 27495 } 27496 } 27497 }, 27498 "422": { 27499 "$ref": "#/components/responses/422" 27500 } 27501 } 27502 } 27503 }, 27504 "/projects/{project_id}/keys/{id}/key_links/{child_key_id}": { 27505 "delete": { 27506 "summary": "Unlink a child key from a parent key", 27507 "description": "Unlinks a single child key from a given parent key.", 27508 "operationId": "key_links/destroy", 27509 "tags": [ 27510 "Linked Keys" 27511 ], 27512 "parameters": [ 27513 { 27514 "$ref": "#/components/parameters/X-PhraseApp-OTP" 27515 }, 27516 { 27517 "$ref": "#/components/parameters/project_id" 27518 }, 27519 { 27520 "$ref": "#/components/parameters/key_id_as_id" 27521 }, 27522 { 27523 "in": "path", 27524 "name": "child_key_id", 27525 "required": true, 27526 "description": "The ID of the child key to unlink.", 27527 "schema": { 27528 "type": "string" 27529 } 27530 } 27531 ], 27532 "responses": { 27533 "200": { 27534 "description": "OK" 27535 }, 27536 "422": { 27537 "$ref": "#/components/responses/422" 27538 } 27539 } 27540 } 27541 } 27542 } 27543 } 27544