openapi: 3.0.3 info: title: Phrase Strings API Reference version: 2.0.0 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. contact: name: Phrase Support url: https://developers.phrase.com/api/ email: support@phrase.com x-logo: url: https://developers.phrase.com/images/phrase-logo.svg backgroundColor: '#03eab3' altText: Phrase Strings termsOfService: https://phrase.com/terms/ license: name: MIT url: https://choosealicense.com/licenses/mit/ servers: - url: https://api.phrase.com/v2 description: EU production server - url: https://api.us.app.phrase.com/v2 description: US production server security: - Token: [] - Basic: [] tags: - name: Accounts - name: Authorizations description: | The endpoints provided by the Authorizations API are **only accessible via Basic authentication with email and password**. When 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`). For instructions on how authorization in general works, see our [Auth Guide](#overview--authentication). ### Scopes When creating or updating an OAuth authorization, you can define a list of scopes to limit the access that can be performed by that authorization. #### Available Scopes
Scope Description
read Read projects, locales, keys, translations, orders
write Write projects, locales, keys, translations but not orders
orders.create Create and confirm orders
team.manage Manage invitations and members
- name: Blacklisted Keys - name: Branches description: | ### Branch creation Branches will be created asynchronously. State of branch creation is returned as state. #### Available States
State Description
initialized Data received.
processing Branch is currently creating.
success Branch was created successfully
error Branch creation failed.
- name: Comments - name: Comment Reactions - name: Comment Replies - name: Custom Metadata - name: Distributions - name: Documents - name: Figma Attachments - name: Formats - name: Glossaries - name: Glossary Terms - name: Glossary Term Translations - name: ICU - name: Invitations 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. - name: Job Annotations description: | The job annotations endpoints allow you to create, update and delete annotations for jobs and job locales. Annotations are used to add metadata to a job or job locale. - name: Job Comments - name: Job Locales - name: Job Template Locales - name: Job Templates - name: Jobs - name: Keys - name: Linked Keys - name: Locales - name: Locale Downloads - name: Members 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. - name: Notifications - name: Notification Groups - name: Orders description: | ### List of categories [TextMaster] When 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.
Category ID Description
C001Agriculture
C002Aerospace
C003Animals/Pets/Plants
C004Arts/Culture/Literature
C005Automotive/Transportation
C006Computers/Technology/Software
C007Telecom
C008Real Estate/Construction/Building
C009Consumer Goods
C010Education
C011Entertainment
C012Ecology/Environment
C013Health/Biotechnology/Pharma
C014Internet
C015Policy/Government/Public
C016Publishing/Media/Communication
C017Religion
C018Food/Beverages
C019Retail
C020Fashion/Luxury/Textiles
C021Travel/Tourism
C022Natural Resources/Energy
C023Banking/Financial Services/Insurance
C024Legal Affairs/Tax/Law
C025Raw Materials/Industrial Goods
C026Lifestyle/Leisure/Hobbies
C027Sports
C028Home/Family/Friends/Children
C029Economy/Financial Markets
C030Science
C031Human Resources/Employment
C032Adult (Pornography, Violence, etc.)
- name: Organization Job Template Locales - name: Organization Job Templates - name: Projects - name: Quality - name: Releases - name: Release Triggers - name: Repo Syncs description: | The Repo Syncs API allows you to synchronize your Phrase projects with your code repositories. You can import translations from your repository to Phrase and export translations from Phrase to your repository. - name: Repo Sync Events - name: Reports - name: Search - name: Screenshot Markers - name: Screenshots - name: Spaces - name: Style guides - name: Tags - name: Teams - name: Translations - name: Uploads description: | ### Formats We support all common localization file formats. For a detailed overview, see our [Format Guide](https://support.phrase.com/hc/en-us/sections/6111343326364). ### Processing Uploads 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 state field for information on the import progress. #### Available States
State Description
initialized Data received.
waiting_for_preview Upload is waiting for preview to be finished.
waiting Upload is waiting for processing.
processing Upload is being processed, data is currently imported.
success Upload is complete and all data is imported.
error Upload or import process failed.
- name: Users - name: Variables - name: Versions / History - name: Webhooks - name: Webhook Deliveries paths: /icu/skeleton: post: summary: Build ICU skeletons description: Returns ICU skeletons for multiple locale codes based on a source content. operationId: icu/skeleton tags: - ICU parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/skeleton' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/icu/skeleton" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"content":"{number, plural, one {One} other {%{n}}}","locale_codes":["en"],"zero_form_enabled": true}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase icu skeleton \ --data '{"content":"{number, plural, one {One} other {%{n}}}","locale_codes":["en"],"zero_form_enabled": true}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: icu/skeleton/parameters properties: content: description: Source content type: string example: '{number, plural, one {One} other {%{n}}}' locale_codes: description: Locale codes type: array items: type: string example: en example: - en keep_content: description: Keep the content and add missing plural forms for each locale type: boolean example: null zero_form_enabled: description: Indicates whether the zero form should be included or excluded in the returned skeletons type: boolean example: null cldr_version: description: |- Strings supports two CLDR variants, when it comes to pluralization rules. \ You can choose which one you want to use when constructing the skeletons. Possible values \ are `legacy` and `cldr_41`. Default value is `legacy`. type: string example: cldr_41 x-cli-version: '2.9' /formats: get: summary: List formats description: Get a handy list of all localization file formats supported in Phrase. operationId: formats/list tags: - Formats responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/format' '400': $ref: '#/components/responses/400' x-code-samples: - lang: Curl source: curl "https://api.phrase.com/v2/formats" - lang: CLI v2 source: |- phrase formats list \ --access_token x-cli-version: '2.5' /projects/{project_id}/documents: get: summary: List documents description: List all documents the current user has access to. operationId: documents/list tags: - Documents parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/document' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/documents?project_id=asdf" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase documents list \ --project_id \ --access_token x-cli-version: '2.5' /projects/{project_id}/documents/{id}: delete: summary: Delete document description: Delete an existing document. operationId: document/delete tags: - Documents parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/documents/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase documents delete \ --project_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/report: get: summary: Get Project Report description: Get report of a single project. operationId: report/show tags: - Reports parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/project_report' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/report?branch=my-feature-branch" \ -X GET \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase report show \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' /projects/{project_id}/report/locales: get: summary: List Locale Reports description: List all locale reports for the given project operationId: report/locales/list tags: - Reports parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/locale_codes' - $ref: '#/components/parameters/tag' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/locale_report' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/report/locales?locale_codes[]=de&locale_codes[]=en&branch=my-feature-branch" \ -X GET \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase report locales list \ --project_id \ --branch my-feature-branch \ --locale_codes de \ --access_token x-cli-version: '2.13' /projects/{project_id}/figma_attachments: get: summary: List Figma attachments description: List all Figma attachments for the given project operationId: figma_attachments/list tags: - Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/figma_attachment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments?branch=my-feature-branch" \ -X GET \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase figma_attachments list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' post: summary: Create a Figma attachment description: Create a new Figma attachment. operationId: figma_attachment/create tags: - Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/figma_attachment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F branch=my-feature-branch \ -F url=https://figma.com/file/xxxxx/sample \ - lang: CLI v2 source: |- phrase figma_attachment create \ --project_id \ --data '{"branch":"my-feature-branch", "url":"https://figma.com/file/xxxxx/sample"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: figma_attachment/create/parameters required: - url properties: branch: description: specify the branch to use type: string example: my-feature-branch url: description: Figma file url type: string example: https://figma.com/file/xxxxx/sample x-cli-version: '2.13' /projects/{project_id}/figma_attachments/{id}: get: summary: Get a single Figma attachment description: Get details on a single Figma attachment for a given project. operationId: figma_attachment/show tags: - Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/figma_attachment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id?branch=my-feature-branch" \ -X GET \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase figma_attachment show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' patch: summary: Update a Figma attachment description: Update an existing Figma attachment. operationId: figma_attachment/update tags: - Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/figma_attachment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -F branch=my-feature-branch \ -F url=https://figma.com/file/xxxxx/sample \ - lang: CLI v2 source: |- phrase figma_attachment update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "url":"https://figma.com/file/xxxxx/sample" }' \ --access_token requestBody: required: true content: application/json: schema: type: object title: figma_attachment/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch url: description: Figma file url type: string example: https://figma.com/file/xxxxx/sample x-cli-version: '2.13' delete: summary: Delete a Figma attachment description: Delete an existing Figma attachment. operationId: figma_attachment/delete tags: - Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase figma_attachment delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' /projects/{project_id}/figma_attachments/{figma_attachment_id}/keys: post: summary: Attach the Figma attachment to a key description: Attach the Figma attachment to a key operationId: figma_attachment/attach_to_key tags: - Key's Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/figma_attachment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments/:figma_attachment_id/keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F branch=my-feature-branch \ -F id=key_id \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase figma_attachment attach_to_key \ --project_id \ --figma_attachment_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' /projects/{project_id}/figma_attachments/{figma_attachment_id}/keys/{id}: delete: summary: Detach the Figma attachment from a key description: Detach the Figma attachment from a key operationId: figma_attachment/detach_from_key tags: - Key's Figma attachments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/figma_attachment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/figma_attachments/:figma_attachment_id/keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -F branch=my-feature-branch \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase figma_attachment detach_from_key \ --project_id \ --figma_attachment_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.13' /projects/{project_id}/styleguides: get: summary: List style guides description: List all styleguides for the given project. operationId: styleguides/list tags: - Style guides parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/styleguide' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/styleguides" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase styleguides list \ --project_id \ --access_token x-cli-version: '2.5' post: summary: Create a style guide description: Create a new style guide. operationId: styleguide/create tags: - Style guides parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/styleguide_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/styleguides" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -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"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase styleguides create \ --project_id \ --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"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: styleguide/create/parameters required: - title properties: title: description: Style guide title type: string example: Web application style guide audience: description: Audience description type: string example: customer-facing target_audience: description: 'Can be one of: not_specified, children, teenager, young_adults, adults, old_adults.' type: string example: teenager grammatical_person: 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.' type: string example: first_person_singular vocabulary_type: description: 'Can be one of: not_specified, popular, technical, fictional.' type: string example: technical business: description: Description of the business type: string example: We are a travel site that helps customers find the best hotels and flights. company_branding: description: Company branding to remain consistent. type: string example: ACME Inc. should never be translated. formatting: description: Formatting requirements and character limitations. type: string example: Never use capital letters glossary_terms: description: List of terms and/or phrases that need to be translated consistently. type: string example: Apartment, cabin, loft grammar_consistency: description: Formal or informal pronouns, consistent conjugation, grammatical gender type: string example: '' literal_translation: description: 'Can be one of: Cultural/Conversational, Literal, Neutral.' type: string example: Neutral overall_tone: description: Tone requirement descriptions type: string example: Tone should be fun and light samples: 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. type: string example: http://www.myexample.com/my/document/path/to/samples.pdf x-cli-version: '2.5' /projects/{project_id}/styleguides/{id}: get: summary: Get a single style guide description: Get details on a single style guide. operationId: styleguide/show tags: - Style guides parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/styleguide_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/styleguides/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase styleguides show \ --project_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a style guide description: Update an existing style guide. operationId: styleguide/update tags: - Style guides parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/styleguide_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/styleguides/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -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"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase styleguides update \ --project_id \ --id \ --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"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: styleguide/update/parameters properties: title: description: Style guide title type: string example: Web application style guide audience: description: Audience description type: string example: customer-facing target_audience: description: 'Can be one of: not_specified, children, teenager, young_adults, adults, old_adults.' type: string example: teenager grammatical_person: 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.' type: string example: first_person_singular vocabulary_type: description: 'Can be one of: not_specified, popular, technical, fictional.' type: string example: technical business: description: Description of the business type: string example: We are a travel site that helps customers find the best hotels and flights. company_branding: description: Company branding to remain consistent. type: string example: ACME Inc. should never be translated. formatting: description: Formatting requirements and character limitations. type: string example: Never use capital letters glossary_terms: description: List of terms and/or phrases that need to be translated consistently. type: string example: Apartment, cabin, loft grammar_consistency: description: Formal or informal pronouns, consistent conjugation, grammatical gender type: string example: '' literal_translation: description: 'Can be one of: Cultural/Conversational, Literal, Neutral.' type: string example: Neutral overall_tone: description: Tone requirement descriptions type: string example: Tone should be fun and light samples: 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. type: string example: http://www.myexample.com/my/document/path/to/samples.pdf x-cli-version: '2.5' delete: summary: Delete a style guide description: Delete an existing style guide. operationId: styleguide/delete tags: - Style guides parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/styleguides/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase styleguides delete \ --project_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/custom_metadata/properties: get: summary: List properties description: | List all custom metadata properties for an account. This endpoint is only available to accounts with advanced plans or above. operationId: custom_metadata_properties/list tags: - Custom Metadata parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/custom_metadata_data_type' - description: id of project that the properties belong to example: abcd1234cdef1234abcd1234cdef1234 name: project_id in: query schema: type: string - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: query to find a property by name example: character_name name: q in: query schema: type: string - description: 'Sort criteria. Can be one of: name, data_type, created_at.' example: updated_at name: sort in: query schema: type: string - description: 'Order direction. Can be one of: asc, desc.' example: desc name: order in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/custom_metadata_property' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase custom_metadata_properties list \ --account_id \ --data_type boolean \ --project_id 1 \ --page 1 \ --per_page 10 \ --sort created_at \ --order desc \ --access_token x-cli-version: '2.9' post: summary: Create a property description: Create a new custom metadata property. operationId: custom_metadata_property/create tags: - Custom Metadata parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' requestBody: required: true content: application/json: schema: required: - name - data_type type: object title: custom_metadata_properties/create/parameters properties: name: description: name of the property example: Fruit type: string data_type: $ref: '#/components/schemas/data_type' project_ids: description: ids of projects that the property belongs to type: array example: - abcd1234cdef1234abcd1234cdef1234 - abcd1234cdef1234abcd1234cdef4321 items: type: string description: description: description of property example: A healthy snack for all ages type: string value_options: description: value options of property (only applies to single or multi select properties) example: - Apple - Banana - Coconut type: array items: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/custom_metadata_property' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"Fruit","data_type":"multi_select","description":"A healthy snack for all ages","project_ids":["1","2","3"],"value_options":["apple","banana","coconut"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase custom_metadata_properties create \ --account_id \ --data '{"name":"Fruit","data_type":"multi_select","description":"A healthy snack for all ages","project_ids":["1","2","3"],"value_options":["apple","banana","coconut"]}' \ --access_token x-cli-version: '2.9' /accounts/{account_id}/custom_metadata/properties/{id}: get: summary: Get a single property description: Get details of a single custom property. operationId: custom_metadata_property/show tags: - Custom Metadata parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/custom_metadata_property' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase custom_metadata_properties show \ --account_id \ --id \ --access_token x-cli-version: '2.9' patch: summary: Update a property description: Update an existing custom metadata property. operationId: custom_metadata_property/update tags: - Custom Metadata parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' requestBody: required: true content: application/json: schema: type: object title: custom_metadata_properties/update/parameters properties: name: description: name of the property example: Fruit type: string project_ids: description: ids of projects that the property belongs to type: array example: - abcd1234cdef1234abcd1234cdef1234 - abcd1234cdef1234abcd1234cdef4321 items: type: string description: description: description of property example: A healthy snack for all ages type: string value_options: description: value options of property (only applies to single or multi select properties) example: - Apple - Banana - Coconut type: array items: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/custom_metadata_property' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"Fruit","description":"A healthy snack for all ages","project_ids":["1","2","3"],"value_options":["apple","banana","coconut"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase custom_metadata_properties update \ --account_id \ --id \ --data '{"name":"Fruit","description":"A healthy snack for all ages","project_ids":["1","2","3"],"value_options":["apple","banana","coconut"]}' \ --access_token x-cli-version: '2.9' delete: summary: Destroy property description: | Destroy a custom metadata property of an account. This endpoint is only available to accounts with advanced plans or above. operationId: custom_metadata_properties/delete tags: - Custom Metadata parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/custom_metadata/properties/:id" \ -u USERNAME_OR_ACCESS_TOKEN -X DELETE -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase custom_metadata_properties delete \ --account_id \ --id \ --access_token x-cli-version: '2.9' /accounts/{account_id}/invitations: get: summary: List invitations 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 `team.manage`. operationId: invitations/list tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase invitations list \ --account_id \ --access_token x-cli-version: '2.5' post: summary: Create a new invitation description: Invite a person to an account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. Access token scope must include `team.manage`. operationId: invitation/create tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -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}}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase invitations create \ --account_id \ --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}"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: invitation/create/parameters required: - email - role properties: email: description: The email of the invited user. The `email` can not be updated once created. Create a new invitation for each unique email. type: string example: example@mail.com role: description: Invitiation role, can be any of Manager, Developer, Translator. type: string example: Developer project_ids: description: List of project ids the invited user has access to. type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 locale_ids: description: List of locale ids the invited user has access to. type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 space_ids: description: List of spaces the user is assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 team_ids: description: List of teams the user is assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 default_locale_codes: description: List of default locales for the user. type: array items: type: string example: - en - de permissions: description: Additional permissions depending on invitation role. Available permissions are `create_upload` and `review_translations` type: object additionalProperties: type: string example: create_upload: true review_translations: true x-cli-version: '2.5' /accounts/{account_id}/invitations/{id}: get: summary: Get a single invitation description: Get details on a single invitation. Access token scope must include `team.manage`. operationId: invitation/show tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase invitations show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update an invitation description: Update an existing invitation (must not be accepted yet). The `email` cannot be updated. Developers and translators need `project_ids` and `locale_ids` assigned to access them. Access token scope must include `team.manage`. operationId: invitation/update tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -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}}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase invitations update \ --account_id \ --id \ --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}"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: invitation/update/parameters properties: role: description: Invitiation role, can be any of Manager, Developer, Translator type: string example: Invitiation role project_ids: description: List of project ids the invited user has access to type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 locale_ids: description: List of locale ids the invited user has access to type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 space_ids: description: List of spaces the user is assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 team_ids: description: List of teams the user is assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 default_locale_codes: description: List of default locales for the user. type: array items: type: string example: - en - de permissions: description: Additional permissions depending on invitation role. type: object additionalProperties: type: string example: create_upload: true x-cli-version: '2.5' delete: summary: Delete an invitation description: Delete an existing invitation (must not be accepted yet). Access token scope must include `team.manage`. operationId: invitation/delete tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase invitations delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/invitations/{id}/resend: post: summary: Resend an invitation description: Resend the invitation email (must not be accepted yet). Access token scope must include `team.manage`. operationId: invitation/resend tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/invitations/:id/resend" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST - lang: CLI v2 source: |- phrase invitations resend \ --account_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/invitations/{id}: patch: summary: Update a member's invitation access description: Update member's settings in the invitations. Access token scope must include `team.manage`. operationId: invitation/update_settings tags: - Invitations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/invitation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/invitations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"project_role":"Developer","locale_ids":["fff565db236400772368235db2c6117e","fff565db236400772368235db2c6117f"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase invitations update_settings \ --project_id \ --id \ --data '{"project_role":"Developer","locale_ids":["fff565db236400772368235db2c6117e","fff565db236400772368235db2c6117f"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: invitation/update_settings/parameters properties: project_role: description: Member role, can be any of of Manager, Developer, Translator type: string example: Developer locale_ids: description: List of locale ids the user has access to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 x-cli-version: '2.5' /projects/{project_id}/screenshots/{id}/markers: get: summary: List screenshot markers description: List all screenshot markers for the given project. operationId: screenshot_markers/list tags: - Screenshot Markers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/screenshot_marker' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:id/markers?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase screenshot_markers list \ --project_id \ --branch my-feature-branch \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/screenshots/{screenshot_id}/markers/{id}: get: summary: Get a single screenshot marker description: Get details on a single screenshot marker for a given project. operationId: screenshot_marker/show tags: - Screenshot Markers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/screenshot_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/screenshot_marker' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase screenshot_markers show \ --project_id \ --screenshot_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/screenshots/{screenshot_id}/markers: post: summary: Create a screenshot marker description: Create a new screenshot marker. operationId: screenshot_marker/create tags: - Screenshot Markers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/screenshot_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/screenshot_marker' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch", "key_id":"abcd1234abcd1234abcd1234abcd1234","presentation":"{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase screenshot_markers create \ --project_id \ --screenshot_id \ --data '{"branch":"my-feature-branch", "key_id":"abcd1234abcd1234abcd1234abcd1234", "presentation": "{ "x": 100, "y": 100, "w": 100, "h": 100 }"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: screenshot_marker/create/parameters required: - key_id properties: branch: description: specify the branch to use type: string example: my-feature-branch key_id: description: Specify the Key ID which should be highlighted on the specified screenshot. The Key must belong to the project. type: string example: abcd1234abcd1234abcd1234abcd1234 presentation: description: | Presentation details of the screenshot marker in JSON format. 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 (`x`-axis and `y`-axis in pixels) from the top left corner of the screenshot and the dimensions of the marker itself (`w` and `h` in pixels). type: string example: '{ "x": 100, "y": 100, "w": 100, "h": 100 }' x-cli-version: '2.5' patch: summary: Update a screenshot marker description: Update an existing screenshot marker. operationId: screenshot_marker/update tags: - Screenshot Markers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/screenshot_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/screenshot_marker' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch", "key_id":"abcd1234abcd1234abcd1234abcd1234","presentation":"{ \"x\": 100, \"y\": 100, \"w\": 100, \"h\": 100 }"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase screenshot_markers update \ --project_id \ --screenshot_id \ --data '{"branch":"my-feature-branch", "key_id":"abcd1234abcd1234abcd1234abcd1234", "presentation": "{ "x": 100, "y": 100, "w": 100, "h": 100 }"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: screenshot_marker/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch key_id: description: Specify the Key ID which should be highlighted on the specified screenshot. The Key must belong to the project. type: string example: abcd1234abcd1234abcd1234abcd1234 presentation: description: | Presentation details of the screenshot marker in JSON format. 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 (`x`-axis and `y`-axis in pixels) from the top left corner of the screenshot and the dimensions of the marker itself (`w` and `h` in pixels). type: string example: '{ "x": 100, "y": 100, "w": 100, "h": 100 }' x-cli-version: '2.5' delete: summary: Delete a screenshot marker description: Delete an existing screenshot marker. operationId: screenshot_marker/delete tags: - Screenshot Markers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/screenshot_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:screenshot_id/markers" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase screenshot_markers delete \ --project_id \ --screenshot_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /accounts/{id}/locales: get: summary: List locales used in account description: List all locales unique by locale code used across all projects within an account. operationId: account/locales tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/account_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:id/locales" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase accounts locales \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/locales: get: summary: List locales description: List all locales for the given project. operationId: locales/list tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: Sort locales. Valid options are "name_asc", "name_desc", "default_asc", "default_desc". example: null name: sort_by in: query schema: type: string - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase locales list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a locale description: Create a new locale. operationId: locale/create tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/locale_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","name":"de","code":"de-DE","source_locale_id":"abcd1234abcd1234abcd1234abcd1234", "fallback_locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase locales create \ --project_id \ --data '{"branch":"my-feature-branch", "name":"de", "code":"de-DE", "source_locale_id":"abcd1234abcd1234abcd1234abcd1234", "fallback_locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: locale/create/parameters required: - name - code properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Locale name type: string example: de code: description: Locale ISO code type: string example: de-DE default: description: Indicates whether locale is the default locale. If set to true, the previous default locale the project is no longer the default locale. type: boolean example: null main: description: Indicates whether locale is a main locale. Main locales are part of the [Verification System](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null rtl: description: Indicates whether locale is a RTL (Right-to-Left) locale. type: boolean example: null source_locale_id: description: Source locale. Can be the name or id of the locale. Preferred is id. type: string example: abcd1234abcd1234abcd1234abcd1234 fallback_locale_id: description: Fallback locale for empty translations. Can be a locale name or id. type: string example: abcd1234abcd1234abcd1234abcd1234 unverify_new_translations: description: Indicates that new translations for this locale should be marked as unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null unverify_updated_translations: description: Indicates that updated translations for this locale should be marked as unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null autotranslate: description: If set, translations for this locale will be fetched automatically, right after creation. type: boolean example: null x-cli-version: '2.5' /projects/{project_id}/locales/{id}: get: summary: Get a single locale description: Get details on a single locale for a given project. operationId: locale/show tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id_as_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/locale_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase locales show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a locale description: Update an existing locale. operationId: locale/update tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id_as_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/locale_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","name":"de","code":"de-DE","source_locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase locales update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "name":"de", "code":"de-DE", "source_locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: locale/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Locale name type: string example: de code: description: Locale ISO code type: string example: de-DE default: description: Indicates whether locale is the default locale. If set to true, the previous default locale the project is no longer the default locale. type: boolean example: null main: description: Indicates whether locale is a main locale. Main locales are part of the [Verification System](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null rtl: description: Indicates whether locale is a RTL (Right-to-Left) locale. type: boolean example: null source_locale_id: description: Source locale. Can be the name or id of the locale. Preferred is id. type: string example: abcd1234abcd1234abcd1234abcd1234 fallback_locale_id: description: Fallback locale for empty translations. Can be a locale name or id. type: string example: abcd1234abcd1234abcd1234abcd1234 unverify_new_translations: description: Indicates that new translations for this locale should be marked as unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null unverify_updated_translations: description: Indicates that updated translations for this locale should be marked as unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null autotranslate: description: If set, translations for this locale will be fetched automatically, right after creation. type: boolean example: null x-cli-version: '2.5' delete: summary: Delete a locale description: Delete an existing locale. operationId: locale/delete tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id_as_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase locales delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/locales/{id}/download: get: summary: Download a locale description: Download a locale in a specific file format. operationId: locale/download tags: - Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/If-Modified-Since' - $ref: '#/components/parameters/If-None-Match' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id_as_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: File format name. See the [format guide](https://support.phrase.com/hc/en-us/sections/6111343326364) for all supported file formats. example: yml name: file_format in: query schema: type: string - description: Limit results to keys tagged with a list of comma separated tag names. example: feature1,feature2 name: tags in: query schema: type: string - description: Limit download to tagged keys. This parameter is deprecated. Please use the "tags" parameter instead example: feature deprecated: true name: tag in: query schema: type: string - description: Indicates whether keys without translations should be included in the output as well. example: null name: include_empty_translations in: query schema: type: boolean - description: Indicates whether zero forms should be included when empty in pluralized keys. example: null name: exclude_empty_zero_forms in: query schema: type: boolean - description: Include translated keys in the locale file. Use in combination with include_empty_translations to obtain only untranslated keys. example: null name: include_translated_keys in: query schema: type: boolean - description: Indicates whether [NOTRANSLATE] tags should be kept. example: null name: keep_notranslate_tags in: query schema: type: boolean - 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. example: null deprecated: true name: convert_emoji in: query schema: type: boolean - description: 'Additional formatting and render options. See the [format guide](https://support.phrase.com/hc/en-us/sections/6111343326364) for a list of options available for each format. Specify format options like this: `...&format_options[foo]=bar`' example: null name: format_options in: query schema: type: object properties: {} style: deepObject explode: true - description: Enforces a specific encoding on the file contents. Valid options are "UTF-8", "UTF-16" and "ISO-8859-1". example: null name: encoding in: query schema: type: string - description: Indicates whether the locale file should skip all unverified translations. This parameter is deprecated and should be replaced with `include_unverified_translations`. example: null deprecated: true name: skip_unverified_translations in: query schema: type: boolean - description: if set to false unverified translations are excluded example: null name: include_unverified_translations in: query schema: type: boolean - 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. example: null name: use_last_reviewed_version in: query schema: type: boolean - name: fallback_locale_id 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 `true`. Mutually exclusive with `use_locale_fallback`. in: query schema: type: string example: null - name: use_locale_fallback description: | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Fallback locale is defined in [locale's settings](/en/api/strings/locales/update-a-locale#body-fallback-locale-id). Requires `include_empty_translations` to be set to `true`. Mutually exclusive with `fallback_locale_id`. in: query schema: type: boolean example: true - 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 `tag` parameter indicating a specific job. example: null name: source_locale_id in: query schema: type: string - description: 'Download all translation keys, and remove the specified prefix where possible. Warning: this may create duplicate key names if other keys share the same name after the prefix is removed.' example: prefix_ name: translation_key_prefix in: query schema: type: string - description: Only download translation keys containing the specified prefix, and remove the prefix from the generated file. example: null name: filter_by_prefix in: query schema: type: boolean - name: custom_metadata_filters in: query 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. schema: type: object properties: {} style: deepObject explode: true - name: locale_ids description: Locale IDs or locale names in: query schema: type: array items: type: string example: - de - en - name: updated_since description: | Only include translations and keys that have been updated since the given date. The date must be in ISO 8601 format (e.g., `2023-01-01T00:00:00Z`). in: query schema: type: string example: '2023-01-01T00:00:00Z' responses: '200': description: OK content: '*': schema: type: string format: binary headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase locales download \ --project_id \ --id \ --branch my-feature-branch \ --file_format yml \ --tags feature1,feature2 \ --tag feature \ --access_token x-cli-version: 2.6.4 /projects/{project_id}/locales/{locale_id}/downloads: post: summary: Initiate async download of a locale description: Prepare a locale for download in a specific file format. operationId: locale_download/create tags: - Locale Downloads parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/If-Modified-Since' - $ref: '#/components/parameters/If-None-Match' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id' requestBody: required: true content: application/json: schema: type: object title: locale_download/create/parameters required: - file_format properties: file_format: description: File format name. See the [format guide](https://support.phrase.com/hc/en-us/sections/6111343326364) for all supported file formats. type: string example: yml branch: description: specify the branch to use type: string example: my-feature-branch tags: description: Limit results to keys tagged with a list of comma separated tag names. type: string example: feature1,feature2 include_empty_translations: description: Indicates whether keys without translations should be included in the output as well. example: true type: boolean exclude_empty_zero_forms: description: Indicates whether zero forms should be included when empty in pluralized keys. example: true type: boolean include_translated_keys: description: Include translated keys in the locale file. Use in combination with include_empty_translations to obtain only untranslated keys. example: true type: boolean keep_notranslate_tags: description: Indicates whether [NOTRANSLATE] tags should be kept. type: boolean example: true format_options: description: | Additional formatting and render options. See the [format guide](https://support.phrase.com/hc/en-us/sections/6111343326364) for a list of options available for each format. Pass format options as a JSON object with key-value pairs corresponding to the option name and value. For example, to include comments in a Gettext file, pass `{"include_comments": true}`. example: format_options: foo: bar type: object properties: {} encoding: description: Enforces a specific encoding on the file contents. Valid options are "UTF-8", "UTF-16" and "ISO-8859-1". example: UTF-8 type: string include_unverified_translations: description: if set to false unverified translations are excluded example: true type: boolean use_last_reviewed_version: 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. type: boolean example: null locale_ids: description: Locale IDs or locale names type: array items: type: string example: - de - en fallback_locale_id: 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 `true`. Mutually exclusive with `use_locale_fallback`. type: string example: abcd1234abcd1234abcd1234abcd1234 use_locale_fallback: description: | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Fallback locale is defined in [locale's settings](/en/api/strings/locales/update-a-locale#body-fallback-locale-id). Requires `include_empty_translations` to be set to `true`. Mutually exclusive with `fallback_locale_id`. type: boolean example: false source_locale_id: 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 `tag` parameter indicating a specific job. example: abcd1234abcd1234abcd1234abcd1234 type: string custom_metadata_filters: 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. type: object properties: {} updated_since: description: | Only include translations and keys that have been updated since the given date. The date must be in ISO 8601 format (e.g., `2023-01-01T00:00:00Z`). type: string example: '2023-01-01T00:00:00Z' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/locale_download' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales/:locale_id/downloads" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","file_format":"yml","tags":"feature1,feature","custom_metadata_filters":{"tone":"friendly"}}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase locale_downloads create \ --project_id \ --locale_id \ --branch my-feature-branch \ --file_format yml \ --tags feature1,feature2 \ --access_token x-cli-version: 2.29.0 /projects/{project_id}/locales/{locale_id}/downloads/{id}: get: summary: Show status of an async locale download description: Show status of already started async locale download. If the download is finished, the download link will be returned. operationId: locale_download/show tags: - Locale Downloads parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/If-Modified-Since' - $ref: '#/components/parameters/If-None-Match' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/locale_download' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/locales/:locale_id/downloads/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase locale_downloads show \ --project_id \ --locale_id \ --id --access_token x-cli-version: 2.29.0 /accounts/{account_id}/distributions: get: summary: List distributions description: List all distributions for the given account. operationId: distributions/list tags: - Distributions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/distribution_preview' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase distributions list \ --account_id \ --access_token x-cli-version: '2.5' post: summary: Create a distribution description: Create a new distribution. operationId: distribution/create tags: - Distributions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/distribution' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -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}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase distributions create \ --account_id \ --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}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: distribution/create/parameters required: - name - project_id properties: name: description: Name of the distribution type: string example: My Android Distribution project_id: description: Project id the distribution should be assigned to. type: string example: abcd1234abcd1234abcd1234 platforms: description: |- List of platforms the distribution should support. Valid values are: * `android` * `ios` * `flutter` * `i18next` * `rails` type: array items: type: string example: - android - ios locale_ids: description: List of locale ids that will be part of distribution releases type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - fff565db236400772368235db2c6117e format_options: description: | Additional formatting and render options. Only `enclose_in_cdata` is available for platform `android`. type: object additionalProperties: type: string example: '{xml:{enclose_in_cdata:''1''}}' fallback_locales_enabled: description: Use fallback locale if there is no translation in the current locale. type: boolean example: true fallback_to_non_regional_locale: description: Indicates whether to fallback to non regional locale when locale can not be found type: boolean example: true fallback_to_default_locale: description: Indicates whether to fallback to projects default locale when locale can not be found type: boolean example: true use_last_reviewed_version: description: Use last reviewed instead of latest translation in a project type: boolean example: true x-cli-version: '2.5' /accounts/{account_id}/distributions/{id}: get: summary: Get a single distribution description: Get details on a single distribution. operationId: distribution/show tags: - Distributions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/distribution' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase distributions show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a distribution description: Update an existing distribution. operationId: distribution/update tags: - Distributions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/distribution' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -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}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase distributions update \ --account_id \ --id \ --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}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: distribution/update/parameters properties: name: description: Name of the distribution type: string example: My Android Distribution project_id: description: Project id the distribution should be assigned to. type: string example: abcd1234abcd1234abcd1234 platforms: description: List of platforms the distribution should support. type: array items: type: string example: - android - ios locale_ids: description: List of locale ids that will be part of distribution releases type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - fff565db236400772368235db2c6117e format_options: description: | Additional formatting and render options. Only `enclose_in_cdata` is available for platform `android`. type: object additionalProperties: type: string example: '{xml:{enclose_in_cdata:''1''}}' fallback_locales_enabled: description: Use fallback locale if there is no translation in the current locale. type: boolean example: true fallback_to_non_regional_locale: description: Indicates whether to fallback to non regional locale when locale can not be found type: boolean example: true fallback_to_default_locale: description: Indicates whether to fallback to projects default locale when locale can not be found type: boolean example: true use_last_reviewed_version: description: Use last reviewed instead of latest translation in a project type: boolean example: true x-cli-version: '2.5' delete: summary: Delete a distribution description: Delete an existing distribution. operationId: distribution/delete tags: - Distributions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase distributions delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/distributions/{distribution_id}/releases: get: summary: List releases description: List all releases for the given distribution. operationId: releases/list tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/release_preview' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase releases list \ --account_id \ --distribution_id \ --access_token x-cli-version: '2.5' post: summary: Create a release description: Create a new release. operationId: release/create tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/release' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"description":"My first Release","platforms":["android","ios"],"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase releases create \ --account_id \ --distribution_id \ --data '{"description": "My first Release", "platforms": ["android", "ios"], "branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: release/create/parameters properties: description: description: Description of the release type: string example: My first Release platforms: description: List of platforms the release should support. type: array items: type: string example: - android - ios locale_ids: description: List of locale ids that will be included in the release. If empty, distribution locales will be used type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - fff565db236400772368235db2c6117e tags: description: Only include tagged keys in the release. For a key to be included it must be tagged with all tags provided type: array items: type: string example: - android - feature1 app_min_version: description: Minimum version of the app that the release supports in semver format type: string example: 2.5.0 app_max_version: description: Maximum version of the app that the release supports in semver format type: string example: 3.0.0 branch: description: Branch used for release type: string example: my-feature-branch x-cli-version: '2.8' /accounts/{account_id}/distributions/{distribution_id}/releases/{id}: get: summary: Get a single release description: Get details on a single release. operationId: release/show tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/release' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase releases show \ --account_id \ --distribution_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a release description: Update an existing release. operationId: release/update tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/release' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"description":"My first Release","platforms":["android","ios"],"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase releases update \ --account_id \ --distribution_id \ --id \ --data '{"description": "My first Release", "platforms": "android,ios", "branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: release/update/parameters properties: description: description: Description of the release type: string example: My first Release platforms: description: List of platforms the release should support. type: array items: type: string example: - android - ios app_min_version: description: Minimum version of the app that the release supports in semver format type: string example: 2.5.0 app_max_version: description: Maximum version of the app that the release supports in semver format type: string example: 3.0.0 branch: description: Branch used for release type: string example: my-feature-branch x-cli-version: '2.5' delete: summary: Delete a release description: Delete an existing release. operationId: release/delete tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase releases delete \ --account_id \ --distribution_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/distributions/{distribution_id}/releases/{id}/publish: post: summary: Publish a release description: Publish a release for production. operationId: release/publish tags: - Releases parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/release' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/releases/:id/publish" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST - lang: CLI v2 source: |- phrase releases publish \ --account_id \ --distribution_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/distributions/{distribution_id}/release_triggers: get: summary: List release triggers description: | List all release triggers for the given distribution. Note: Currently only one release trigger can exist per distribution. operationId: release_triggers/list tags: - Release Triggers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/release_trigger' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/release_triggers" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase release_triggers list \ --account_id \ --distribution_id \ --access_token x-cli-version: '2.28' post: summary: Create a release trigger description: Create a new recurring release. New releases will be published automatically, based on the cron schedule provided. Currently, only one release trigger can exist per distribution. operationId: release_triggers/create tags: - Release Triggers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' requestBody: required: true content: application/json: schema: type: object title: release/create/parameters properties: cron_schedule: description: Cron schedule for the scheduler. Read more about the format of this field at https://en.wikipedia.org/wiki/Cron type: string example: 15 18 * * 1,3 time_zone: description: Time zone for the scheduler type: string example: Europe/Berlin locale_ids: description: List of locale ids that will be included in the release. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - fff565db236400772368235db2c6117e tags: description: Only include tagged keys in the release. For a key to be included it must be tagged with all tags provided type: array items: type: string example: - android - feature1 branch: description: Branch used for release type: string example: my-feature-branch app_min_version: description: The created releases will be available only for apps with version greater or equal to this value type: string example: 1.0.0 app_max_version: description: The created releases will be available only for apps with version less or equal to this value type: string example: 2.0.0 responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/release_trigger' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/release_triggers" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"cron_schedule":"15 18 * * 1,3","time_zone":"Europe/Berlin","locale_ids":["abcd1234cdef1234abcd1234cdef1234","fff565db236400772368235db2c6117e"],"tags":["android","feature1"],"branch":"my-feature-branch","app_min_version":"1.0.0","app_max_version":"2.0.0"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase release_triggers create \ --account_id \ --distribution_id \ --data '{"cron_schedule":"15 18 * * 1,3","time_zone":"Europe/Berlin","locale_ids":["abcd1234cdef1234abcd1234cdef1234","fff565db236400772368235db2c6117e"],"tags":["android","feature1"],"branch":"my-feature-branch","app_min_version":"1.0.0","app_max_version":"2.0.0"}' \ --access_token x-cli-version: '2.28' /accounts/{account_id}/distributions/{distribution_id}/release_triggers/{id}: get: summary: Get a single release trigger description: Get details of a single release trigger. operationId: release_triggers/show tags: - Release Triggers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/release_trigger' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/release_triggers/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase release_triggers show \ --account_id \ --distribution_id \ --id \ --access_token x-cli-version: '2.28' patch: summary: Update a release trigger description: Update a recurring release. operationId: release_triggers/update tags: - Release Triggers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' requestBody: required: true content: application/json: schema: type: object title: release/update/parameters properties: cron_schedule: description: Cron schedule for the scheduler. Read more about the format of this field at https://en.wikipedia.org/wiki/Cron type: string example: 15 18 * * 1,3 time_zone: description: Time zone for the scheduler type: string example: Europe/Berlin locale_ids: description: List of locale ids that will be included in the release. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - fff565db236400772368235db2c6117e tags: description: Only include tagged keys in the release. For a key to be included it must be tagged with all tags provided type: array items: type: string example: - android - feature1 branch: description: Branch used for release type: string example: my-feature-branch app_min_version: description: The created releases will be available only for apps with version greater or equal to this value type: string example: 1.0.0 app_max_version: description: The created releases will be available only for apps with version less or equal to this value type: string example: 2.0.0 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/release_trigger' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/release_triggers/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"cron_schedule":"15 18 * * 1,3","time_zone":"Europe/Berlin","locale_ids":["abcd1234cdef1234abcd1234cdef1234","fff565db236400772368235db2c6117e"],"tags":["android","feature1"],"branch":"my-feature-branch","app_min_version":"1.0.0","app_max_version":"2.0.0"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase release_triggers update \ --account_id \ --distribution_id \ --id \ --data '{"cron_schedule":"15 18 * * 1,3","time_zone":"Europe/Berlin","locale_ids":["abcd1234cdef1234abcd1234cdef1234","fff565db236400772368235db2c6117e"],"tags":["android","feature1"],"branch":"my-feature-branch","app_min_version":"1.0.0","app_max_version":"2.0.0"}' \ --access_token x-cli-version: '2.28' delete: summary: Delete a single release trigger description: Delete a single release trigger. operationId: release_triggers/destroy tags: - Release Triggers parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/distribution_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/distributions/:distribution_id/release_triggers/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase release_triggers delete \ --account_id \ --distribution_id \ --id \ --access_token x-cli-version: '2.28' /projects/{project_id}/jobs: get: summary: List jobs description: List all jobs for the given project. operationId: jobs/list tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/job_owner' - $ref: '#/components/parameters/job_assignee' - $ref: '#/components/parameters/job_state' - $ref: '#/components/parameters/job_updated_since' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs?branch=my-feature-branch&owned_by=abcd1234cdef1234abcd1234cdef1234&assigned_to=abcd1234cdef1234abcd1234cdef1234&state=completed" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase jobs list \ --project_id \ --branch my-feature-branch \ --owned_by abcd1234cdef1234abcd1234cdef1234 \ --assigned_to abcd1234cdef1234abcd1234cdef1234 \ --state completed \ --access_token x-cli-version: '2.5' post: summary: Create a job description: Create a new job. operationId: job/create tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -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"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs create \ --project_id \ --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"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/create/parameters required: - name properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Job name type: string example: de source_locale_id: description: The API id of the source language type: string example: abcd1234cdef1234abcd1234cdef1234 briefing: description: Briefing for the translators type: string example: de-DE due_date: description: Date the job should be finished type: string format: date-time example: '2017-08-15' nullable: true ticket_url: description: URL to a ticket for this job (e.g. Jira, Trello) type: string example: https://example.atlassian.net/browse/FOO tags: description: tags of keys that should be included within the job type: array items: type: string example: - myUploadTag translation_key_ids: description: ids of keys that should be included within the job type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 target_locale_ids: description: List of target locales for the job. Mutually exclusive with `job_template_id`. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 job_template_id: 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. Mutually exclusive with `target_locale_ids`. type: string example: abcd1234cdef1234abcd1234cdef1234 autotranslate: description: Automatically translate the job using machine translation. type: boolean example: true x-cli-version: '2.5' /accounts/{account_id}/jobs: get: summary: List account jobs description: List all jobs for the given account. operationId: jobs/by_account tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/job_owner' - $ref: '#/components/parameters/job_assignee' - $ref: '#/components/parameters/job_state' - $ref: '#/components/parameters/job_updated_since' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/jobs?owned_by=abcd1234cdef1234abcd1234cdef1234&assigned_to=abcd1234cdef1234abcd1234cdef1234&state=completed" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase jobs by_account \ --account_id \ --owned_by abcd1234cdef1234abcd1234cdef1234 \ --assigned_to abcd1234cdef1234abcd1234cdef1234 \ --state completed \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{id}: get: summary: Get a single job description: Get details on a single job for a given project. operationId: job/show tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/include_annotations' - $ref: '#/components/parameters/omit_translation_keys' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase jobs show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a job description: Update an existing job. operationId: job/update tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","name":"de","briefing":"de-DE","due_date":"2017-08-15","ticket_url":"https://example.atlassian.net/browse/FOO"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "name":"de", "briefing":"de-DE", "due_date":"2017-08-15", "ticket_url":"https://example.atlassian.net/browse/FOO"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Job name type: string example: de briefing: description: Briefing for the translators type: string example: de-DE due_date: description: Date the job should be finished type: string format: date-time example: '2017-08-15' nullable: true ticket_url: description: URL to a ticket for this job (e.g. Jira, Trello) type: string example: https://example.atlassian.net/browse/FOO target_locale_ids: description: List of target locales for the job. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 autotranslate: description: Automatically translate the job using machine translation type: boolean example: true x-cli-version: '2.5' delete: summary: Delete a job description: Delete an existing job. operationId: job/delete tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/start: post: summary: Start a job description: Starts an existing job in state draft. operationId: job/start tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/start" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs start \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/start/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/complete: post: summary: Complete a job description: Mark a job as completed. operationId: job/complete tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/complete" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs complete \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/complete/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/reopen: post: summary: Reopen a job description: Mark a job as uncompleted. operationId: job/reopen tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/reopen" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs reopen \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/reopen/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/lock: post: summary: Lock a job description: If you are the job owner, you may lock a job using this API request. operationId: job/lock tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/lock" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs lock \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/unlock: post: summary: Unlock a job description: If you are the job owner, you may unlock a locked job using this API request. operationId: job/unlock tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/unlock" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs unlock \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{id}/keys: post: summary: Add keys to job description: Add multiple keys to a existing job. operationId: job/keys/create tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","translation_key_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs keys_create \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "translation_key_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/keys/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch translation_key_ids: description: ids of keys that should added to the job type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 x-cli-version: '2.5' delete: summary: Remove keys from job description: Remove multiple keys from existing job. operationId: job/keys/delete tags: - Jobs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:id/keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch","translation_key_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase jobs keys_delete \ --project_id \ --id \ --branch my-feature-branch \ --data '{"branch": "my-feature-branch", "translation_key_ids": ["abcd1234cdef1234abcd1234cdef1234"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job/keys/delete/parameters required: - translation_key_ids properties: branch: description: specify the branch to use type: string example: my-feature-branch translation_key_ids: description: ids of keys that should be deleted from the job type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 /projects/{project_id}/job_templates: get: summary: List job templates description: List all job templates for the given project. operationId: job_templates/list tags: - Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_template' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_templates list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a job template description: Create a new job template. operationId: job_template/create tags: - Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","name":"template","briefing":"text"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_templates create \ --project_id \ --data '{"branch":"my-feature-branch", "name":"template", "briefing":"text"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_template/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Job template name type: string example: template briefing: description: Briefing for the translators type: string example: text autotranslate: description: Automatically translate the job using machine translation. type: boolean example: true source_locale_id: description: The API id of the source language. This locale will be set as source locale for the job template. If not provided, the project default locale will be used. type: string example: abcd1234cdef1234abcd1234cdef1234 required: - name x-cli-version: '2.5' /projects/{project_id}/job_templates/{id}: get: summary: Get a single job template description: Get details on a single job template for a given project. operationId: job_templates/show tags: - Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_templates show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a job template description: Update an existing job template. operationId: job_template/update tags: - Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","name":"template","briefing":"text"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_templates update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "name":"template", "briefing":"text"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_template/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Job template name type: string example: template briefing: description: Briefing for the translators type: string example: text autotranslate: description: Automatically translate the job using machine translation. type: boolean example: true source_locale_id: description: The API id of the source language. This locale will be set as source locale for the job template. If not provided, the project default locale will be used. type: string example: abcd1234cdef1234abcd1234cdef1234 required: - name x-cli-version: '2.5' delete: summary: Delete a job template description: Delete an existing job template. operationId: job_template/delete tags: - Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_templates delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /accounts/{account_id}/glossaries: get: summary: List term bases description: 'List all term bases (previously: glossaries) the current user has access to.' operationId: glossaries/list tags: - Glossaries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/glossary' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase glossaries list \ --account_id \ --access_token x-cli-version: '2.5' post: summary: Create a term base description: 'Create a new term base (previously: glossary).' operationId: glossary/create tags: - Glossaries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/glossary' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"My term base","project_ids":"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235","space_ids":["abcd1234abcd1234abcd1234","abcd1234abcd1234abcd1235"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossaries create \ --account_id \ --data '{"name":"My term base", "project_ids":"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235", "space_ids":"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary/create/parameters required: - name properties: name: description: Name of the glossary type: string example: My glossary project_ids: description: List of project ids the glossary should be assigned to. type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 space_ids: description: List of space ids the glossary should be assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 x-cli-version: '2.5' /accounts/{account_id}/glossaries/{id}: get: summary: Get a single term base description: 'Get details on a single term base (previously: glossary).' operationId: glossary/show tags: - Glossaries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/glossary' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase glossaries show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a term base description: 'Update an existing term base (previously: glossary).' operationId: glossary/update tags: - Glossaries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/glossary' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"My glossary","project_ids":"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235","space_ids":["abcd1234abcd1234abcd1234","abcd1234abcd1234abcd1235"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossaries update \ --account_id \ --id \ --data '{"name": "My glossary", "project_ids":"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235", "space_ids": "abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary/update/parameters properties: name: description: Name of the glossary type: string example: My glossary project_ids: description: List of project ids the glossary should be assigned to. type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 space_ids: description: List of space ids the glossary should be assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 x-cli-version: '2.5' delete: summary: Delete a term base description: 'Delete an existing term base (previously: glossary).' operationId: glossary/delete tags: - Glossaries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase glossaries delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /authorizations: get: summary: List authorizations description: List all your authorizations. operationId: authorizations/list tags: - Authorizations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/authorization' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/authorizations" \ -u USERNAME - lang: CLI v2 source: phrase authorizations list x-cli-version: '2.5' post: summary: Create an authorization description: Create a new authorization. operationId: authorization/create tags: - Authorizations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/authorization_with_token' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/authorizations" \ -u USERNAME \ -X POST \ -d '{"note":"My Deploy Script","scopes":["read","write"],"expires_at":"2015-03-30T09:52:53Z"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase authorizations create \ --data '{"note": "My Deploy Script", "scopes": "read,write", "expires_at": "2015-03-30T09:52:53Z"}' requestBody: required: true content: application/json: schema: type: object title: authorization/create/parameters required: - note properties: note: description: A note to help you remember what the access is used for. type: string example: My Deploy Script scopes: description: A list of scopes that the access can be used for. type: array items: type: string example: - read - write expires_at: description: Expiration date for the authorization token. Null means no expiration date (default). type: string format: date-time example: '2015-03-30T09:52:53Z' x-cli-version: '2.5' /authorizations/{id}: get: summary: Get a single authorization description: Get details on a single authorization. operationId: authorization/show tags: - Authorizations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/authorization' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/authorizations/:id" \ -u USERNAME - lang: CLI v2 source: |- phrase authorizations show \ --id x-cli-version: '2.5' patch: summary: Update an authorization description: Update an existing authorization. operationId: authorization/update tags: - Authorizations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/authorization' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/authorizations/:id" \ -u USERNAME \ -X PATCH \ -d '{"note":"My Deploy Script","scopes":["read","write"],"expires_at":"2015-03-30T09:52:53Z"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase authorizations update \ --id \ --data '{"note": "My Deploy Script", "scopes": "read,write", "expires_at": "2015-03-30T09:52:53Z"}' requestBody: required: true content: application/json: schema: type: object title: authorization/update/parameters properties: note: description: A note to help you remember what the access is used for. type: string example: My Deploy Script scopes: description: A list of scopes that the access can be used for. type: array items: type: string example: - read - write expires_at: description: Expiration date for the authorization token. Null means no expiration date (default). type: string format: date-time example: '2015-03-30T09:52:53Z' x-cli-version: '2.5' delete: summary: Delete an authorization description: Delete an existing authorization. API calls using that token will stop working. operationId: authorization/delete tags: - Authorizations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/authorizations/:id" \ -u USERNAME \ -X DELETE - lang: CLI v2 source: |- phrase authorizations delete \ --id x-cli-version: '2.5' /projects/{project_id}/keys/{key_id}/comments: get: summary: List comments description: List all comments for a key. operationId: comments/list tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: Search query for comment messages example: Some comment content name: query in: query schema: type: string - description: Search comments by their assigned locales example: - someId name: locale_ids in: query schema: type: array items: type: string - description: Specify the filter for the comments name: filters in: query schema: type: array example: - read - unread items: type: string - description: 'Order direction. Can be one of: asc, desc.' name: order in: query example: desc schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments list \ --project_id \ --key_id \ --branch "my-feature-branch" \ --filters unread \ --order desc \ --query "Some comment content" \ --locale_ids someId \ --access_token x-cli-version: '2.5' post: summary: Create a comment description: Create a new comment for a key. operationId: comment/create tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch", "message":"Some message...", "locale_ids": ["someId"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments create \ --project_id \ --key_id \ --data '{"branch":"my-feature-branch", "message": "Some message...", "locale_ids": ["someId"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: comment/create/parameters required: - message properties: message: description: Comment message type: string example: Some message... branch: description: specify the branch to use type: string example: my-feature-branch locale_ids: description: specify the locales for the comment type: array items: type: string example: - someId - someOtherId x-cli-version: '2.5' /projects/{project_id}/keys/{key_id}/comments/{id}: get: summary: Get a single comment description: Get details on a single comment. operationId: comment/show tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase comments show \ --project_id \ --key_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a comment description: Update an existing comment. operationId: comment/update tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","message":"Some message..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments update \ --project_id \ --key_id \ --id \ --data '{"branch":"my-feature-branch", "message": "Some message..."}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: comment/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch message: description: Comment message type: string example: Some message... x-cli-version: '2.5' delete: summary: Delete a comment description: Delete an existing comment. operationId: comment/delete tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments delete \ --project_id \ --key_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys/{key_id}/comments/{id}/read: patch: summary: Mark a comment as read description: Mark a comment as read. operationId: comment/mark/read tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments mark \ --project_id \ --key_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: comment/mark/read/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' delete: summary: Mark a comment as unread description: Mark a comment as unread. operationId: comment/mark/unread tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase comments mark \ --project_id \ --key_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' get: summary: Check if comment is read description: Check if comment was marked as read. Returns 204 if read, 404 if unread. operationId: comment/mark/check tags: - Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:id/read?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase comments mark \ --project_id \ --key_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/reactions: get: summary: List reactions description: List all reactions for a comment. operationId: reactions/list tags: - Comment Reactions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/comment_reaction' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase reactions list \ --project_id \ --key_id \ --comment_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.9' post: summary: Create a reaction description: Create a new reaction for a comment. operationId: reaction/create tags: - Comment Reactions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: specify the emoji for the reaction example: 👍 name: emoji in: query schema: type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/comment_reaction' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch", "emoji": "👍"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase reactions create \ --project_id \ --key_id \ --comment_id \ --data '{"branch":"my-feature-branch", "emoji": "👍"]}' \ --access_token x-cli-version: '2.9' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/reactions/{id}: get: summary: Get a single reaction description: Get details on a single reaction. operationId: reaction/show tags: - Comment Reactions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/comment_reaction' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase reactions show \ --project_id \ --key_id \ --comment_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.9' delete: summary: Delete a reaction description: Delete an existing reaction. operationId: reaction/delete tags: - Comment Reactions parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/reactions/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase reactions delete \ --project_id \ --key_id \ --comment_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.9' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies: get: summary: List replies description: List all replies for a comment. operationId: replies/list tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: Search query for comment messages example: Some comment content name: query in: query schema: type: string - description: Specify the filter for the comments name: filters in: query schema: type: array example: - read - unread items: type: string - description: 'Order direction. Can be one of: asc, desc.' name: order in: query example: desc schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies list \ --project_id \ --key_id \ --comment_id \ --branch "my-feature-branch" \ --filters unread \ --order desc \ --query "Some comment content" \ --access_token x-cli-version: '2.10' post: summary: Create a reply description: Create a new reply for a comment. operationId: reply/create tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' requestBody: required: true content: application/json: schema: type: object title: comment/create/parameters required: - message properties: message: description: Reply message body type: string example: Some message... branch: description: Specify the branch to use type: string example: my-feature-branch responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch", "message":"Some message..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies create \ --project_id \ --key_id \ --comment_id \ --data '{"branch":"my-feature-branch", "message": "Some message..."]}' \ --access_token x-cli-version: '2.10' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}: get: summary: Get a single reply description: Get details on a single reply. operationId: reply/show tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies show \ --project_id \ --key_id \ --comment_id \ --id \ --data '{"branch":"my-feature-branch"]}' \ --access_token x-cli-version: '2.10' delete: summary: Delete a reply description: Delete an existing reply. operationId: reply/delete tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies delete \ --project_id \ --key_id \ --comment_id \ --id \ --data '{"branch":"my-feature-branch"]}' \ --access_token x-cli-version: '2.10' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}/mark_as_read: patch: summary: Mark a reply as read description: Mark a reply as read. operationId: reply/mark_as_read tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id/mark_as_read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies mark_as_read \ --project_id \ --key_id \ --comment_id \ --id \ --data '{"branch":"my-feature-branch"]}' \ --access_token x-cli-version: '2.10' /projects/{project_id}/keys/{key_id}/comments/{comment_id}/replies/{id}/mark_as_unread: patch: summary: Mark a reply as unread description: Mark a reply as unread. operationId: reply/mark_as_unread tags: - Comment Replies parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/comment_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:key_id/comments/:comment_id/replies/:id/mark_as_unread" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase replies mark_as_unread \ --project_id \ --key_id \ --comment_id \ --id \ --data '{"branch":"my-feature-branch"]}' \ --access_token x-cli-version: '2.10' /projects/{project_id}/webhooks: get: summary: List webhooks description: List all webhooks for the given project. operationId: webhooks/list tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase webhooks list \ --project_id \ --access_token x-cli-version: '2.5' post: summary: Create a webhook description: Create a new webhook. operationId: webhook/create tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/webhook' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"callback_url":"http://example.com/hooks/phraseapp-notifications","description":"My webhook for chat notifications","events":"locales:create,translations:update"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase webhooks create \ --project_id \ --data '{"callback_url": "http://example.com/hooks/phraseapp-notifications", "description": "My webhook for chat notifications", "events": "locales:create,translations:update"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: webhook/create/parameters required: - callback_url properties: callback_url: description: Callback URL to send requests to type: string example: http://example.com/hooks/phraseapp-notifications secret: description: Webhook secret used to calculate signature. If empty, the default project secret will be used. type: string example: secr3t description: description: Webhook description type: string example: My webhook for chat notifications events: description: List of event names to trigger the webhook (separated by comma) type: string example: locales:create,translations:update active: description: Whether webhook is active or inactive type: boolean example: null include_branches: description: If enabled, webhook will also be triggered for events from branches of the project specified. type: boolean example: null x-cli-version: '2.5' /projects/{project_id}/webhooks/{id}: get: summary: Get a single webhook description: Get details on a single webhook. operationId: webhook/show tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/webhook' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase webhooks show \ --project_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a webhook description: Update an existing webhook. operationId: webhook/update tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/webhook' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"callback_url":"http://example.com/hooks/phraseapp-notifications","description":"My webhook for chat notifications","events":"locales:create,translations:update"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase webhooks update \ --project_id \ --id \ --data '{"callback_url": "http://example.com/hooks/phraseapp-notifications", "description": "My webhook for chat notifications", "events": "locales:create,translations:update"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: webhook/update/parameters properties: callback_url: description: Callback URL to send requests to type: string example: http://example.com/hooks/phraseapp-notifications secret: description: Webhook secret used to calculate signature. If empty, the default project secret will be used. type: string example: secr3t description: description: Webhook description type: string example: My webhook for chat notifications events: description: List of event names to trigger the webhook (separated by comma) type: string example: locales:create,translations:update active: description: Whether webhook is active or inactive type: boolean example: null include_branches: description: If enabled, webhook will also be triggered for events from branches of the project specified. type: boolean example: null x-cli-version: '2.5' delete: summary: Delete a webhook description: Delete an existing webhook. operationId: webhook/delete tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase webhooks delete \ --project_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/webhooks/{id}/test: post: summary: Test a webhook description: Perform a test request for a webhook. operationId: webhook/test tags: - Webhooks parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:id/test" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST - lang: CLI v2 source: |- phrase webhooks test \ --project_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/uploads: post: summary: Upload a new file description: | Upload a new language file. Creates necessary resources in your project. Note: be aware of [upload limits](https://support.phrase.com/hc/en-us/articles/8548271212188-Phrase-Strings-Limits#file-size-upload-limits-0-0). operationId: upload/create tags: - Uploads parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/upload' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/uploads" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F branch=my-feature-branch \ -F file=@/path/to/my/file.json \ -F file_format=json \ -F locale_id=abcd1234cdef1234abcd1234cdef1234 \ -F tags=awesome-feature,needs-proofreading \ -F locale_mapping[en]=2 \ -F format_options[foo]=bar - lang: CLI v2 source: |- phrase uploads create \ --project_id \ --branch my-feature-branch \ --file /path/to/my/file.json \ --file_format json \ --locale_id abcd1234cdef1234abcd1234cdef1234 \ --tags awesome-feature,needs-proofreading \ --locale_mapping '{"en": "2"}' \ --format_options '{"foo": "bar"}' \ --access_token requestBody: required: true content: multipart/form-data: schema: type: object title: upload/create/parameters required: - file - file_format - locale_id properties: branch: description: specify the branch to use type: string example: my-feature-branch file: description: File to be imported type: string format: binary example: /path/to/my/file.json file_format: description: File format. Auto-detected when possible and not specified. type: string example: json locale_id: description: Locale of the file's content. Can be the name or id of the locale. Preferred is id. type: string example: abcd1234cdef1234abcd1234cdef1234 tags: description: List of tags separated by comma to be associated with the new keys contained in the upload. type: string example: awesome-feature,needs-proofreading update_translations: description: Indicates whether existing translations should be updated with the file content. type: boolean example: true update_custom_metadata: description: Determines whether to update custom metadata values when uploading a file. If set to true, existing metadata can be changed or removed. Passing an empty value deletes the corresponding metadata property. type: boolean default: true example: true update_translation_keys: description: Pass `false` here to prevent new keys from being created and existing keys updated. type: boolean default: true example: true update_translations_on_source_match: description: Update target translations only if the source translations of the uploaded multilingual file match the stored translations. type: boolean default: false example: true source_locale_id: description: Specifies the source locale for multilingual files. Can be the name or id of the locale. Preferred is id. type: string example: abcd1234cdef1234abcd1234cdef1234 update_descriptions: description: Existing key descriptions will be updated with the file content. Empty descriptions overwrite existing descriptions. type: boolean example: true convert_emoji: description: This option is obsolete. Providing the option will cause a bad request error. type: boolean example: true deprecated: true skip_upload_tags: description: Indicates whether the upload should not create upload tags. type: boolean example: true skip_unverification: description: Indicates whether the upload should unverify updated translations. type: boolean example: true file_encoding: description: Enforces a specific encoding on the file contents. Valid options are "UTF-8", "UTF-16" and "ISO-8859-1". type: string example: UTF-8 locale_mapping: description: Mapping between locale names and translation columns. Required in some formats like CSV or XLSX. type: object properties: {} example: '{"en": "2"}' format_options: description: Additional options available for specific formats. See our format guide for the [complete list](https://support.phrase.com/hc/en-us/articles/9652464547740-List-of-Supported-File-Types-Strings). type: object properties: {} example: '{"foo": "bar"}' autotranslate: description: If set, translations for the uploaded language will be fetched automatically. type: boolean example: true verify_mentioned_translations: description: Indicates whether all translations mentioned in the upload should be verified. type: boolean default: false example: true mark_reviewed: description: Indicated whether the imported translations should be marked as reviewed. This setting is available if the review workflow is enabled for the project. type: boolean example: true tag_only_affected_keys: description: Indicates whether only keys affected (created or updated) by the upload should be tagged. The default is `false` type: boolean default: false example: true translation_key_prefix: description: This prefix will be added to all uploaded translation key names to prevent collisions. Use a meaningful prefix related to your project or file to keep key names organized. type: string example: prefix_ x-cli-version: '2.12' get: summary: List uploads description: List all uploads for the given project. operationId: uploads/list tags: - Uploads parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/upload' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/uploads?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase uploads list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/uploads/{id}: get: summary: Get a single upload description: View details and summary for a single upload. operationId: upload/show tags: - Uploads parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/upload' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/uploads/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase uploads show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/upload_batches: post: summary: Create upload batch description: | Groups multiple file uploads into a single batch. Optionally, launches the deletion of unmentioned translation keys after all uploads in the batch are completed. operationId: upload_batches/create tags: - Upload Batches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' requestBody: required: true content: application/json: schema: type: object title: upload_batches/create/parameters required: - upload_ids properties: branch: description: specify the branch to use type: string example: my-feature-branch delete_unmentioned_keys: description: If set to true, after all uploads in the batch are completed, translation keys that were not mentioned in any of the uploaded files will be deleted. type: boolean example: true upload_ids: description: Array of upload IDs to include in the batch type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 - bcde2345defg2345bcde2345defg2345 responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/upload_batch' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/upload_batches" \ -X POST \ -H "Content-Type: application/json" \ -d '{ "branch": "my-feature-branch", "delete_unmentioned_keys": true, "upload_ids": [ "abcd1234cdef1234abcd1234cdef1234", "bcde2345defg2345bcde2345defg2345" ] }' \ -u : - lang: CLI v2 source: |- phrase upload_batches create --project-id :project_id \ --data '{ "branch": "my-feature-branch", "delete_unmentioned_keys": true, "upload_ids": [ "abcd1234cdef1234abcd1234cdef1234", "bcde2345defg2345bcde2345defg2345" ] }' \ --access_token /projects/{project_id}/translations/{translation_id}/versions: get: summary: List all versions description: List all changes done to a given translation. operationId: versions/list tags: - Versions / History parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/translation_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: Indicates whether only content updates should be returned example: true name: only_content_updates in: query schema: type: boolean default: false responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation_version_with_user' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:translation_id/versions?branch=my-feature-branch&only_content_updates=true" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase versions list \ --project_id \ --translation_id \ --branch my-feature-branch \ --only_content_updates true \ --access_token x-cli-version: '2.5' /projects/{project_id}/translations/{translation_id}/versions/{id}: get: summary: Get a single version description: Get details on a single version. operationId: version/show tags: - Versions / History parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/translation_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_version_with_user' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:translation_id/versions/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase versions show \ --project_id \ --translation_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /accounts/{account_id}/glossaries/{glossary_id}/terms/{term_id}/translations: post: summary: Create a translation for a term description: 'Create a new translation for a term in a term base (previously: glossary).' operationId: glossary_term_translation/create tags: - Glossary Term Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/term_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/glossary_term_translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"locale_code":"en-US","content":"My translated term"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossary_term_translations create \ --account_id \ --glossary_id \ --term_id \ --data '{"locale_code":"en-US", "content": "My translated term"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary_term_translation/create/parameters required: - locale_code - content properties: locale_code: description: Identifies the language for this translation type: string example: en-US content: description: The content of the translation type: string example: My translated term x-cli-version: '2.5' /accounts/{account_id}/glossaries/{glossary_id}/terms/{term_id}/translations/{id}: patch: summary: Update a translation for a term description: 'Update an existing translation for a term in a term base (previously: glossary).' operationId: glossary_term_translation/update tags: - Glossary Term Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/term_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/glossary_term_translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"locale_code":"en-US","content":"My translated term"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossary_term_translations update \ --account_id \ --glossary_id \ --term_id \ --id \ --data '{"locale_code":"en-US", "content": "My translated term"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary_term_translation/update/parameters properties: locale_code: description: Identifies the language for this translation type: string example: en-US content: description: The content of the translation type: string example: My translated term x-cli-version: '2.5' delete: summary: Delete a translation for a term description: 'Delete an existing translation of a term in a term base (previously: glossary).' operationId: glossary_term_translation/delete tags: - Glossary Term Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/term_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:term_id/translations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase glossary_term_translations delete \ --account_id \ --glossary_id \ --term_id \ --id \ --access_token x-cli-version: '2.5' /projects: get: summary: List projects description: List all projects the current user has access to. operationId: projects/list tags: - Projects parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/query_account_id' - description: Sort projects. Valid options are "name_asc", "name_desc", "updated_at_asc", "updated_at_desc", "space_asc" and "space_desc". example: null name: sort_by in: query schema: type: string - description: Filter projects. Valid options are ["favorites"]. example: favorites name: filters in: query schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/project' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase projects list \ --access_token x-cli-version: '2.5' post: summary: Create a project description: Create a new project. operationId: project/create tags: - Projects parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/project_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F name=My%20Android%20Project \ -F main_format=yml \ -F shares_translation_memory=true - lang: CLI v2 source: |- phrase projects create \ --data '{"name": "My Android Project", "main_format":"yml", "shares_translation_memory":true}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: project/create/parameters required: - name properties: name: description: Name of the project type: string example: My Android Project main_format: 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 [Format Guide](https://support.phrase.com/hc/en-us/sections/6111343326364) or our [Formats API Endpoint](/en/api/strings/formats/list-formats). type: string example: yml media: 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.' type: string example: Python shares_translation_memory: description: Indicates whether the project should share the account's translation memory type: boolean example: true project_image: description: Image to identify the project type: string format: binary example: /path/to/my/project-screenshot.png remove_project_image: description: Indicates whether the project image should be deleted. type: boolean example: null account_id: 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. type: string example: abcd1234 point_of_contact: description: (Optional) User ID of the point of contact for the project. type: string example: abcd1234 source_project_id: 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. type: string example: abcd1234 workflow: description: (Optional) Review Workflow. "simple" / "review". [Read more](https://support.phrase.com/hc/en-us/articles/5784094755484) type: string example: review machine_translation_enabled: description: (Optional) Enable machine translation support in the project. Required for Pre-Translation type: boolean example: true enable_branching: description: (Optional) Enable branching in the project type: boolean example: true protect_master_branch: description: (Optional) Protect the master branch in project where branching is enabled type: boolean example: true enable_all_data_type_translation_keys_for_translators: description: (Optional) Otherwise, translators are not allowed to edit translations other than strings type: boolean example: true enable_icu_message_format: description: (Optional) We can validate and highlight your ICU messages. [Read more](https://support.phrase.com/hc/en-us/articles/5822319545116) type: boolean example: true zero_plural_form_enabled: description: (Optional) Displays the input fields for the 'ZERO' plural form for every key as well although only some languages require the 'ZERO' explicitly. type: boolean example: true autotranslate_enabled: description: (Optional) Autopilot, requires machine_translation_enabled. [Read more](https://support.phrase.com/hc/en-us/articles/5822187934364) type: boolean example: true autotranslate_check_new_translation_keys: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_check_new_uploads: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_check_new_locales: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_mark_as_unverified: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_use_machine_translation: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_use_translation_memory: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_overwrite_unverified_translations: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true placeholder_styles: description: (Optional) List of placeholder styles enabled for the project. type: array items: type: string example: - angular - iOS x-cli-version: 2.6.3 /projects/{id}: get: summary: Get a single project description: Get details on a single project. operationId: project/show tags: - Projects parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/project_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase projects show \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a project description: Update an existing project. operationId: project/update tags: - Projects parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/project_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -F name=My%20Android%20Project \ -F main_format=yml \ -F shares_translation_memory=true - lang: CLI v2 source: |- phrase projects update \ --id \ --data '{"name": "My Android Project", "main_format":"yml", "shares_translation_memory":true}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: project/update/parameters properties: account_id: 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. type: string example: abcd1234 name: description: (Optional) Name of the project type: string example: My Android Project point_of_contact: description: (Optional) User ID of the point of contact for the project. Pass `null` to unset. type: string example: abcd1234 main_format: 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 [Format Guide](https://support.phrase.com/hc/en-us/sections/6111343326364) or our [Formats API Endpoint](#formats). type: string example: yml media: 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.' type: string example: Python shares_translation_memory: description: (Optional) Indicates whether the project should share the account's translation memory type: boolean example: true project_image: description: (Optional) Image to identify the project type: string format: binary example: /path/to/my/project-screenshot.png remove_project_image: description: (Optional) Indicates whether the project image should be deleted. type: boolean example: false workflow: description: (Optional) Review Workflow. "simple" / "review". [Read more](https://support.phrase.com/hc/en-us/articles/5784094755484) type: string example: review machine_translation_enabled: description: (Optional) Enable machine translation support in the project. Required for Pre-Translation type: boolean example: true enable_branching: description: (Optional) Enable branching in the project type: boolean example: true protect_master_branch: description: (Optional) Protect the master branch in project where branching is enabled type: boolean example: true enable_all_data_type_translation_keys_for_translators: description: (Optional) Otherwise, translators are not allowed to edit translations other than strings type: boolean example: true enable_icu_message_format: description: (Optional) We can validate and highlight your ICU messages. [Read more](https://support.phrase.com/hc/en-us/articles/5822319545116) type: boolean example: true zero_plural_form_enabled: description: (Optional) Displays the input fields for the 'ZERO' plural form for every key as well although only some languages require the 'ZERO' explicitly. type: boolean example: true autotranslate_enabled: description: (Optional) Autopilot, requires machine_translation_enabled. [Read more](https://support.phrase.com/hc/en-us/articles/5822187934364) type: boolean example: true autotranslate_check_new_translation_keys: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_check_new_uploads: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_check_new_locales: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_mark_as_unverified: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_use_machine_translation: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_use_translation_memory: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true autotranslate_overwrite_unverified_translations: description: (Optional) Requires autotranslate_enabled to be true type: boolean example: true default_encoding: description: (Optional) Sets the default encoding for Uploads. If you leave it empty, we will try to guess it automatically for you when you Upload a file. You can still override this value by setting the [`file_encoding`](/en/api/strings/uploads/upload-a-new-file) parameter for Uploads. type: string example: UTF-8 enum: - UTF-8 - UTF-16 - UTF-16BE - UTF-16LE - ISO-8859-1 placeholder_styles: description: (Optional) List of placeholder styles enabled for the project. type: array items: type: string example: - angular - iOS x-cli-version: 2.6.3 delete: summary: Delete a project description: Delete an existing project. operationId: project/delete tags: - Projects parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase projects delete \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/locales: get: summary: List job target locales description: List all target locales for a given job. operationId: job_locales/list tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/include_annotations' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_locales list \ --project_id \ --job_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Add a target locale to a job description: Adds a target locale to a job. operationId: job_locales/create tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","locale_id":"abcd1234cdef1234abcd1234cdef1234","user_ids":["abcd1234cdef1234abcd1234cdef1234"], "translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales create \ --project_id \ --job_id \ --data '{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_locales/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: ID of a locale to be added type: string example: abcd1234cdef1234abcd1234cdef1234 user_ids: description: Array of user ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 required: - locale_id x-cli-version: 2.6.8 /projects/{project_id}/jobs/{job_id}/locales/{id}: get: summary: Show single job target locale description: Get a single target locale for a given job. operationId: job_locale/show tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/include_annotations' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_locales show \ --project_id \ --job_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: 2.9.0 patch: summary: Update a job target locale description: Update an existing job target locale. operationId: job_locale/update tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","locale_id":"abcd1234cdef1234abcd1234cdef1234","user_ids":["abcd1234cdef1234abcd1234cdef1234"], "team_ids":["abcd1234cdef1234abcd1234cdef1234"], "translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales update \ --project_id \ --job_id \ --id \ --data '{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "team_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_locale/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: ID of a target locale to update type: string example: abcd1234cdef1234abcd1234cdef1234 user_ids: description: Array of user ids to be assigned to the job locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 x-cli-version: 2.6.8 delete: summary: Remove a target locale from a job description: Removes a target locale from a job. operationId: job_locale/delete tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/branch' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales delete \ --project_id \ --job_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/locales/{id}/complete: post: summary: Complete a job locale description: Mark a job locale as completed. operationId: job_locale/complete tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/complete" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales complete \ --project_id \ --job_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_locale/complete/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/locales/{id}/complete_review: post: summary: Review a job locale description: Mark job locale as reviewed. operationId: job_locale/complete_review tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/complete_review" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales complete \ --project_id \ --job_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_locale/complete_review/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/locales/{id}/reopen: post: summary: Reopen a job locale description: Mark a job locale as uncompleted. operationId: job_locale/reopen tags: - Job Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:id/reopen" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locales reopen \ --project_id \ --job_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_locale/reopen/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/job_templates/{job_template_id}/locales: get: summary: List job template locales description: List all job template locales for a given job template. operationId: job_template_locales/list tags: - Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_template_locales list \ --project_id \ --job_template_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a job template locale description: Create a new job template locale. operationId: job_template_locales/create tags: - Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_template_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","locale_id":"abcd1234cdef1234abcd1234cdef1234","user_ids":["abcd1234cdef1234abcd1234cdef1234"],"reviewer_ids":["abcd1234cdef1234abcd1234cdef1234"], "translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_template_locales create \ --project_id \ --job_template_id \ --data '{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "reviewer_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids":"abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_template_locales/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: locale id type: string example: abcd1234cdef1234abcd1234cdef1234 user_ids: description: Array of user ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 required: - locale_id x-cli-version: 2.6.8 /projects/{project_id}/job_templates/{job_template_id}/locales/{job_template_locale_id}: get: summary: Get a single job template locale description: Get a single job template locale for a given job template. operationId: job_template_locale/show tags: - Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_template_locales show \ --project_id \ --job_template_id \ --job_template_locale_id \ --branch my-feature-branch \ --access_token x-cli-version: 2.6.8 patch: summary: Update a job template locale description: Update an existing job template locale. operationId: job_template_locale/update tags: - Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","locale_id":"abcd1234cdef1234abcd1234cdef1234","user_ids":["abcd1234cdef1234abcd1234cdef1234"],"reviewer_ids":["abcd1234cdef1234abcd1234cdef1234"], "translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_template_locales update \ --project_id \ --job_template_id \ --job_template_locale_id \ --data '{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "reviewer_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_template_locale/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: locale id type: string example: abcd1234cdef1234abcd1234cdef1234 user_ids: description: Array of user ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 x-cli-version: 2.6.8 delete: summary: Delete a job template locale description: Delete an existing job template locale. operationId: job_template_locale/delete tags: - Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/job_templates/:job_template_id/locales/:job_template_locale_id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_template_locales delete \ --project_id \ --job_template_id \ --job_template_locale_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/annotations: get: summary: List job annotations description: Retrieve a list of annotations for a job. operationId: job_annotations/list tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/job_id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_annotation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/annotations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET - lang: CLI v2 source: |- phrase job_annotations list \ --project_id \ --job_id \ --access_token x-cli-version: '2.43' /projects/{project_id}/jobs/{job_id}/annotations/{id}: patch: summary: Create/Update a job annotation description: Create or update an annotation for a job. If the annotation already exists, it will be updated; otherwise, a new annotation will be created. operationId: job_annotation/update tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - name: id in: path required: true description: Name of the annotation to set or update. schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_annotation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/annotations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"value":"Some value..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_annotations update \ --project_id \ --job_id \ --id \ --data '{"value": "Some value..."}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_annotation/update/parameters properties: value: description: Annotation value type: string example: Some value... branch: description: Branch name of the job type: string example: my-feature-branch x-cli-version: '2.43' delete: summary: Delete a job annotation description: Delete an annotation for a job. operationId: job_annotation/delete tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/job_id' - name: id in: path required: true description: Name of the annotation to delete. schema: type: string responses: '204': description: No Content headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/annotations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase job_annotations delete \ --project_id \ --job_id \ --id \ --access_token x-cli-version: '2.43' /projects/{project_id}/jobs/{job_id}/locales/{job_locale_id}/annotations: get: summary: List job locale annotations description: Retrieve a list of annotations for a job locale. operationId: job_locale_annotations/list tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/job_locale_id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_annotation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:job_locale_id/annotations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X GET - lang: CLI v2 source: |- phrase job_locale_annotations list \ --project_id \ --job_id \ --job_locale_id \ --access_token x-cli-version: '2.43' /projects/{project_id}/jobs/{job_id}/locales/{job_locale_id}/annotations/{id}: patch: summary: Create/Update a job locale annotation description: Create or update an annotation for a job locale. If the annotation already exists, it will be updated; otherwise, a new annotation will be created. operationId: job_locale_annotation/update tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/job_locale_id' - name: id in: path required: true description: Name of the annotation to set or update. schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_annotation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:job_locale_id/annotations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"value":"Some value..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_locale_annotations update \ --project_id \ --job_id \ --job_locale_id \ --id \ --data '{"value": "Some value..."}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_annotation/update/parameters properties: value: description: Annotation value type: string example: Some value... branch: description: Branch name of the job type: string example: my-feature-branch x-cli-version: '2.43' delete: summary: Delete a job locale annotation description: Delete an annotation for a job locale. operationId: job_locale_annotation/delete tags: - Job Annotations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/branch' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/job_locale_id' - name: id in: path required: true description: Name of the annotation to delete. schema: type: string responses: '204': description: No Content headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/locales/:job_locale_id/annotations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase job_locale_annotations delete \ --project_id \ --job_id \ --job_locale_id \ --id \ --access_token x-cli-version: '2.43' /projects/{project_id}/variables: get: summary: List variables description: List all variables for the current project. operationId: variables/list tags: - Variables parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/variable' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/variables" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase variables list \ --project_id \ --access_token x-cli-version: '2.5' post: summary: Create a variable description: Create a new variable. operationId: variable/create tags: - Variables parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/variable' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/variables" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"MY_VARIABLE","value":"Hello World"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase variables create \ --project_id \ --data '{"name":"MY_VARIABLE", "value":"Hello World"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: variable/create/parameters required: - name properties: name: description: Name of the variable type: string example: MY_VARIABLE value: description: Value of the variable type: string example: Hello World x-cli-version: '2.5' /projects/{project_id}/variables/{name}: get: summary: Get a single variable description: Get details on a single variable for a given project. operationId: variable/show tags: - Variables parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/variable' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/variables/:name" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase variables show \ --project_id \ --name \ --access_token x-cli-version: '2.5' patch: summary: Update a variable description: Update an existing variable. operationId: variable/update tags: - Variables parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/variable' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/variables/:name" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"MY_VARIABLE","value":"Hello World"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase variables update \ --project_id \ --name \ --data '{"name":"MY_VARIABLE","value":"Hello World"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: variable/update/parameters properties: name: description: Name of the variable type: string example: MY_VARIABLE value: description: Value of the variable type: string example: Hello World x-cli-version: '2.5' delete: summary: Delete a variable description: Delete an existing variable. operationId: variable/delete tags: - Variables parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/variables/:name" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase variables delete \ --project_id \ --name \ --access_token x-cli-version: '2.5' /projects/{project_id}/branches: get: summary: List branches description: List all branches the of the current project. operationId: branches/list tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/branch' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase branches list \ --project_id \ --access_token x-cli-version: '2.5' post: summary: Create a branch description: | Create a new branch. *Note: Creating a new branch may take several minutes depending on the project size.* operationId: branch/create tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/branch' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"my-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase branches create \ --project_id \ --data '{"name":"my-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: branch/create/parameters required: - name properties: name: description: Name of the branch type: string example: my-branch x-cli-version: '2.5' /projects/{project_id}/branches/{name}: get: summary: Get a single branch description: Get details on a single branch for a given project. operationId: branch/show tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/branch' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase branches show \ --project_id \ --name \ --access_token x-cli-version: '2.5' patch: summary: Update a branch description: Update an existing branch. operationId: branch/update tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/branch' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"my-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase branches update \ --project_id \ --name \ --data '{"name":"my-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: branch/update/parameters properties: name: description: Name of the branch type: string example: my-branch x-cli-version: '2.5' delete: summary: Delete a branch description: Delete an existing branch. operationId: branch/delete tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase branches delete \ --project_id \ --name \ --access_token x-cli-version: '2.5' /projects/{project_id}/branches/{name}/merge: patch: summary: Merge a branch description: | Merge an existing branch. *Note: Merging a branch may take several minutes depending on diff size.* operationId: branch/merge tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name/merge" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"strategy":"use_main"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase branches merge \ --project_id \ --name \ --data '{"strategy":"use_main"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: branch/merge/parameters properties: strategy: description: strategy used for merge conflicts, use_main or use_branch type: string example: use_main /projects/{project_id}/branches/{name}/sync: patch: summary: Sync a branch description: | Sync an existing branch. *Note: Only available for branches created with new branching.* operationId: branch/sync tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '200': description: OK headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name/sync" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"strategy":"use_main"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase branches sync \ --project_id \ --name \ --data '{"strategy":"use_main"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: branch/sync/parameters properties: strategy: description: strategy used for conflicts, use_main or use_branch type: string example: use_main /projects/{project_id}/branches/{name}/compare: get: summary: Compare branches description: | Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size. Consider using the `POST /compare` endpoint for creating comparison asynchronously.* operationId: branch/compare tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' - description: Name of the branch example: my-branch name: name in: query schema: type: string responses: '200': description: OK headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409' description: A comparison is already in progress for this branch. '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name/compare?name=my-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase branches compare \ --project_id \ --name \ --name my-branch \ --access_token x-cli-version: '2.5' post: summary: Create comparison (async.) description: | Create a branch comparison asynchronously. operationId: branch/comparison/create tags: - Branches parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' responses: '202': $ref: '#/components/responses/202' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409' description: An asynchronous comparison is already in progress for this branch. '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/branches/:name/compare" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"direction":"merge"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase branches create_comparison \ --project_id \ --name \ --access_token requestBody: required: true content: application/json: schema: type: object title: branch/create_comparison/parameters properties: direction: description: direction of comparison, possible values are sync or merge (only for v2 branches) type: string example: merge default: merge /accounts: get: summary: List accounts description: List all accounts the current user has access to. operationId: accounts/list tags: - Accounts parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/account' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase accounts list \ --access_token x-cli-version: '2.5' /accounts/{id}: get: summary: Get a single account description: Get details on a single account. operationId: account/show tags: - Accounts parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase accounts show \ --id \ --access_token x-cli-version: '2.5' /user: get: summary: Show current User description: Show details for current User. operationId: show/user tags: - Users parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/user' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/user" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase shows user \ --access_token x-cli-version: '2.5' /accounts/{account_id}/members: get: summary: List members 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 `team.manage`. operationId: members/list tags: - Members parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/member' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/members" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase members list \ --account_id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/members/{id}: get: summary: Get single member description: Get details on a single user in the account. Access token scope must include `team.manage`. operationId: member/show tags: - Members parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/member' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/members/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase members show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a member description: Update user permissions in the account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. Access token scope must include `team.manage`. operationId: member/update tags: - Members parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/member' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/members/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -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}}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase members update \ --account_id \ --id \ --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}"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: member/update/parameters properties: strategy: 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. type: string example: set role: description: Member role, can be any of of Admin, ProjectManager, Developer, Designer, Translator type: string example: Developer project_ids: description: 'List of project ids the user has access to. ' type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 locale_ids: description: List of locale ids the user has access to. type: string example: abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235 default_locale_codes: description: List of default locales for the user. type: array items: type: string example: - en - fi space_ids: description: List of spaces the user is assigned to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 permissions: description: Additional permissions depending on member role. Available permissions are `create_upload` and `review_translations` type: object additionalProperties: type: string example: create_upload: true review_translations: true x-cli-version: '2.5' delete: summary: Remove a user from the account 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 `team.manage`. operationId: member/delete tags: - Members parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/members/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase members delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/members/{id}: patch: summary: Update a member's project settings description: Update user settings in the project. Access token scope must include `team.manage`. operationId: member/update_settings tags: - Members parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/member_project_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/members/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"project_role":"Developer","locale_ids":["fff565db236400772368235db2c6117e","fff565db236400772368235db2c6117f"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase members update_settings \ --project_id \ --id \ --data '{"project_role":"Developer","locale_ids":["fff565db236400772368235db2c6117e","fff565db236400772368235db2c6117f"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: member/update_settings/parameters properties: project_role: description: Member role, can be any of of Manager, Developer, Translator type: string example: Developer locale_ids: description: List of locale ids the user has access to. type: array items: type: string example: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 x-cli-version: '2.5' /projects/{project_id}/screenshots: get: summary: List screenshots description: List all screenshots for the given project. operationId: screenshots/list tags: - Screenshots parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: filter by key example: abcd1234cdef1234abcd1234cdef1234 name: key_id in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/screenshot' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase screenshots list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a screenshot description: Create a new screenshot. operationId: screenshot/create tags: - Screenshots parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/screenshot' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F branch=my-feature-branch \ -F name=A%20screenshot%20name \ -F description=A%20screenshot%20description \ -F filename=@/path/to/my/screenshot.png - lang: CLI v2 source: |- phrase screenshots create \ --project_id \ --branch "my-feature-branch" --name "A screenshot name" --description "A screenshot description" --filename "/path/to/my/screenshot.png" \ --access_token requestBody: required: true content: multipart/form-data: schema: type: object title: screenshot/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Name of the screenshot type: string example: A screenshot name description: description: Description of the screenshot type: string example: A screenshot description filename: description: Screenshot file type: string format: binary example: /path/to/my/screenshot.png x-cli-version: '2.5' /projects/{project_id}/screenshots/{id}: get: summary: Get a single screenshot description: Get details on a single screenshot for a given project. operationId: screenshot/show tags: - Screenshots parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/screenshot' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase screenshots show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a screenshot description: Update an existing screenshot. operationId: screenshot/update tags: - Screenshots parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/screenshot' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -F branch=my-feature-branch \ -F name=A%20screenshot%20name \ -F description=A%20screenshot%20description \ -F filename=@/path/to/my/screenshot.png - lang: CLI v2 source: |- phrase screenshots update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "name": "A screenshot name", "description": "A screenshot description", "filename":"/path/to/my/screenshot.png"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: screenshot/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Name of the screenshot type: string example: A screenshot name description: description: Description of the screenshot type: string example: A screenshot description filename: description: Screenshot file type: string format: binary example: /path/to/my/screenshot.png x-cli-version: '2.5' delete: summary: Delete a screenshot description: Delete an existing screenshot. operationId: screenshot/delete tags: - Screenshots parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/screenshots/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase screenshots delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /accounts/{account_id}/glossaries/{glossary_id}/terms: get: summary: List terms description: 'List all terms in term bases (previously: glossary) that the current user has access to.' operationId: glossary_terms/list tags: - Glossary Terms parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/glossary_term' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase glossary_terms list \ --account_id \ --glossary_id \ --access_token x-cli-version: '2.5' post: summary: Create a term description: 'Create a new term in a term base (previously: glossary).' operationId: glossary_term/create tags: - Glossary Terms parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/glossary_term' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"term":"MyCompany","description":"Use this when refering to our company","translatable":true,"case_sensitive":true}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossary_terms create \ --account_id \ --glossary_id \ --data '{"term":"MyCompany", "description": "Use this when refering to our company", "translatable":true, "case_sensitive":true}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary_term/create/parameters required: - term properties: term: description: Glossary term type: string example: MyCompany description: description: Description of term type: string example: Use this when refering to our company translatable: description: Indicates whether the term should be used for all languages or can be translated type: boolean example: true case_sensitive: description: Indicates whether the term is case sensitive type: boolean example: true x-cli-version: '2.5' /accounts/{account_id}/glossaries/{glossary_id}/terms/{id}: get: summary: Get a single term description: 'Get details for a single term in the term base (previously: glossary).' operationId: glossary_term/show tags: - Glossary Terms parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/glossary_term' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase glossary_terms show \ --account_id \ --glossary_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a term description: 'Update an existing term in a term base (previously: glossary).' operationId: glossary_term/update tags: - Glossary Terms parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/glossary_term' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"term":"MyCompany","description":"Use this when refering to our company","translatable":true,"case_sensitive":true}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase glossary_terms update \ --account_id \ --glossary_id \ --id \ --data '{"term":"MyCompany", "description": "Use this when refering to our company", "translatable":true, "case_sensitive":true}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: glossary_term/update/parameters properties: term: description: Glossary term type: string example: MyCompany description: description: Description of term type: string example: Use this when refering to our company translatable: description: Indicates whether the term should be used for all languages or can be translated type: boolean example: true case_sensitive: description: Indicates whether the term is case sensitive type: boolean example: true x-cli-version: '2.5' delete: summary: Delete a term description: 'Delete an existing term in a term base (previously: glossary).' operationId: glossary_term/delete tags: - Glossary Terms parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/glossary_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/glossaries/:glossary_id/terms/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase glossary_terms delete \ --account_id \ --glossary_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/tags: get: summary: List tags description: List all tags for the given project. operationId: tags/list tags: - Tags parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: excludes tags generated by the system, e.g. job, upload or figma tags name: exclude_system_tags example: true in: query schema: type: boolean - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/tag' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/tags?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase tags list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a tag description: Create a new tag. operationId: tag/create tags: - Tags parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/tag_with_stats' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/tags" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","name":"my-feature"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase tags create \ --project_id \ --data '{"branch":"my-feature-branch", "name":"my-feature"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: tag/create/parameters required: - name properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Name of the tag type: string example: my-feature x-cli-version: '2.5' /projects/{project_id}/tags/{name}: get: summary: Get a single tag description: Get details and progress information on a single tag for a given project. operationId: tag/show tags: - Tags parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' - description: omit statistics in the response name: omit_statistics example: true in: query schema: type: boolean - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/tag_with_stats' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/tags/:name?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase tags show \ --project_id \ --name \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' delete: summary: Delete a tag description: Delete an existing tag. operationId: tag/delete tags: - Tags parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/name' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/tags/:name" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase tags delete \ --project_id \ --name \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/blacklisted_keys: get: summary: List blocked keys description: List all rules for blocking keys for the given project. operationId: blacklisted_keys/list tags: - Blacklisted Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/blacklisted_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/blacklisted_keys" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase blacklisted_keys list \ --project_id \ --access_token x-cli-version: '2.5' post: summary: Create a blocked key description: Create a new rule for blocking keys. operationId: blacklisted_key/create tags: - Blacklisted Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/blacklisted_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/blacklisted_keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"date.formats.*"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase blacklisted_keys create \ --project_id \ --data '{"name":"'date.formats.*'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: blacklisted_key/create/parameters required: - name properties: name: description: Blocked key name type: string example: date.formats.* x-cli-version: '2.5' /projects/{project_id}/blacklisted_keys/{id}: get: summary: Get a single blocked key description: Get details on a single rule for blocking keys for a given project. operationId: blacklisted_key/show tags: - Blacklisted Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/blacklisted_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase blacklisted_keys show \ --project_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update a blocked key description: Update an existing rule for blocking keys. operationId: blacklisted_key/update tags: - Blacklisted Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/blacklisted_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"date.formats.*"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase blacklisted_keys update \ --project_id \ --id \ --data '{"name":"'date.formats.*'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: blacklisted_key/update/parameters properties: name: description: Blocked key name type: string example: date.formats.* x-cli-version: '2.5' delete: summary: Delete a blocked key description: Delete an existing rule for blocking keys. operationId: blacklisted_key/delete tags: - Blacklisted Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/blacklisted_keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase blacklisted_keys delete \ --project_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys: get: summary: List keys description: List all keys for the given project. Alternatively you can POST requests to /search. operationId: keys/list tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: 'Sort by field. Can be one of: name, created_at, updated_at.' example: updated_at name: sort in: query schema: type: string - description: 'Order direction. Can be one of: asc, desc.' example: desc name: order in: query schema: type: string - $ref: '#/components/parameters/q' - description: Locale used to determine the translation state of a key when filtering for untranslated or translated keys. example: abcd1234abcd1234abcd1234abcd1234 name: locale_id in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase keys list \ --project_id \ --branch my-feature-branch \ --sort updated_at \ --order desc \ --query 'mykey* translated:true' \ --locale_id abcd1234abcd1234abcd1234abcd1234 \ --access_token x-cli-version: '2.5' post: summary: Create a key description: Create a new key. operationId: key/create tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/translation_key_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F branch=my-feature-branch \ -F name=home.index.headline \ -F description=Some%20description%20worth%20knowing... \ -F name_plural=home.index.headlines \ -F data_type=number \ -F tags=awesome-feature,needs-proofreading \ -F max_characters_allowed=140 \ -F screenshot=@/path/to/my/screenshot.png -F custom_metadata[property]=value - lang: CLI v2 source: |- phrase keys create \ --project_id \ --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"}}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: key/create/parameters required: - name properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Key name type: string example: home.index.headline description: description: Key description (usually includes contextual information for translators) type: string example: Some description worth knowing... plural: description: Indicates whether key supports pluralization type: boolean example: null use_ordinal_rules: description: Indicates whether key uses ordinal rules for pluralization type: boolean example: null name_plural: description: Plural name for the key (used in some file formats, e.g. Gettext) type: string example: home.index.headlines data_type: description: 'Type of the key. Can be one of the following: string, number, boolean, array, markdown.' type: string example: number tags: description: List of tags separated by comma to be associated with the key. type: string example: awesome-feature,needs-proofreading max_characters_allowed: description: Max. number of characters translations for this key can have. type: integer example: 140 screenshot: description: Screenshot/image for the key. This parameter is deprecated. Please use the Screenshots endpoint instead. type: string format: binary example: /path/to/my/screenshot.png deprecated: true remove_screenshot: description: Indicates whether the screenshot will be deleted. This parameter is deprecated. Please use the Screenshots endpoint instead. type: boolean example: null deprecated: true unformatted: description: Indicates whether the key should be exported as "unformatted". Supported by Android XML and other formats. type: boolean example: null default_translation_content: description: Creates a translation in the default locale with the specified content type: string example: Default translation content autotranslate: description: Indicates whether the key should be autotranslated to other locales based on the copy provided in `default_translation_content`. type: boolean example: null xml_space_preserve: description: Indicates whether the key should be exported with "xml:space=preserve". Supported by several XML-based formats. type: boolean example: null original_file: description: Original file attribute. Used in some formats, e.g. XLIFF. type: string example: null localized_format_string: description: NSStringLocalizedFormatKey attribute. Used in .stringsdict format. type: string example: null localized_format_key: description: NSStringLocalizedFormatKey attribute. Used in .stringsdict format. type: string example: null custom_metadata: description: Custom metadata property name and value pairs to be associated with key. type: object example: fruit: Apple vegetable: Tomato x-cli-version: '2.5' delete: summary: Delete collection of keys 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. operationId: keys/delete-collection tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - $ref: '#/components/parameters/q' - description: Locale used to determine the translation state of a key when filtering for untranslated or translated keys. example: abcd1234abcd1234abcd1234abcd1234 name: locale_id in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_resources' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch","q":"mykey* translated:true","locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys delete-collection \ --project_id \ --branch my-feature-branch \ --query 'mykey* translated:true' \ --locale_id abcd1234abcd1234abcd1234abcd1234 \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys/search: post: summary: Search keys description: Search keys for the given project matching query. operationId: keys/search tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation_key' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/search" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","sort":"updated_at","order":"desc","q":"mykey* translated:true","locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys search \ --project_id \ --data '{"branch":"my-feature-branch", "sort":"updated_at", "order":"desc", "q":"'mykey* translated:true'", "locale_id":"abcd1234abcd1234abcd1234abcd1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: keys/search/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch sort: description: 'Sort by field. Can be one of: name, created_at, updated_at.' type: string example: updated_at order: description: 'Order direction. Can be one of: asc, desc.' type: string example: desc q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: * `ids:key_id,...` for queries on a comma-separated list of ids * `name:key_name,...` for text queries on a comma-seperated list of exact key names - spaces, commas, and colons need to be escaped with double backslashes * `tags:tag_name,...` to filter for keys with certain comma-seperated list of tags * `uploads:upload_id,...` to filter for keys with certain comma-seperated list of uploads * `job:{true|false}` to filter for keys mentioned in an active job * `translated:{true|false}` for translation status (also requires `locale_id` to be specified) * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries * `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads Find more examples [here](/en/api/strings/usage-examples). Please note: If `tags` are added to filter the search, the search will be limited to a maximum of 65,536 tagged keys. type: string example: mykey* translated:true locale_id: description: Locale used to determine the translation state of a key when filtering for untranslated or translated keys. type: string example: abcd1234abcd1234abcd1234abcd1234 x-cli-version: '2.5' /projects/{project_id}/keys/{id}: get: summary: Get a single key description: Get details on a single key for a given project. operationId: key/show tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_key_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase keys show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a key description: Update an existing key. operationId: key/update tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_key_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -F branch=my-feature-branch \ -F name=home.index.headline \ -F description=Some%20description%20worth%20knowing... \ -F name_plural=home.index.headlines \ -F data_type=number \ -F tags=awesome-feature,needs-proofreading \ -F max_characters_allowed=140 \ -F screenshot=@/path/to/my/screenshot.png -F custom_metadata[property]=value - lang: CLI v2 source: |- phrase keys update \ --project_id \ --id \ --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"}}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: key/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: Key name type: string example: home.index.headline description: description: Key description (usually includes contextual information for translators) type: string example: Some description worth knowing... plural: description: Indicates whether key supports pluralization type: boolean example: null use_ordinal_rules: description: Indicates whether key uses ordinal rules for pluralization type: boolean example: null name_plural: description: Plural name for the key (used in some file formats, e.g. Gettext) type: string example: home.index.headlines data_type: description: 'Type of the key. Can be one of the following: string, number, boolean, array, markdown.' type: string example: number tags: description: List of tags separated by comma to be associated with the key. type: string example: awesome-feature,needs-proofreading max_characters_allowed: description: Max. number of characters translations for this key can have. type: integer example: 140 screenshot: description: Screenshot/image for the key. This parameter is deprecated. Please use the Screenshots endpoint instead. type: string format: binary example: /path/to/my/screenshot.png deprecated: true remove_screenshot: description: Indicates whether the screenshot will be deleted. This parameter is deprecated. Please use the Screenshots endpoint instead. type: boolean example: null deprecated: true unformatted: description: Indicates whether the key should be exported as "unformatted". Supported by Android XML and other formats. type: boolean example: null xml_space_preserve: description: Indicates whether the key should be exported with "xml:space=preserve". Supported by several XML-based formats. type: boolean example: null original_file: description: Original file attribute. Used in some formats, e.g. XLIFF. type: string example: null localized_format_string: description: NSStringLocalizedFormatKey attribute. Used in .stringsdict format. type: string example: null localized_format_key: description: NSStringLocalizedFormatKey attribute. Used in .stringsdict format. type: string example: null custom_metadata: 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. type: object example: fruit: Apple vegetable: Tomato x-cli-version: '2.5' delete: summary: Delete a key description: Delete an existing key. operationId: key/delete tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys/tag: patch: summary: Add tags to collection of keys description: Tags all keys matching query. Same constraints as list. operationId: keys/tag tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_resources' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/tag" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"mykey* translated:true","locale_id":"abcd1234abcd1234abcd1234abcd1234","tags":"landing-page,release-1.2"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys tag \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'mykey* translated:true'", "locale_id":"abcd1234abcd1234abcd1234abcd1234", "tags":"landing-page,release-1.2"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: keys/tag/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: * `ids:key_id,...` for queries on a comma-separated list of ids * `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes * `tags:tag_name` to filter for keys with certain tags * `translated:{true|false}` for translation status (also requires `locale_id` to be specified) * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries * `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads Find more examples [here](/en/api/strings/usage-examples). type: string example: mykey* translated:true locale_id: description: Locale used to determine the translation state of a key when filtering for untranslated or translated keys. type: string example: abcd1234abcd1234abcd1234abcd1234 tags: description: Tag or comma-separated list of tags to add to the matching collection of keys type: string example: landing-page,release-1.2 x-cli-version: '2.5' /projects/{project_id}/keys/untag: patch: summary: Remove tags from collection of keys description: Removes specified tags from keys matching query. operationId: keys/untag tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_resources' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/untag" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"mykey* translated:true","locale_id":"abcd1234abcd1234abcd1234abcd1234","tags":"landing-page,release-1.2"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys untag \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'mykey* translated:true'", "locale_id":"abcd1234abcd1234abcd1234abcd1234", "tags":"landing-page,release-1.2"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: keys/untag/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: * `ids:key_id,...` for queries on a comma-separated list of ids * `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes * `tags:tag_name` to filter for keys with certain tags * `translated:{true|false}` for translation status (also requires `locale_id` to be specified) * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries * `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads Find more examples [here](/en/api/strings/usage-examples). type: string example: mykey* translated:true locale_id: description: Locale used to determine the translation state of a key when filtering for untranslated or translated keys. type: string example: abcd1234abcd1234abcd1234abcd1234 tags: description: Tag or comma-separated list of tags to remove from the matching collection of keys type: string example: landing-page,release-1.2 x-cli-version: '2.5' /projects/{project_id}/keys/exclude: patch: summary: Exclude a locale on a collection of keys description: Exclude a locale on keys matching query. Same constraints as list. operationId: keys/exclude tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_resources' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/exclude" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"mykey* translated:true","target_locale_id":"abcd1234abcd1234abcd1234abcd1234","tags":"landing-page,release-1.2"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys exclude \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'mykey* translated:true'", "target_locale_id":"abcd1234abcd1234abcd1234abcd1234", "tags":"landing-page,release-1.2"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: keys/exclude/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - `ids:key_id,...` for queries on a comma-separated list of ids - `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - `tags:tag_name` to filter for keys with certain tags - `translated:{true|false}` for translation status (also requires `locale_id` to be specified) - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries - `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads Find more examples [here](/en/api/strings/usage-examples). type: string example: mykey* translated:true target_locale_id: description: Exclude translations in locale type: string example: abcd1234abcd1234abcd1234abcd1234 tags: description: Tag or comma-separated list of tags to add to the matching collection of keys type: string example: landing-page,release-1.2 x-cli-version: '2.5' /projects/{project_id}/keys/include: patch: summary: Include a locale on a collection of keys description: Include a locale on keys matching query. Same constraints as list. operationId: keys/include tags: - Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_resources' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/keys/include" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"mykey* translated:true","target_locale_id":"abcd1234abcd1234abcd1234abcd1234","tags":"landing-page,release-1.2"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase keys include \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'mykey* translated:true'", "target_locale_id":"abcd1234abcd1234abcd1234abcd1234", "tags":"landing-page,release-1.2"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: keys/include/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: * `ids:key_id,...` for queries on a comma-separated list of ids * `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes * `tags:tag_name` to filter for keys with certain tags * `translated:{true|false}` for translation status (also requires `locale_id` to be specified) * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries * `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads Find more examples [here](/en/api/strings/usage-examples). type: string example: mykey* translated:true target_locale_id: description: Include translations in locale type: string example: abcd1234abcd1234abcd1234abcd1234 tags: description: Tag or comma-separated list of tags to add to the matching collection of keys type: string example: landing-page,release-1.2 x-cli-version: '2.5' /projects/{project_id}/orders: get: summary: List orders description: List all orders for the given project. operationId: orders/list tags: - Orders parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation_order' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/orders?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase orders list \ --project_id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' post: summary: Create a new order description: Create a new order. Access token scope must include `orders.create`. operationId: order/create tags: - Orders parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/translation_order' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/orders" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -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"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase orders create \ --project_id \ --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"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: order/create/parameters required: - name - lsp properties: branch: description: specify the branch to use type: string example: my-feature-branch name: description: 'the name of the order, default name is: Translation order from ''current datetime''' type: string example: Welcome message translations lsp: description: Name of the LSP that should process this order. Can be one of gengo, textmaster. type: string example: textmaster source_locale_id: description: Source locale for the order. Can be the name or id of the source locale. Preferred is id. type: string example: abcd1234abcd1234abcd1234abcd1234 target_locale_ids: 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. type: array items: type: string example: - 1234abcd1234abcd1234abcd1234abcd - abcd1234abcd1234abcd1234abcd1234 translation_type: 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)' type: string example: premium tag: description: Tag you want to order translations for. type: string example: my-awesome-feature message: description: Message that is displayed to the translators for description. type: string example: Please make everything sound really nice :) styleguide_id: description: Style guide for translators to be sent with the order. type: string example: 1234abcd1234abcd1234abcd1234abcd unverify_translations_upon_delivery: description: Unverify translations upon delivery. type: boolean example: null include_untranslated_keys: description: Order translations for keys with untranslated content in the selected target locales. type: boolean example: null include_unverified_translations: description: Order translations for keys with unverified content in the selected target locales. type: boolean example: null category: description: Category to use (required for orders processed by TextMaster). type: string example: C021 quality: description: Extra proofreading option to ensure consistency in vocabulary and style. Only available for orders processed by TextMaster. type: boolean example: null priority: description: Indicates whether the priority option should be ordered which decreases turnaround time by 30%. Available only for orders processed by TextMaster. type: boolean example: null x-cli-version: '2.5' /projects/{project_id}/orders/{id}: get: summary: Get a single order description: Get details on a single order. operationId: order/show tags: - Orders parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_order' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/orders/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase orders show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' delete: summary: Cancel an order description: Cancel an existing order. Must not yet be confirmed. operationId: order/delete tags: - Orders parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/orders/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase orders delete \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/orders/{id}/confirm: patch: summary: Confirm an order description: Confirm an existing order and send it to the provider for translation. Same constraints as for create. operationId: order/confirm tags: - Orders parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_order' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/orders/:id/confirm" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase orders confirm \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: order/confirm/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/quality_performance_score: post: summary: Get Translation Quality description: Retrieves the quality scores for your Strings translations. Returns a score, measured by Phrase QPS operationId: quality_performance_score/list tags: - Quality performance score parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/quality_performance_score' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' '504': $ref: '#/components/responses/504' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/quality_performance_score" \ -X POST \ -u USERNAME_OR_ACCESS_TOKEN \ -d '{"translation_ids":["translation_id_1", "translation_id_2"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase quality_performance_score list \ --project_id \ --data '{"translation_ids":["translation_id_1", "translation_id_2"]}' \ --access_token requestBody: required: true content: application/json: schema: type: object properties: translation_ids: description: Translation ids you want to get the quality performance score for type: array items: type: string example: translation_id_1 x-cli-version: '2.20' /accounts/{account_id}/repo_syncs: get: summary: Get Repo Syncs description: Lists all Repo Syncs from an account operationId: repo_sync/list tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/repo_sync' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs"\ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase repo_syncs list \ --account_id abcd1234 \ --access_token x-cli-version: '2.24' post: summary: Create a Repo Sync description: Create a new Repo Sync. operationId: repo_sync/create tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/repo_sync' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "project_id": "abcd1234abcd1234abcd1234abcd1234", "git_provider": "github", "connection_type": "github_app", "repo_name": "my-org/my-repo", "base_branch": "main" }' - lang: CLI v2 source: |- phrase repo_syncs create \ --account_id abcd1234 \ --data '{"project_id":"abcd1234abcd1234abcd1234abcd1234","git_provider":"github","connection_type":"github_app","repo_name":"my-org/my-repo","base_branch":"main"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: repo_sync/create/parameters required: - project_id - repo_name - connection_type properties: project_id: description: ID of the project to connect the Repo Sync to. type: string example: abcd1234abcd1234abcd1234abcd1234 git_provider: description: The Git provider to use. default: github type: string enum: - github - gitlab - bitbucket example: github connection_type: description: |- The authentication method used to connect to the Git provider. Defaults to `token` if not specified. Valid values: - `token` — Personal access token stored on the Repo Sync. Supported by all providers. - `github_app` — Authenticate via the Phrase GitHub App installation on your account. GitHub only. The account must already have the GitHub App installed; if not, the response will include a `github_app_installation_url`. - `self_hosted` — Token-based auth for self-hosted Git instances. Requires `custom_api_endpoint`. type: string enum: - token - github_app - self_hosted example: github_app repo_name: description: Full repository name including the owner, e.g. `my-org/my-repo`. type: string example: my-org/my-repo base_branch: description: The default branch to use for imports and exports. type: string example: main pr_branch: description: Branch that translations are exported to before opening a pull request. If omitted, exports go directly to `base_branch`. type: string example: phrase-translations auto_import: description: Enable automatic import of translations triggered by pushes to the repository. type: boolean example: false access_token: description: Personal access token for the Git provider. Required when `connection_type` is `token` or `self_hosted`. Not used for `github_app`. type: string example: ghp_xxxxxxxxxxxxxxxxxxxx custom_api_endpoint: description: Custom API endpoint URL for self-hosted Git instances. Required when `connection_type` is `self_hosted`. type: string example: https://git.example.com/api/v4 x-cli-version: '2.60' /accounts/{account_id}/repo_syncs/{id}: get: summary: Get a single Repo Sync description: Shows a single Repo Sync setting. operationId: repo_sync/show tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/56ef78"\ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase repo_syncs show \ --id \ --account_id abcd1234 \ --access_token x-cli-version: '2.24' /accounts/{account_id}/repo_syncs/{id}/export: post: summary: Export to code repository description: |- Export translations from Phrase Strings to repository provider according to the .phrase.yml file within the code repository. *Export is done asynchronously and may take several seconds depending on the project size.* operationId: repo_sync/export tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' requestBody: required: false content: application/json: schema: type: object title: repo_sync/export/parameters properties: pr_branch: description: Source branch to open a pull request from type: string example: my-feature-branch branch: description: Strings branch to export from type: string example: my-strings-branch responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync_event' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/export" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -H 'Content-Type: application/json' \ -d '{"pr_branch":"my-feature-branch", "branch":"my-strings-branch"}' - lang: CLI v2 source: |- phrase repo_syncs export \ --id \ --data '{"pr_branch":"my-feature-branch", "branch":"my-strings-branch"}' \ --access_token /accounts/{account_id}/repo_syncs/{id}/import: post: summary: Import from code repository description: |- Import translations from repository provider to Phrase Strings according to the .phrase.yml file within the code repository. _Import is done asynchronously and may take several seconds depending on the project size._ operationId: repo_sync/import tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' requestBody: required: false content: application/json: schema: type: object title: repo_sync/import/parameters properties: repository_branch: description: Branch to import from type: string example: my-feature-branch branch: description: Strings branch to import to type: string example: my-strings-branch responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync_event' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/import"\ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"repository_branch":"my-feature-branch", "branch":"my-strings-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase repo_syncs import \ --id \ --data '{"repository_branch":"my-feature-branch", "branch":"my-strings-branch"}' \ --access_token /accounts/{account_id}/repo_syncs/{id}/events: get: summary: Repository Syncs History description: |- Get the history of a single Repo Sync. The history includes all imports and exports performed by the Repo Sync. operationId: repo_sync_event/list tags: - Repo Sync Events parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/repo_sync_event' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/56ef78/events"\ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase repo_sync_events list \ --id \ --account_id abcd1234 \ --access_token x-cli-version: '2.24' /accounts/{account_id}/repo_syncs/{repo_sync_id}/events/{id}: get: summary: Get a single Repo Sync Event description: Shows a single Repo Sync event. operationId: repo_sync_event/show tags: - Repo Sync Events parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/repo_sync_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync_event' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/56ef78/events/78dfgj"\ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase repo_sync_events show \ --id \ --repo_sync_id \ --account_id abcd1234 \ --access_token x-cli-version: '2.24' /accounts/{account_id}/repo_syncs/{id}/deactivate: post: summary: Deactivate a Repo Sync description: |- Deactivate an active Repo Sync. Import and export can't be performed on deactivated syncs and the pushes to the repository won't trigger the import to Phrase. operationId: repo_sync/deactivate tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/deactivate"\ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase repo_syncs deactivate \ --id \ --access_token x-cli-version: '2.24' /accounts/{account_id}/repo_syncs/{id}/activate: post: summary: Activate a Repo Sync description: |- Activate a deactivated Repo Sync. Active syncs can be used to import and export translations, and imports to Phrase are automatically triggered by pushes to the repository, if configured. operationId: repo_sync/activate tags: - Repo Syncs parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/repo_sync' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/ab12cd34/repo_syncs/45ef6789/activate"\ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase repo_syncs activate \ --id \ --access_token x-cli-version: '2.24' /accounts/{account_id}/spaces: get: summary: List Spaces description: List all Spaces for the given account. operationId: spaces/list tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/space' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase spaces list \ --account_id \ --access_token x-cli-version: '2.5' post: summary: Create a Space description: Create a new Space. operationId: space/create tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/space' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"My Android Projects"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase spaces create \ --account_id \ --data '{"name": "My Android Projects"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: space/create/parameters required: - name properties: name: description: Name of the space type: string example: My Android Projects x-cli-version: '2.5' /accounts/{account_id}/spaces/{id}: get: summary: Get Space description: Show the specified Space. operationId: space/show tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/space' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase spaces show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update Space description: Update the specified Space. operationId: space/update tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/space' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"My Android Projects"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase spaces update \ --account_id \ --id \ --data '{"name": "My Android Projects"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: space/update/parameters properties: name: description: New name of the space type: string example: My Android Projects x-cli-version: '2.5' delete: summary: Delete Space description: Delete the specified Space. operationId: space/delete tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase spaces delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/spaces/{space_id}/projects: get: summary: List Projects in Space description: List all projects for the specified Space. operationId: spaces/projects/list tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/space_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/project' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase spaces projects_list \ --account_id \ --space_id \ --access_token x-cli-version: '2.5' post: summary: Add Project to Space description: Adds an existing project to the space. operationId: spaces/projects/create tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/space_id' responses: '201': description: Created headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"id":"a4b3c2d1"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase spaces projects_create \ --account_id \ --space_id \ --data '{"id":"a4b3c2d1"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: spaces/projects/create/parameters required: - id properties: id: description: Project ID to add or to the Space type: string example: a4b3c2d1 x-cli-version: '2.5' /accounts/{account_id}/spaces/{space_id}/projects/{id}: delete: summary: Remove Project from Space description: Removes a specified project from the specified space. operationId: spaces/projects/delete tags: - Spaces parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/space_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/spaces/:space_id/projects/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase spaces projects_delete \ --account_id \ --space_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/teams: get: summary: List Teams description: List all Teams for the given account. operationId: teams/list tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/team' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase teams list \ --account_id \ --access_token x-cli-version: '2.5' post: summary: Create a Team description: Create a new Team. operationId: team/create tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/team_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"German Translators"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase teams create \ --account_id \ --data '{"name": "German Translators"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: team/create/parameters required: - name properties: name: description: Name of the team type: string example: German Translators x-cli-version: '2.5' /accounts/{account_id}/teams/{id}: get: summary: Get Team description: Show the specified Team. operationId: team/show tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/team_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase teams show \ --account_id \ --id \ --access_token x-cli-version: '2.5' patch: summary: Update Team description: Update the specified Team. operationId: team/update tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/team_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"German Translators"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase teams update \ --account_id \ --id \ --data '{"name": "German Translators"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: team/update/parameters properties: name: description: New name of the team type: string example: German Translators x-cli-version: '2.5' delete: summary: Delete Team description: Delete the specified Team. operationId: team/delete tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase teams delete \ --account_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/projects: post: summary: Add Project to Team description: Adds an existing project to the team. operationId: teams/projects/create tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' responses: '201': description: Created headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/projects" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"id":"a4b3c2d1"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase teams projects_create \ --account_id \ --team_id \ --data '{"id":"a4b3c2d1"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: teams/projects/create/parameters required: - id properties: id: description: Project ID to add to the Team type: string example: a4b3c2d1 x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/projects/{id}: delete: summary: Remove Project from Team description: Removes a specified project from the specified team. operationId: teams/projects/delete tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/projects/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase teams projects_delete \ --account_id \ --team_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/spaces: post: summary: Add Space description: Adds an existing space to the team. operationId: teams/spaces/create tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' responses: '201': description: Created headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/spaces" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"id":"a4b3c2d1"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase teams spaces_create \ --account_id \ --team_id \ --data '{"id":"a4b3c2d1"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: teams/spaces/create/parameters required: - id properties: id: description: Space ID to add to the Team type: string example: a4b3c2d1 x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/spaces/{id}: delete: summary: Remove Space description: Removes a specified space from the specified team. operationId: teams/spaces/delete tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/spaces/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase teams spaces_delete \ --account_id \ --team_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/users: post: summary: Add User description: Adds an existing user to the team. operationId: teams/users/create tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' responses: '201': description: Created headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/users" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"id":"a4b3c2d1"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase teams users_create \ --account_id \ --team_id \ --data '{"id":"a4b3c2d1"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: teams/users/create/parameters required: - id properties: id: description: User ID to add to the Team type: string example: a4b3c2d1 x-cli-version: '2.5' /accounts/{account_id}/teams/{team_id}/users/{id}: delete: summary: Remove User description: Removes a specified user from the specified team. operationId: teams/users/delete tags: - Teams parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/team_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/teams/:team_id/users/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE - lang: CLI v2 source: |- phrase teams users_delete \ --account_id \ --team_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/translations: get: summary: List all translations description: | List translations for the given project. If you want to download all translations for one locale we recommend to use the `locales#download` endpoint. operationId: translations/list tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/If-Modified-Since' - $ref: '#/components/parameters/If-None-Match' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' example: updated_at name: sort in: query schema: type: string - description: 'Order direction. Can be one of: asc, desc.' example: desc name: order in: query schema: type: string - description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries * `reviewed_after:2013-02-21T00:00:00Z` for fetching translations that were reviewed after the given timestamp Find more examples [here](/en/api/strings/usage-examples). example: PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center name: q in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase translations list \ --project_id \ --branch my-feature-branch \ --sort updated_at \ --order desc \ --query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \ --access_token x-cli-version: 2.6.4 post: summary: Create a translation description: Create a translation. operationId: translation/create tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","locale_id":"abcd1234cdef1234abcd1234cdef1234","key_id":"abcd1234cdef1234abcd1234cdef1234","content":"My translation"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations create \ --project_id \ --data '{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "key_id":"abcd1234cdef1234abcd1234cdef1234", "content": "My translation"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/create/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: Locale. Can be the name or id of the locale. Preferred is id type: string example: abcd1234cdef1234abcd1234cdef1234 key_id: description: Key type: string example: abcd1234cdef1234abcd1234cdef1234 content: description: Translation content type: string example: My translation plural_suffix: 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.' type: string example: null unverified: description: Indicates whether translation is unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null excluded: description: Indicates whether translation is excluded. type: boolean example: null autotranslate: 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. type: boolean example: null x-cli-version: '2.5' /projects/{project_id}/locales/{locale_id}/translations: get: summary: List translations by locale description: | List translations for a specific locale. If you want to download all translations for one locale we recommend to use the `locales#download` endpoint. operationId: translations/by_locale tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/locale_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' example: updated_at name: sort in: query schema: type: string - description: 'Order direction. Can be one of: asc, desc.' example: desc name: order in: query schema: type: string - description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: - `id:translation_id,...` for queries on a comma-separated list of ids - `unverified:{true|false}` for verification status - `tags:XYZ` for tags on the translation - `excluded:{true|false}` for exclusion status - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). example: PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center name: q in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase translations by_locale \ --project_id \ --locale_id \ --branch my-feature-branch \ --sort updated_at \ --order desc \ --query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \ --access_token x-cli-version: '2.5' /projects/{project_id}/keys/{key_id}/translations: get: summary: List translations by key description: List translations for a specific key. operationId: translations/by_key tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string - description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' example: updated_at name: sort in: query schema: type: string - description: 'Order direction. Can be one of: asc, desc.' example: desc name: order in: query schema: type: string - description: | Specify a query to find translations by content (including wildcards). The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `unverified:{true|false}` for verification status * `tags:XYZ` for tags on the translation * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). example: PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center name: q in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl 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" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase translations by_key \ --project_id \ --key_id \ --branch my-feature-branch \ --sort updated_at \ --order desc \ --query 'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center' \ --access_token x-cli-version: '2.5' /projects/{project_id}/translations/search: post: summary: Search translations description: Search translations for the given project. Provides the same search interface as `translations#index` 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 `locales#download` endpoint. operationId: translations/search tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/translation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/search" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"branch":"my-feature-branch","sort":"updated_at","order":"desc","q":"PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations search \ --project_id \ --data '{"branch":"my-feature-branch", "sort":"updated_at", "order":"desc", "q":"'PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/search/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch sort: description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' type: string example: updated_at order: description: 'Order direction. Can be one of: asc, desc.' type: string example: desc q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: - `id:translation_id,...` for queries on a comma-separated list of ids - `tags:XYZ` for tags on the translation - `unverified:{true|false}` for verification status - `excluded:{true|false}` for exclusion status - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%20unverified:true%20excluded:true%20tags:feature,center x-cli-version: '2.5' /projects/{project_id}/translations/{id}: get: summary: Get a single translation description: Get details on a single translation. operationId: translation/show tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' - description: specify the branch to use example: my-feature-branch name: branch in: query schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase translations show \ --project_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a translation description: Update an existing translation. operationId: translation/update tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","content":"My translation"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations update \ --project_id \ --id \ --data '{"branch":"my-feature-branch", "content": "My translation"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/update/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch content: description: Translation content type: string example: My translation plural_suffix: 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.' type: string example: null unverified: description: Indicates whether translation is unverified. Part of the [Advanced Workflows](https://support.phrase.com/hc/en-us/articles/5784094755484) feature. type: boolean example: null excluded: description: Indicates whether translation is excluded. type: boolean example: null autotranslate: 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. type: boolean example: null reviewed: description: When set to `true`, the translation will be marked as reviewed. type: boolean example: true x-cli-version: '2.5' /projects/{project_id}/translations/{id}/verify: patch: summary: Verify a translation description: Verify an existing translation. operationId: translation/verify tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/verify" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations verify \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/verify/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/translations/{id}/unverify: patch: summary: Mark a translation as unverified description: Mark an existing translation as unverified. operationId: translation/unverify tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/unverify" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations unverify \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/unverify/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/translations/{id}/review: patch: summary: Review a translation description: Mark an existing translation as reviewed. operationId: translation/review tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/review" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations review \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/review/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/translations/{id}/unreview: patch: summary: Unreview a translation description: Mark a reviewed translation as translated. operationId: translation/unreview tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/unreview" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations unreview \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/unreview/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.41' /projects/{project_id}/translations/{id}/exclude: patch: summary: Exclude a translation from export description: Set exclude from export flag on an existing translation. operationId: translation/exclude tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/exclude" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations exclude \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/exclude/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/translations/{id}/include: patch: summary: Include a translation description: Remove exclude from export flag from an existing translation. operationId: translation/include tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/translation_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/:id/include" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations include \ --project_id \ --id \ --data '{"branch":"my-feature-branch"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translation/include/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/translations/verify: patch: summary: Verify translations by query description: Verify translations matching query. operationId: translations/verify-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/verify" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%20unverified:true%20tags:feature,center"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations verify-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%20unverified:true%20tags:feature,center'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/verify/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch locale_id: description: specify the locale of the translations to be verified type: string example: fc2f11dd6a658fa9652f6f0a9ebee688 q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%20unverified:true%20tags:feature,center x-cli-version: '2.5' /projects/{project_id}/translations/unverify: patch: summary: Unverify translations by query description: Mark translations matching query as unverified. operationId: translations/unverify-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/unverify" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%20verified:true%20tags:feature,center","sort":"updated_at","order":"desc"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations unverify-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%20verified:true%20tags:feature,center'", "sort":"updated_at", "order":"desc"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/unverify/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%20verified:true%20tags:feature,center sort: description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' type: string example: updated_at order: description: 'Order direction. Can be one of: asc, desc.' type: string example: desc x-cli-version: '2.5' /projects/{project_id}/translations/review: patch: summary: Review translations selected by query description: Review translations matching query. operationId: translations/review-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/review" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%reviewed:false%20tags:feature,center"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations review-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%reviewed:false%20tags:feature,center'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/review/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%reviewed:false%20tags:feature,center x-cli-version: '2.5' /projects/{project_id}/translations/unreview: patch: summary: Unreview translations selected by query description: Unreview translations matching query. operationId: translations/unreview-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/unreview" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%reviewed:false%20tags:feature,center"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations unreview-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%reviewed:false%20tags:feature,center'"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/unreview/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%reviewed:true%20tags:feature,center x-cli-version: '2.41' /projects/{project_id}/translations/exclude: patch: summary: Exclude translations by query description: Exclude translations matching query from locale export. operationId: translations/exclude-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/exclude" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%20verified:true%20tags:feature,center","sort":"updated_at","order":"desc"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations exclude-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%20verified:true%20tags:feature,center'", "sort":"updated_at", "order":"desc"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/exclude/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: * `id:translation_id,...` for queries on a comma-separated list of ids * `tags:XYZ` for tags on the translation * `unverified:{true|false}` for verification status * `excluded:{true|false}` for exclusion status * `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%20verified:true%20tags:feature,center sort: description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' type: string example: updated_at order: description: 'Order direction. Can be one of: asc, desc.' type: string example: desc x-cli-version: '2.5' /projects/{project_id}/translations/include: patch: summary: Include translations by query description: Include translations matching query in locale export. operationId: translations/include-collection tags: - Translations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/affected_count' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/translations/include" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"branch":"my-feature-branch","q":"PhraseApp*%20verified:true%20tags:feature,center","sort":"updated_at","order":"desc"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase translations include-collection \ --project_id \ --data '{"branch":"my-feature-branch", "q":"'PhraseApp*%20verified:true%20tags:feature,center'", "sort":"updated_at", "order":"desc"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: translations/include/parameters properties: branch: description: specify the branch to use type: string example: my-feature-branch q: description: | Specify a query to find translations by content (including wildcards). *Note: Search is limited to 10000 results and may not include recently updated data (depending on the project size).* The following qualifiers are supported in the query: - `id:translation_id,...` for queries on a comma-separated list of ids - `tags:XYZ` for tags on the translation - `unverified:{true|false}` for verification status - `excluded:{true|false}` for exclusion status - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries Find more examples [here](/en/api/strings/usage-examples). type: string example: PhraseApp*%20verified:true%20tags:feature,center sort: description: 'Sort criteria. Can be one of: key_name, created_at, updated_at.' type: string example: updated_at order: description: 'Order direction. Can be one of: asc, desc.' type: string example: desc x-cli-version: '2.5' /notifications: get: summary: List notifications description: List all notifications from the current user operationId: notifications/list tags: - Notifications parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - description: Include only unseen notifications example: true name: unseen in: query schema: type: boolean responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/notification' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notifications" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase notifications list \ --access_token x-cli-version: '2.5' /notifications/mark_all_as_read: post: summary: Mark all notifications as read description: Mark all notifications of the current user as read operationId: notifications/mark_all_as_read tags: - Notifications parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/notification' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notifications/mark_all_as_read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase notifications mark_all_as_read \ --access_token x-cli-version: '2.5' /notifications/{id}: get: summary: Get a single notification description: Get details on a single notification. operationId: notifications/show tags: - Notifications parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/notification' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notification/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase notifications show \ --id \ --access_token x-cli-version: '2.5' /notification_groups: get: summary: List notification groups description: List all notification groups from the current user operationId: notification_groups/list tags: - Notification Groups parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/notification_group_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notification_groups" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase notification_groups list \ --access_token x-cli-version: '2.5' /notification_groups/mark_all_as_read: patch: summary: Mark all notification groups as read description: Mark all notification groups of the current user as read operationId: notification_groups/mark_all_as_read tags: - Notification Groups parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/notification_group_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notification_groups/mark_all_as_read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase notification_groups mark_all_as_read \ --access_token x-cli-version: '2.5' /notification_groups/{id}/mark_as_read: patch: summary: Mark a notification group as read description: Mark a notifications group of the current user as read operationId: notification_groups/mark_as_read tags: - Notification Groups parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/notification_group_detail' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/notification_groups/:id/mark_as_read" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase notification_groups mark_as_read \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/search: post: summary: Search across projects description: | Search for keys and translations in all account projects *Note: Search is limited to 10000 results and may not include recently updated data depending on the project sizes.* operationId: search/in_account tags: - Search parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/account_search_result' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/search" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F query=keyword \ -F locale_code=localecode \ -F page=1 \ -F per_page=25 \ - lang: CLI v2 source: |- phrase search in_account \ --account_id \ --data '{"q":"keyword","locale_code": "de","page": 1,"per_page": 25}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: search/in_account/parameters properties: query: description: Search query type: string example: keyword locale_code: description: Locale code type: string example: de_DE page: description: Page type: integer example: 1 per_page: description: Number of results per page type: integer example: 25 x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/comments/{id}: get: summary: Get a single job comment description: Get details on a single job comment. operationId: job_comment/show tags: - Job Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/branch' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id?branch=my-feature-branch" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_comments show \ --project_id \ --job_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' patch: summary: Update a job comment description: Update an existing job comment. operationId: job_comment/update tags: - Job Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"message":"Some message..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_comments update \ --project_id \ --job_id \ --id \ --data '{"message": "Some message..."}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_comment/update/parameters properties: message: description: Comment message type: string example: Some message... branch: description: Branch name for the job type: string example: my-feature-branch x-cli-version: '2.5' delete: summary: Delete a job comment description: Delete an existing job comment. operationId: job_comment/delete tags: - Job Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/branch' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -d '{"branch":"my-feature-branch"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_comments delete \ --project_id \ --job_id \ --id \ --branch my-feature-branch \ --access_token x-cli-version: '2.5' /projects/{project_id}/jobs/{job_id}/comments: get: summary: List job comments description: List all comments for a job. operationId: job_comments/list tags: - Job Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' - $ref: '#/components/parameters/branch' - description: 'Order direction. Can be one of: asc, desc.' name: order in: query example: desc schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments?branch=my-feature-branch&order=desc" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase job_comments list \ --project_id \ --job_id \ --branch my-feature-branch \ --order desc \ --access_token x-cli-version: '2.5' post: summary: Create a job comment description: Create a new comment for a job. operationId: job_comment/create tags: - Job Comments parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/job_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_comment' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/jobs/:job_id/comments" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"message":"Some message..."}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase job_comments create \ --project_id \ --job_id \ --data '{"message": "Some message..."}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: job_comment/create/parameters properties: message: description: Job comment message type: string example: Some message... branch: description: Branch name for the job type: string example: my-feature-branch x-cli-version: '2.5' /projects/{project_id}/webhooks/{webhook_id}/deliveries: get: summary: List webhook deliveries description: List all webhook deliveries for the given webhook_id. operationId: webhook_deliveries/list tags: - Webhook Deliveries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/webhook_id' - $ref: '#/components/parameters/response_status_codes' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook_delivery' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries?response_status_codes=401%2C404" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase webhooks list \ --project_id \ --webhook_id \ --access_token x-cli-version: '2.5' /projects/{project_id}/webhooks/{webhook_id}/deliveries/{id}: get: summary: Get a single webhook delivery description: Get all information about a single webhook delivery for the given ID. operationId: webhook_deliveries/show tags: - Webhook Deliveries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/webhook_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/webhook_delivery' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase webhook deliveries show \ --project_id \ --webhook_id \ --id \ --access_token x-cli-version: '2.5' /projects/{project_id}/webhooks/{webhook_id}/deliveries/{id}/redeliver: post: summary: Redeliver a single webhook delivery description: Trigger an individual webhook delivery to be redelivered. operationId: webhook_deliveries/redeliver tags: - Webhook Deliveries parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/webhook_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/webhook_delivery' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/projects/:project_id/webhooks/:webhook_id/deliveries/:id/redeliver" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase webhook deliveries show \ --project_id \ --webhook_id \ --id \ --access_token x-cli-version: '2.5' /accounts/{account_id}/job_templates: get: summary: List organization job templates description: List all job templates for the given account. operationId: organization_job_templates/list tags: - Organization Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/organization_job_template' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase organization_job_templates list \ --account_id \ --access_token x-cli-version: 2.7.0 post: summary: Create an organization job template description: Create a new organization job template. operationId: organization_job_template/create tags: - Organization Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/organization_job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"template","briefing":"text"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_templates create \ --account_id \ --data '{"name":"template", "briefing":"text"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: organization_job_template/create/parameters properties: name: description: Job template name type: string example: template briefing: description: Briefing for the translators type: string example: text autotranslate: description: Automatically translate the job using machine translation. type: boolean example: true required: - name x-cli-version: 2.7.0 /accounts/{account_id}/job_templates/{id}: get: summary: Get a single organization job template description: Get details on a single organization job template for a given account. operationId: organization_job_templates/show tags: - Organization Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/organization_job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase organization_job_templates show \ --account_id \ --id \ --access_token x-cli-version: 2.7.0 patch: summary: Update an organization job template description: Update an existing organization job template. operationId: organization_job_template/update tags: - Organization Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/organization_job_template_details' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_templates update \ --account_id \ --id \ --access_token requestBody: required: true content: application/json: schema: type: object title: organization_job_template/update/parameters properties: name: description: Job template name type: string example: template briefing: description: Briefing for the translators type: string example: text autotranslate: description: Automatically translate the job using machine translation. type: boolean example: true required: - name x-cli-version: 2.7.0 delete: summary: Delete an organization job template description: Delete an existing organization job template. operationId: organization_job_template/delete tags: - Organization Job Templates parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_templates delete \ --account_id \ --id \ --access_token x-cli-version: 2.7.0 /accounts/{account_id}/job_templates/{job_template_id}/locales: get: summary: List organization job template locales description: List all job template locales for a given organization job template. operationId: organization_job_template_locales/list tags: - Organization Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase organization_job_template_locales list \ --account_id \ --job_template_id \ --access_token x-cli-version: 2.7.0 post: summary: Create an organization job template locale description: Create a new organization job template locale. operationId: organization_job_template_locales/create tags: - Organization Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/job_template_id' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"locale_name":"de-1","locale_code:"de-DE",user_ids":["abcd1234cdef1234abcd1234cdef1234"],"reviewer_ids":["abcd1234cdef1234abcd1234cdef1234"],"translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_template_locales create \ --account_id \ --job_template_id \ --data '{"locale_name": "de-1", "locale_code: "de-DE", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "reviewer_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: organization_job_template_locales/create/parameters properties: locale_name: description: locale name type: string example: de-1 locale_code: description: locale code type: string example: de-DE user_ids: description: Array of user ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 required: - locale_name - locale_code x-cli-version: 2.7.0 /accounts/{account_id}/job_templates/{job_template_id}/locales/{job_template_locale_id}: get: summary: Get a single organization job template locale description: Get a single job template locale for a given organization job template. operationId: organization_job_template_locale/show tags: - Organization Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase organization_job_template_locales show \ --account_id \ --job_template_id \ --job_template_locale_id \ --access_token x-cli-version: 2.7.0 patch: summary: Update an organization job template locale description: Update an existing organization job template locale. operationId: organization_job_template_locale/update tags: - Organization Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/job_template_locale' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"locale_name":"de-1","locale_code:"de-DE","user_ids":["abcd1234cdef1234abcd1234cdef1234"],"reviewer_ids":["abcd1234cdef1234abcd1234cdef1234"],"translator_team_ids":["abcd1234cdef1234abcd1234cdef1234"]}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_template_locales update \ --account_id \ --job_template_id \ --job_template_locale_id \ --data '{"locale_name": "de-1", "locale_code: "de-DE", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "reviewer_ids": "abcd1234cdef1234abcd1234cdef1234","translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}' \ --access_token requestBody: required: true content: application/json: schema: type: object title: organization_job_template_locale/update/parameters properties: locale_name: description: locale name type: string example: de-1 locale_code: description: locale code type: string example: de-DE user_ids: description: Array of user ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_ids: description: Array of reviewer ids to be assigned to the job template locale type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 translator_team_ids: description: Array of team ids to be assigned to the job locale as translators type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 reviewer_team_ids: description: Array of team ids to be assigned to the job locale as reviewers type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 x-cli-version: 2.7.0 delete: summary: Delete an organization job template locale description: Delete an existing organization job template locale. operationId: organization_job_template_locale/delete tags: - Organization Job Template Locales parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/job_template_id' - $ref: '#/components/parameters/job_template_locale_id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/job_templates/:job_template_id/locales/:job_template_locale_id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X DELETE \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase organization_job_template_locales delete \ --account_id \ --job_template_id \ --job_template_locale_id \ --access_token x-cli-version: 2.7.0 /projects/{project_id}/keys/{id}/key_links: delete: summary: Batch unlink child keys from a parent key description: Unlinks multiple child keys from a given parent key in a single operation. operationId: key_links/batch_destroy tags: - Linked Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id_as_id' requestBody: required: true content: application/json: schema: required: - child_key_ids type: object title: key_links/batch_destroy/parameters properties: child_key_ids: description: The IDs of the child keys to unlink from the parent key. type: array example: - child_key_id1 - child_key_id2 items: type: string unlink_parent: description: Whether to unlink the parent key as well and unmark it as linked-key. type: boolean default: false responses: '200': description: OK '422': $ref: '#/components/responses/422' get: summary: List child keys of a parent key description: Returns detailed information about a parent key, including its linked child keys. operationId: key_links/index tags: - Linked Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id_as_id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/key_link' '400': description: Bad Request content: application/json: schema: type: object properties: message: type: string example: message: Key is not a parent key post: summary: Link child keys to a parent key description: Creates links between a given parent key and one or more child keys. operationId: key_links/create tags: - Linked Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id_as_id' requestBody: required: true content: application/json: schema: required: - child_key_ids type: object title: key_links/create/parameters properties: child_key_ids: 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 type: array example: - child_key_id1 - child_key_id2 items: type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/key_link' '422': $ref: '#/components/responses/422' /projects/{project_id}/keys/{id}/key_links/{child_key_id}: delete: summary: Unlink a child key from a parent key description: Unlinks a single child key from a given parent key. operationId: key_links/destroy tags: - Linked Keys parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/key_id_as_id' - in: path name: child_key_id required: true description: The ID of the child key to unlink. schema: type: string responses: '200': description: OK '422': $ref: '#/components/responses/422' /accounts/{account_id}/automations: get: summary: List automations description: | List all automations for an account. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automations/list tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' Link: $ref: '#/components/headers/Link' Pagination: $ref: '#/components/headers/Pagination' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations?page=1&per_page=10" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase automations list \ --account_id \ --page 1 \ --per_page 10 \ --access_token post: summary: Create an automation description: | Create a new automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/create tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' requestBody: required: true content: application/json: schema: required: - name - project_ids - status_filters - trigger type: object title: automations/create/parameters properties: name: description: name of the automation example: Scheduled Job Automation - Hourly type: string trigger: type: string enum: - schedule - upload project_ids: description: | List of project IDs to associate with the automation. Currently, only the first ID in the array is used. The array format leaves room for future support of multiple projects. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 job_template_id: description: id of job template that the automation uses to create jobs from type: string example: abcd1234cdef1234abcd1234cdef1234 status_filters: description: | Translation states used when selecting keys for a job. States are derived from associated translations, not the keys themselves. When review workflow is enabled, `ready_for_review` is internally treated as `translated`. type: array items: type: string enum: - unverified - untranslated - ready_for_review tags: description: used to filter which keys are added to jobs type: array items: type: string example: - myTag cron_schedule: description: along with time_zone, specifies when the scheduled automation is supposed to run type: string example: 00 13 * * 1,2 time_zone: description: along with cron_schedule, specifies when the scheduled automation is supposed to run type: string example: GMT responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -d '{"name":"Schedule Automation - Hourly","trigger":"schedule","project_ids":["1"],"job_template_id":"2","status_filters":["untranslated"],"tag_ids":["3","4"],"cron_schedule":"00 13 * * 1,2","time_zone":"GMT"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations create \ --account_id \ --data '{"name":"Schedule Automation - Hourly","trigger":"schedule","project_ids":["1"],"job_template_id":"2","status_filters":["untranslated"],"tag_ids":["3","4"],"cron_schedule":"00 13 * * 1,2","time_zone":"GMT"}' \ --access_token /accounts/{account_id}/automations/{automation_id}: get: summary: Get a single automation description: | Get details of a single automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/show tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id" \ -u USERNAME_OR_ACCESS_TOKEN - lang: CLI v2 source: |- phrase automations show \ --account_id \ --id \ --access_token patch: summary: Update an automation description: | Update an existing automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/update tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' requestBody: required: true content: application/json: schema: required: - name - project_ids - status_filters - trigger type: object title: automations/create/parameters properties: name: description: name of the automation example: Scheduled Job Automation - Hourly type: string trigger: type: string enum: - schedule - upload project_ids: description: | List of project IDs to associate with the automation. Currently, only the first ID in the array is used. The array format leaves room for future support of multiple projects. type: array items: type: string example: - abcd1234cdef1234abcd1234cdef1234 job_template_id: description: id of job template that the automation uses to create jobs from type: string example: abcd1234cdef1234abcd1234cdef1234 status_filters: description: translation key statuses used to filter keys that are added to jobs type: array items: type: string enum: - unverified - untranslated - ready_for_review tags: description: used to filter which keys are added to jobs type: array items: type: string example: - myTag cron_schedule: description: along with time_zone, specifies when the scheduled automation is supposed to run type: string example: 00 13 * * 1,2 time_zone: description: along with cron_schedule, specifies when the scheduled automation is supposed to run type: string example: GMT responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id" \ -u USERNAME_OR_ACCESS_TOKEN \ -X PATCH \ -d '{"name":"Schedule Automation - Weekly","tag_ids":["5","6"],time_zone:"UTC"}' \ -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations update \ --account_id \ --id \ --data '{"name":"Schedule Automation - Weekly","tag_ids":["5","6"],time_zone:"UTC"}' \ --access_token delete: summary: Destroy automation description: | Destroy an automation of an account. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/delete tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id" \ -u USERNAME_OR_ACCESS_TOKEN -X DELETE -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations delete \ --account_id \ --id \ --access_token /accounts/{account_id}/automations/{automation_id}/activate: post: summary: Activate an automation description: | Activate an automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/activate tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id/activate" \ -u USERNAME_OR_ACCESS_TOKEN -X POST -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations activate \ --account_id \ --id \ --access_token /accounts/{account_id}/automations/{automation_id}/deactivate: post: summary: Deactivate an automation description: | Deactivate an automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings). operationId: automation/deactivate tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/automation' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id/deactivate" \ -u USERNAME_OR_ACCESS_TOKEN -X POST -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations deactivate \ --account_id \ --id \ --access_token /accounts/{account_id}/automations/{automation_id}/trigger: post: summary: Trigger an automation description: | Trigger an automation. operationId: automation/trigger tags: - Automations parameters: - $ref: '#/components/parameters/X-PhraseApp-OTP' - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/id' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' x-code-samples: - lang: Curl source: |- curl "https://api.phrase.com/v2/accounts/:account_id/automations/:id/trigger" \ -u USERNAME_OR_ACCESS_TOKEN -X POST -H 'Content-Type: application/json' - lang: CLI v2 source: |- phrase automations trigger \ --account_id \ --id \ --access_token components: securitySchemes: Token: type: apiKey in: header name: Authorization description: Enter your token in the format `token TOKEN` Basic: type: http scheme: basic headers: X-Rate-Limit-Limit: description: The number of allowed requests in the current period schema: type: integer X-Rate-Limit-Remaining: description: The number of remaining requests in the current period schema: type: integer X-Rate-Limit-Reset: description: Timestamp of end of current time period as UNIX timestamp, see [Rate Limiting](/en/api/strings/pagination#rate-limiting) schema: type: integer Link: description: |- Links to related resources, in the format defined by [RFC 5988](https://tools.ietf.org/html/rfc5988#section-5). This will include a link with relation type `next` to the next page, if there is a next page. schema: type: string Pagination: description: Pagination details for navigating through a collection of resources, provided in JSON format. schema: type: object properties: total_count: description: Total count of items in the collection. type: integer example: 10 total_pages_count: description: Total number of pages available for the collection. type: integer example: 2 current_page: description: The current page number. type: integer example: 1 current_per_page: description: Number of items currently displayed per page. type: integer example: 5 previous_page: description: Page number of the previous page, if available. type: integer next_page: description: Page number of the next page, if available. type: integer example: 2 X-PhraseApp-OTP: description: The number of allowed requests in the current period schema: type: string schemas: skeleton: type: object title: skeleton properties: locale_code: type: string description: Object keys are dynamic and based on requested locale codes, see example. example: en: '{number, plural, one {} other {}}' de: '{number, plural, one {} other {}}' format: type: object title: format properties: name: type: string api_name: type: string description: type: string extension: type: string default_encoding: type: string importable: type: boolean exportable: type: boolean default_file: type: string renders_default_locale: type: boolean includes_locale_information: type: boolean example: name: Ruby/Rails YAML api_name: yml description: YAML file format for use with Ruby/Rails applications extension: yml default_encoding: UTF-8 importable: true exportable: true default_file: ./config/locales/.yml renders_default_locale: false includes_locale_information: true document: type: object title: document properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: email.html created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' project_short: type: object title: project_short properties: id: type: string name: type: string main_format: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' project_report: type: object title: project report properties: locales_count: type: integer keys_count: type: integer translations_count: type: integer untranslated_keys_count: type: integer unverified_translations_count: type: integer reviewed_translations_count: type: integer managed_words_count: type: integer project: $ref: '#/components/schemas/project_short' locale_preview: type: object title: locale_preview properties: id: type: string name: type: string code: type: string example: id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB locale_report: type: object title: locale report properties: keys_count: type: integer translated_translations_percentage: type: number unverified_translations_percentage: type: number reviewed_translations_percentage: type: number untranslated_keys_percentage: type: number completed_translations_count: type: integer untranslated_keys_count: type: integer unverified_translations_count: type: integer reviewed_translations_count: type: integer source_word_count: type: integer word_count: type: integer word_count_unverified: type: integer word_count_missing: type: integer locale: $ref: '#/components/schemas/locale_preview' figma_attachment: type: object title: figma_attachment properties: id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 626ea67628690c73ac86ac81eec2d185 url: https://figma.com/file/something created_at: '2017-01-28T09:52:53Z' updated_at: '2017-01-28T09:52:53Z' styleguide: type: object title: styleguide properties: id: type: string title: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 title: My Style Guide created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' styleguide_details: allOf: - $ref: '#/components/schemas/styleguide' - type: object title: styleguide_details properties: public_url: type: string audience: type: string target_audience: type: string grammatical_person: type: string vocabulary_type: type: string business: type: string company_branding: type: string formatting: type: string glossary_terms: type: string grammar_consistency: type: string literal_translation: type: string overall_tone: type: string samples: type: string example: public_url: https://phrase.com/styleguide/my-project/26f065cf597be340 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 data_type: type: string description: data type of the property enum: - boolean - date - link - multi_select - number - single_select - string - text example: string user_preview: type: object title: user_preview properties: id: type: string username: type: string name: type: string gravatar_uid: type: string example: id: abcd1234cdef1234abcd1234cdef1234 username: johndoe name: John Doe gravatar_uid: 205e460b479e2e5b48aec07710c08d50 custom_metadata_property: type: object title: custom_metadata_property properties: id: type: string name: type: string description: type: string data_type: $ref: '#/components/schemas/data_type' user: $ref: '#/components/schemas/user_preview' projects: type: array items: $ref: '#/components/schemas/project_short' value_options: type: array items: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: Nuts description: A healthy snack for all ages data_type: multi_select user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' value_options: - apple - banana - coconut errors: type: object properties: message: type: string errors: type: array items: type: object properties: resource: type: string field: type: string message: type: string example: message: Validation Failed errors: - resource: Resource field: name message: can't be blank team_short: type: object title: team_short properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 2e7574e8f2372906a03110c2a7cfe671 name: My first Team created_at: '2020-02-25T12:17:25Z' updated_at: '2020-03-13T14:46:57Z' space_short: type: object title: space properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects_count: type: integer example: id: 2e7574e8f2372906a03110c2a7cfe671 name: My first space created_at: '2020-02-25T12:17:25Z' updated_at: '2020-03-13T14:46:57Z' projects_count: 2 invitation: type: object title: invitation properties: id: type: string email: type: string role: type: string state: type: string projects: type: array items: $ref: '#/components/schemas/project_short' locales: type: array items: $ref: '#/components/schemas/locale_preview' teams: type: array items: $ref: '#/components/schemas/team_short' default_locale_codes: type: array items: type: string permissions: type: object locale_ids: type: array items: type: string created_at: type: string format: date-time updated_at: type: string format: date-time accepted_at: type: string format: date-time spaces: type: array items: $ref: '#/components/schemas/space_short' project_role: type: array items: type: object properties: project_id: type: string role: type: string example: id: acbdacbdacbdacbdacbdacbd email: foo@bar.com role: Manager state: accepted projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB default_locale_codes: - en - de permissions: - create_upload: true review_translations: true locale_ids: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' accepted_at: '2015-02-28T09:52:53Z' spaces: - id: 04d36d845576b9d494d05e0b70fe813b name: Space2 created_at: '2020-12-07T12:56:21Z' updated_at: '2020-12-07T12:56:21Z' projects_count: 1 teams: - id: 04d36d845576b9d494d05e0b70fe813c name: Team 1 created_at: '2020-12-07T12:56:21Z' updated_at: '2020-12-07T12:56:21Z' project_roles: - project_id: abcd1234cdef1234abcd1234cdef1234 role: Developer translation_key: type: object title: translation_key properties: id: type: string name: type: string description: type: string name_hash: type: string plural: type: boolean use_ordinal_rules: type: boolean tags: type: array items: type: string data_type: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: home.index.headline description: My description for this key... name_hash: 1b31d2580ce324f246f66b3be00ed399 plural: false use_ordinal_rules: false tags: - awesome-feature - needs-proofreading data_type: string created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' screenshot_marker: type: object title: screenshot_marker properties: id: type: string presentation: type: string presentation_type: type: string created_at: type: string format: date-time updated_at: type: string format: date-time translation_key: $ref: '#/components/schemas/translation_key' example: id: d2e056aa9e70b01121f41693e344f5ee presentation: x: 10 'y': 10 w: 10 h: 10 presentation_type: default created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' translation_key: id: abcd1234cdef1234abcd1234cdef1234 name: home.index.headline description: My description for this key... name_hash: 1b31d2580ce324f246f66b3be00ed399 plural: false tags: - awesome-feature - needs-proofreading data_type: string created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' account_locale: type: object title: locale_preview properties: name: type: string code: type: string example: name: English code: en-GB locale: type: object title: locale properties: id: type: string name: type: string code: type: string default: type: boolean main: type: boolean rtl: type: boolean plural_forms: type: array items: type: string ordinal_plural_forms: type: array items: type: string source_locale: $ref: '#/components/schemas/locale_preview' fallback_locale: $ref: '#/components/schemas/locale_preview' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE default: true main: false rtl: false plural_forms: - zero - one - other ordinal_plural_forms: - zero - other source_locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB fallback_locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' locale_statistics: type: object title: locale_statistics properties: keys_total_count: type: integer keys_untranslated_count: type: integer words_total_count: type: integer translations_completed_count: type: integer translations_unverified_count: type: integer unverified_words_count: type: integer missing_words_count: type: integer example: null locale_details: allOf: - $ref: '#/components/schemas/locale' - type: object title: locale_details properties: statistics: $ref: '#/components/schemas/locale_statistics' example: statistics: keys_total_count: 2120 keys_untranslated_count: 100 words_total_count: 3102102 translations_completed_count: 1920 translations_unverified_count: 32 unverified_words_count: 129 missing_words_count: 3920 locale_download: type: object title: Async Locale Download properties: id: type: string status: type: string enum: - processing - completed - error description: | The status of the download request. Possible values are `processing`, `completed`, and `error`. result: type: object properties: url: type: string format: uri description: | The URL to the download file. This URL is valid for 15 minutes. params: type: object description: | The parameters of the download request. properties: file_format: type: string locale_id: type: string tags: type: string branch: type: string include_empty_translations: type: boolean include_translated_keys: type: boolean include_unverified_translations: type: boolean error: type: string created_at: type: string format: date-time completed_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 status: completed result: url: https://example.com/locales/abcd1234cdef1234abcd1234cdef1234/download?file_format=yml params: file_format: yml locale_id: abcd1234cdef1234abcd1234cdef1234 tags: feature1,feature2 branch: my-feature-branch include_empty_translations: true include_translated_keys: true include_unverified_translations: true created_at: '2015-01-28T09:52:53Z' completed_at: '2015-01-28T09:52:53Z' distribution_preview: type: object title: distribution_preview properties: id: type: string name: type: string project: $ref: '#/components/schemas/project_short' platforms: type: array items: type: string release_count: type: integer created_at: type: string format: date-time deleted_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: Android Distribution project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' platforms: - android release_count: 10 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' release_preview: type: object title: release_preview properties: id: type: string version: type: integer app_min_version: type: string app_max_version: type: string description: type: string platforms: type: array items: type: string environments: type: array items: type: string locale_codes: type: array items: type: string tags: type: array items: type: string project: $ref: '#/components/schemas/project_short' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 version: 1 project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' platforms: - android environments: - development locale_codes: - de - en tags: - android - feature1 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' distribution: type: object title: distribution properties: id: type: string name: type: string project: $ref: '#/components/schemas/project_short' platforms: type: array items: type: string locales: type: array items: $ref: '#/components/schemas/locale_preview' releases: type: array items: $ref: '#/components/schemas/release_preview' created_at: type: string format: date-time deleted_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: Android Distribution project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' platforms: - android releases: - id: abcd1234cdef1234abcd1234cdef1234 version: 1 project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' platforms: - android environments: - development locale_codes: - de - en created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' release: type: object title: release properties: id: type: string version: type: integer app_min_version: type: string app_max_version: type: string description: type: string platforms: type: array items: type: string environments: type: array items: type: string locales: type: array items: $ref: '#/components/schemas/locale_preview' tags: type: array items: type: string project: $ref: '#/components/schemas/project_short' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 version: 1 project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' platforms: - android environments: - development - production locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' release_trigger: type: object title: release_trigger properties: id: type: string branch: type: string cron_schedule: type: string description: Cron schedule for the scheduler. Read more about the format of this field at https://en.wikipedia.org/wiki/Cron time_zone: type: string description: Time zone for the scheduler next_run_at: type: string format: date-time description: The next time a release will be created for this trigger app_min_version: type: string app_max_version: type: string locales: type: array items: $ref: '#/components/schemas/locale_preview' tags: type: array items: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB branch: my-feature-branch tags: - android - feature1 cron_schedule: 15 18 * * 1,3 time_zone: Europe/Berlin next_run_at: '2015-01-28T09:52:53Z' app_min_version: 1.0.0 app_max_version: 2.0.0 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' branch_name: type: object title: branch_name properties: name: type: string example: name: new-branch job: type: object title: job properties: id: type: string name: type: string briefing: type: string due_date: type: string format: date-time nullable: true state: type: string ticket_url: type: string project: $ref: '#/components/schemas/project_short' branch: $ref: '#/components/schemas/branch_name' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 626ea67628690c73ac86ac81eec2d185 name: Translations for new Feature briefing: Some instructions for the translators due_date: '2017-02-28T09:52:53Z' state: completed ticket_url: https://example.atlassian.net/browse/FOO created_at: '2017-01-28T09:52:53Z' updated_at: '2017-01-28T09:52:53Z' project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' key_preview: type: object title: key_preview properties: id: type: string name: type: string plural: type: boolean use_ordinal_rules: type: boolean example: null job_annotation_short: type: object title: job_annotation properties: name: type: string value: type: string required: - name - value example: name: priority value: high job_details: allOf: - $ref: '#/components/schemas/job' - type: object title: job_details properties: owner: $ref: '#/components/schemas/user_preview' job_tag_name: type: string source_translations_updated_at: type: string format: date-time source_locale: $ref: '#/components/schemas/locale_preview' locales: type: array items: $ref: '#/components/schemas/locale_preview' keys: type: array items: $ref: '#/components/schemas/key_preview' annotations: type: array items: $ref: '#/components/schemas/job_annotation_short' example: owner: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe job_tag_name: Job_123 source_translations_updated_at: '2020-01-01T00:00:00Z' source_locale: id: abcd1234cdef1234abcd1234cdef1235 name: de-DE code: de-DE locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB keys: - id: dbcd1234cdef1234abcd1234cdef1234 name: greeting.hello job_template: type: object title: job_template properties: id: type: string name: type: string briefing: type: string project: $ref: '#/components/schemas/project_short' branch: $ref: '#/components/schemas/branch_name' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 626ea67628690c73ac86ac81eec2d185 name: template briefing: text created_at: '2017-01-28T09:52:53Z' updated_at: '2017-01-28T09:52:53Z' project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' job_template_details: allOf: - $ref: '#/components/schemas/job_template' - type: object title: job_template_details properties: owner: $ref: '#/components/schemas/user_preview' creator: $ref: '#/components/schemas/user_preview' locales: type: array items: $ref: '#/components/schemas/locale_preview' example: owner: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe creator: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB glossary: type: object title: glossary properties: id: type: string name: type: string projects: type: array items: $ref: '#/components/schemas/project_short' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: My glossary projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' spaces: - id: abcd1234cdef1234abcd1234cdef1234 name: My Project Space projects_count: 1 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' authorization: type: object title: authorization properties: id: type: string note: type: string token_last_eight: type: string hashed_token: type: string scopes: type: array items: type: string expires_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 note: My Deploy Script token_last_eight: 1234abcd hashed_token: abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234 scopes: - read expires_at: '2015-03-30T09:52:53Z' created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' authorization_with_token: allOf: - $ref: '#/components/schemas/authorization' - type: object title: authorization_with_token properties: token: type: string example: token: abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234abcd1234cdef1234 comment: type: object title: comment properties: id: type: string message: type: string has_replies: type: boolean user: $ref: '#/components/schemas/user_preview' created_at: type: string format: date-time updated_at: type: string format: date-time mentioned_users: type: array items: $ref: '#/components/schemas/user_preview' locales: type: array items: $ref: '#/components/schemas/locale_preview' example: id: abcd1234cdef1234abcd1234cdef1234 message: Some message... has_replies: true user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB comment_reaction: type: object title: comment_reaction properties: id: type: string emoji: type: string created_at: type: string format: date-time updated_at: type: string format: date-time comment: $ref: '#/components/schemas/comment' user: $ref: '#/components/schemas/user_preview' example: id: abcd1234cdef1234abcd1234cdef1234 emoji: 🔥 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' comment: id: abcd1234cdef1234abcd1234cdef1234 message: Some comment... name: Joe Doe user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe webhook: type: object title: webhook properties: id: type: string callback_url: type: string description: type: string events: type: array items: type: string active: type: boolean include_branches: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 callback_url: http://example.com/hooks/phraseapp-notifications description: My webhook for chat notifications events: locales:create,translations:update active: true include_branches: false created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' upload: type: object title: upload properties: id: type: string filename: type: string format: type: string state: type: string tag: type: string description: | Unique tag of the upload tags: type: array items: type: string description: | List of tags that were assigned to the uploaded keys url: type: string description: | The URL to the upload in Phrase Strings app. user: type: object $ref: '#/components/schemas/user_preview' summary: type: object properties: locales_created: type: integer translation_keys_created: type: integer translation_keys_updated: type: integer translation_keys_unmentioned: description: | The number of translation keys in the project that were not mentioned in the upload. Note: this field is not calculated (and shows 0) if the upload contains more than 10,000 keys. type: integer translations_created: type: integer translations_updated: type: integer tags_created: type: integer translation_keys_ignored: type: integer processed_translations: type: integer upload_total_translations: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 filename: example.json format: json state: success tag: tag summary: locales_created: 2 translation_keys_created: 162 translation_keys_updated: 10 translation_keys_unmentioned: 0 translations_created: 291 translations_updated: 3 tags_created: 2 translation_keys_ignored: 0 user: id: abcd1234cdef1234abcd1234cdef1234 username: johndoe name: John Doe gravatar_uid: 205e460b479e2e5b48aec07710c08d50 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' upload_batch: type: object title: upload_batch properties: state: type: string description: Processing state of the upload batch enum: - started - done delete_unmentioned_keys: type: boolean description: Indicates whether unmentioned keys will be deleted after processing all uploads in the batch created_at: type: string format: date-time updated_at: type: string format: date-time project: type: object $ref: '#/components/schemas/project_short' user: type: object $ref: '#/components/schemas/user_preview' uploads: type: array items: type: object $ref: '#/components/schemas/upload' translation_version: type: object title: translation_version properties: id: type: string content: type: string plural_suffix: type: string key: $ref: '#/components/schemas/key_preview' locale: $ref: '#/components/schemas/locale_preview' created_at: type: string format: date-time updated_at: type: string format: date-time changed_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 content: My translation plural_suffix: '' key: id: abcd1234cdef1234abcd1234cdef1234 name: home.index.headline plural: false locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' changed_at: '2015-01-28T09:52:53Z' translation_version_with_user: allOf: - $ref: '#/components/schemas/translation_version' - type: object title: translation_version_with_user properties: user: $ref: '#/components/schemas/user_preview' example: user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe glossary_term_translation: type: object title: glossary_term_translation properties: id: type: string locale_code: type: string content: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 locale_code: en-US content: Save created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' account: type: object title: account properties: id: type: string name: type: string slug: type: string company: type: string created_at: type: string format: date-time updated_at: type: string format: date-time company_logo_url: type: string example: id: abcd1234 name: Company Account slug: company_account company: My Awesome Company created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' company_logo_url: http://assets.example.com/company_logo.png project: type: object title: project properties: id: type: string name: type: string slug: type: string main_format: type: string project_image_url: type: string media: type: string account: $ref: '#/components/schemas/account' space: $ref: '#/components/schemas/space_short' point_of_contact: $ref: '#/components/schemas/user_preview' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project slug: android_project main_format: xml project_image_url: http://assets.example.com/project.png account: account space: space created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' project_details: allOf: - $ref: '#/components/schemas/project' - type: object title: project_details properties: slug: type: string shares_translation_memory: type: boolean machine_translation_enabled: type: boolean example: true zero_plural_form_enabled: type: boolean example: true enable_all_data_type_translation_keys_for_translators: type: boolean example: false enable_icu_message_format: type: boolean example: false enable_branching: type: boolean example: false protect_master_branch: type: boolean example: false autotranslate_enabled: type: boolean example: false autotranslate_check_new_translation_keys: type: boolean example: false autotranslate_check_new_uploads: type: boolean example: false autotranslate_check_new_locales: type: boolean example: false autotranslate_mark_as_unverified: type: boolean example: false autotranslate_use_machine_translation: type: boolean example: false autotranslate_use_translation_memory: type: boolean example: true default_encoding: type: string example: UTF-8 cldr_version: type: string example: legacy job_locking_enabled: type: boolean example: false placeholder_styles: type: array items: type: string example: - angular - iOS example: slug: my-android-project shares_translation_memory: true machine_translation_enabled: true zero_plural_form_enabled: true enable_all_data_type_translation_keys_for_translators: false enable_icu_message_format: false enable_branching: false protect_master_branch: false autotranslate_enabled: false autotranslate_check_new_translation_keys: false autotranslate_check_new_uploads: false autotranslate_check_new_locales: false autotranslate_mark_as_unverified: false autotranslate_use_machine_translation: false autotranslate_use_translation_memory: true default_encoding: UTF-8 cldr_version: legacy job_locking_enabled: false placeholder_styles: - angular - iOS job_preview: type: object title: job_preview properties: id: type: string name: type: string state: type: string example: null locale_user_preview: type: object title: locale_user_preview properties: id: type: string username: type: string name: type: string role: type: string example: null locale_team_preview: type: object title: locale_team_preview properties: id: type: string name: type: string role: type: string example: null job_locale: type: object title: job_locale properties: id: type: string job: $ref: '#/components/schemas/job_preview' locale: $ref: '#/components/schemas/locale_preview' users: type: array items: $ref: '#/components/schemas/locale_user_preview' teams: type: array items: $ref: '#/components/schemas/locale_team_preview' completed: type: boolean translation_completed_at: type: string format: date-time review_completed_at: type: string format: date-time annotations: type: array items: $ref: '#/components/schemas/job_annotation_short' example: id: 626ea67628690c73ac86ac81eec2d185 job: id: abcd1234cdef1234abcd1234cdef1234 name: My Job 1 state: completed users: - id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe role: translator teams: - id: abcd1234cdef1234abcd1234cdef1234 name: Joe's team role: translator locale: id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB annotations: - name: priority value: high created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' completed: true translation_completed_at: '2017-01-28T09:52:53Z' review_completed_at: '2017-01-28T09:52:53Z' job_template_preview: type: object title: job_template_preview properties: id: type: string name: type: string example: null job_template_locale: type: object title: job_template_locale properties: id: type: string job_template: $ref: '#/components/schemas/job_template_preview' locale: $ref: '#/components/schemas/locale_preview' users: type: array items: $ref: '#/components/schemas/locale_user_preview' teams: type: array items: $ref: '#/components/schemas/locale_team_preview' example: id: 626ea67628690c73ac86ac81eec2d185 job_template: id: abcd1234cdef1234abcd1234cdef1234 name: template users: - id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe role: translator teams: - id: abcd1234cdef1234abcd1234cdef1234 name: Joe's team role: translator locale: id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB job_annotation: type: object title: job_annotation properties: name: type: string value: type: string created_at: type: string format: date-time updated_at: type: string format: date-time required: - name - value example: name: priority value: high created_at: '2023-10-01T12:00:00Z' updated_at: '2023-10-01T12:00:00Z' variable: type: object title: variable properties: name: type: string value: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: name: MY_VARIABLE value: Hello World created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' branch: type: object title: branch properties: base_project_id: type: string branch_project_id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time merged_at: type: string format: date-time merged_by: $ref: '#/components/schemas/user_preview' created_by: $ref: '#/components/schemas/user_preview' state: type: string child_branches: type: array items: type: string example: name: new-branch created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' merged_at: '2015-01-28T09:52:53Z' merged_by: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe created_by: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe state: success child_branches: - feature_2 - feature_3 subscription: type: object title: subscription properties: is_current: type: boolean trial_expired: type: boolean example: is_current: true trial_expired: false account_details: allOf: - $ref: '#/components/schemas/account' - type: object title: account_details properties: subscription: $ref: '#/components/schemas/subscription' slug: type: string roles: type: array items: type: string example: slug: company-account subscription: subscription roles: - Owner - Admin user: type: object title: user properties: id: type: string username: type: string name: type: string email: type: string position: type: string language: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe email: joe@phrase.com position: Lead Developer language: de created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' project_member_specific: type: object title: project_member_specific properties: id: type: string name: type: string project_role: type: string main_format: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project project_role: Developer main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' project_locales: allOf: - $ref: '#/components/schemas/project_member_specific' - type: object title: project_locales properties: locales: type: array items: $ref: '#/components/schemas/locale_preview' example: locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB member: type: object title: member properties: id: type: string email: type: string username: type: string created_at: type: string format: date-time last_activity_at: type: string format: date-time role: type: string projects: type: array items: $ref: '#/components/schemas/project_locales' permissions: type: object default_locale_codes: type: array items: type: string teams: type: array items: $ref: '#/components/schemas/team_short' spaces: type: array items: type: object properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects_count: type: integer example: id: acbdacbdacbdacbdacbdacbd email: foo@bar.com username: myname created_at: '2020-12-07T12:56:21Z' last_activity_at: '2020-12-09T12:56:21Z' role: Manager projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-Gb permissions: - create_upload: true review_translations: true default_locale_codes: - en - fi teams: - id: 04d36d845576b9d494d05e0b70fe813c name: Team 1 created_at: '2020-12-07T12:56:21Z' updated_at: '2020-12-07T12:56:21Z' spaces: - id: 04d36d845576b9d494d05e0b70fe813b name: Space2 created_at: '2020-12-07T12:56:21Z' updated_at: '2020-12-07T12:56:21Z' projects_count: 1 member_project_detail: type: object title: member_project_detail properties: id: type: string email: type: string username: type: string role: type: string projects: type: array items: $ref: '#/components/schemas/project_locales' permissions: type: object locale_ids: type: array items: type: string default_locale_codes: type: array items: type: string spaces: type: array items: type: object properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects_count: type: integer project_roles: type: array items: type: object properties: project_id: type: string role: type: string example: id: acbdacbdacbdacbdacbdacbd email: foo@bar.com username: myname role: Manager projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-Gb permissions: - create_upload: true review_translations: true locale_ids: - abcd1234abcd1234abcd1234 - abcd1234abcd1234abcd1235 default_locale_codes: - en - fi spaces: - id: 04d36d845576b9d494d05e0b70fe813b name: Space2 created_at: '2020-12-07T12:56:21Z' updated_at: '2020-12-07T12:56:21Z' projects_count: 1 project_roles: - project_id: abcd1234cdef1234abcd1234cdef1234 role: Developer screenshot: type: object title: screenshot properties: id: type: string name: type: string description: type: string screenshot_url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time markers_count: type: integer example: id: d2e056aa9e70b01121f41693e344f5ee name: A screenshot name description: A screenshot description screenshot_url: http://assets.example.com/screenshot.png created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' markers_count: 0 glossary_term: type: object title: glossary_term properties: id: type: string term: type: string description: type: string translatable: type: boolean case_sensitive: type: boolean translations: type: array items: $ref: '#/components/schemas/glossary_term_translation' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1233 term: Save description: This term is used on the 'Save' buttons of our website translatable: true case_sensitive: true translations: - id: abcd1234cdef1234abcd1234cdef1234 locale_code: fr-FR content: Entasser created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' - id: abcd1234cdef1234abcd1234cdef1235 locale_code: de-DE content: Speichern created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' tag: type: object title: tag properties: name: type: string keys_count: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time example: name: my-feature keys_count: 8 created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' tag_with_stats: allOf: - $ref: '#/components/schemas/tag' - type: object title: tag_with_stats properties: statistics: type: array items: type: object properties: locale: $ref: '#/components/schemas/locale_preview' statistics: type: object properties: keys_total_count: type: integer translations_completed_count: type: integer translations_unverified_count: type: integer keys_untranslated_count: type: integer example: statistics: - locale: id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE statistics: keys_total_count: 12 translations_completed_count: 9 translations_unverified_count: 11 keys_untranslated_count: 3 blacklisted_key: type: object title: blacklisted_key properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: date.formats.* created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' translation_key_details: allOf: - $ref: '#/components/schemas/translation_key' - type: object title: translation_key_details properties: name_plural: type: string comments_count: type: integer max_characters_allowed: type: integer screenshot_url: type: string unformatted: type: boolean xml_space_preserve: type: boolean original_file: type: string format_value_type: type: string creator: $ref: '#/components/schemas/user_preview' custom_metadata: type: object title: custom_metadata additionalProperties: type: string example: name_plural: home.index.headlines comments_count: 2 data_type: string max_characters_allowed: 140 screenshot_url: http://assets.example.com/screenshot.png unformatted: false xml_space_preserve: false original_file: '' format_value_type: '' creator: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe custom_metadata: fruit: Apple vegetable: Tomato affected_resources: type: object title: affected_resources properties: records_affected: type: integer example: records_affected: 2 styleguide_preview: type: object title: styleguide_preview properties: id: type: string title: type: string example: id: abcd1234cdef1234abcd1234cdef1234 title: My Style Guide translation_order: type: object title: translation_order properties: id: type: string name: type: string lsp: type: string amount_in_cents: type: integer currency: type: string message: type: string state: type: string translation_type: type: string progress_percent: type: integer source_locale: $ref: '#/components/schemas/locale_preview' target_locales: type: array items: $ref: '#/components/schemas/locale_preview' tag: type: string styleguide: $ref: '#/components/schemas/styleguide_preview' unverify_translations_upon_delivery: type: boolean quality: type: boolean priority: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 30AB4884 lsp: gengo amount_in_cents: 1152 currency: usd message: Please make everything sound really nice :) state: confirmed translation_type: pro progress_percent: 50 source_locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB target_locales: - id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE - id: abcd1234cdef1234abcd1234cdef1234 name: fr code: fr-FR tag: latest-upload styleguide: id: abcd1234cdef1234abcd1234cdef1234 title: My Styleguide unverify_translations_upon_delivery: true quality: true priority: true created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' quality_performance_score: anyOf: - type: object title: error description: Error field for when the request completely fails properties: error: type: object properties: message: type: string code: type: string - type: object properties: data: type: object properties: translations: type: array items: type: object properties: engine: type: string description: Engine used for the translation scoring score: type: number description: Quality score for the translation id: type: string description: One of the translation ids passed in arguments errors: type: array description: Array of errors for any failing translation IDs items: type: object properties: message: type: string code: type: string id: type: string description: One of the translation ids passed in arguments example: data: translations: - engine: qe_v4 score: 0.78 id: translation_id_1 - engine: qe_v4 score: 0.95 id: translation_id_2 errors: [] repo_sync: type: object title: repo_sync properties: id: type: string project: $ref: '#/components/schemas/project_short' provider: type: string enabled: type: boolean auto_import: type: boolean repo_name: type: string created_at: type: string format: date-time last_import_at: type: string format: date-time last_export_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' provider: github enabled: true auto_import: true repo_name: organization/repo created_at: '2015-01-28T09:52:53Z' last_import_at: '2015-01-28T09:52:53Z' last_export_at: '2015-01-28T09:52:53Z' repo_sync_event: type: object title: repo_sync_event properties: id: type: string type: type: string enum: - import - export created_at: type: string format: date-time status: type: string enum: - running - success - failure pull_request_url: type: string description: URL of the pull request created on export auto_import: type: boolean description: Whether the import was triggered by the repo push event errors: description: List of error messages, in case of failure type: array items: type: string example: type: import created_at: '2015-01-28T09:52:53Z' status: failure auto_import: true errors: - Error message 1 - Error message 2 space: type: object title: space properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects_count: type: integer projects: type: array items: $ref: '#/components/schemas/project' example: id: 2e7574e8f2372906a03110c2a7cfe671 name: My first space created_at: '2020-02-25T12:17:25Z' updated_at: '2020-03-13T14:46:57Z' projects_count: 2 projects: - id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml project_image_url: http://assets.example.com/project.png account: account created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' - id: abcd11231fadef1234adacd1234cdef1234 name: My IOS Project main_format: yml project_image_url: http://assets.example.com/project2.png account: account created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' team: type: object title: team properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects: type: array items: $ref: '#/components/schemas/project' spaces: type: array items: $ref: '#/components/schemas/space_short' users: type: array items: $ref: '#/components/schemas/user_preview' example: id: 2e7574e8f2372906a03110c2a7cfe671 name: My first Team created_at: '2020-02-25T12:17:25Z' updated_at: '2020-03-13T14:46:57Z' projects: - id: abcd11231fadef1234adacd1234cdef1234 name: My IOS Project main_format: yml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' spaces: - id: 626ea67628690c73ac86ac81eec2d185 name: IOS created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' projects_count: 3 users: - id: 3465jhkjhk3465hjjkhl346hklk3456kl username: Max name: Max Mustermann user-2: type: object title: user properties: id: type: string username: type: string name: type: string position: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe position: Lead Developer created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' team_detail: type: object title: team properties: id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time projects: type: array items: $ref: '#/components/schemas/project' spaces: type: array items: $ref: '#/components/schemas/space_short' users: type: array items: $ref: '#/components/schemas/user-2' example: id: 2e7574e8f2372906a03110c2a7cfe671 name: My first Team created_at: '2020-02-25T12:17:25Z' updated_at: '2020-03-13T14:46:57Z' projects: - id: abcd11231fadef1234adacd1234cdef1234 name: My IOS Project main_format: yml created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' spaces: - id: 626ea67628690c73ac86ac81eec2d185 name: IOS created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' projects_count: 3 users: - id: 3465jhkjhk3465hjjkhl346hklk3456kl username: Max name: Max Mustermann position: Developer created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' translation_parent: type: object title: translation_parent properties: id: type: string content: type: string example: id: abcd1234cdef1234abcd1234cdef1234 content: My parent translation translation: type: object title: translation properties: id: type: string content: type: string x-json-tag: json:"content" unverified: type: boolean excluded: type: boolean plural_suffix: type: string key: $ref: '#/components/schemas/key_preview' locale: $ref: '#/components/schemas/locale_preview' placeholders: type: array items: type: string state: type: string created_at: type: string format: date-time updated_at: type: string format: date-time linked_translation: $ref: '#/components/schemas/translation_parent' example: id: abcd1234cdef1234abcd1234cdef1234 content: My translation unverified: false excluded: false plural_suffix: '' key: id: abcd1234cdef1234abcd1234cdef1234 name: home.index.headline plural: false use_ordinal_rules: false locale: id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE placeholders: - '%{count}' state: translated created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' translation_details: allOf: - $ref: '#/components/schemas/translation' - type: object title: translation_details properties: user: $ref: '#/components/schemas/user_preview' word_count: type: integer example: user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe word_count: 2 affected_count: type: object title: affected_count properties: records_affected: type: integer example: records_affected: 96 notification_group: type: object title: notification_group properties: id: type: string event_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 event_name: keys:create created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' notification: type: object title: notification properties: id: type: string event_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time delivered_at: type: string format: date-time seen_at: type: string format: date-time data: type: object resource: type: object locale: $ref: '#/components/schemas/locale' user: $ref: '#/components/schemas/user_preview' project: $ref: '#/components/schemas/project' account: $ref: '#/components/schemas/account' group: $ref: '#/components/schemas/notification_group' example: id: abcd1234 event_name: keys:create data: object notification data resource: object of notification resource locale: id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE default: true main: false rtl: false plural_forms: - zero - one - other source_locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml project_image_url: http://assets.example.com/project.png account: id: abcd1234 name: Company Account slug: company_account company: My Awesome Company created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' company_logo_url: http://assets.example.com/company_logo.png created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' account: id: abcd1234 name: Company Account slug: company_account company: My Awesome Company created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' company_logo_url: http://assets.example.com/company_logo.png group: id: abcd1234cdef1234abcd1234cdef1234 event_name: keys:create created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' notification_group_detail: type: object title: notification_group_detail properties: id: type: string event_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time notifications_count: type: integer latest_notification: $ref: '#/components/schemas/notification' example: id: abcd1234cdef1234abcd1234cdef1234 event_name: keys:create created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' latest_notification: id: abcd1234 event_name: keys:create data: object notification data resource: object of notification resource locale: id: abcd1234cdef1234abcd1234cdef1234 name: de code: de-DE default: true main: false rtl: false plural_forms: - zero - one - other source_locale: id: abcd1234cdef1234abcd1234cdef1234 name: en code: en-GB created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe project: id: abcd1234cdef1234abcd1234cdef1234 name: My Android Project main_format: xml project_image_url: http://assets.example.com/project.png account: id: abcd1234 name: Company Account slug: company_account company: My Awesome Company created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' company_logo_url: http://assets.example.com/company_logo.png created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' account: id: abcd1234 name: Company Account slug: company_account company: My Awesome Company created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' company_logo_url: http://assets.example.com/company_logo.png group: id: abcd1234cdef1234abcd1234cdef1234 event_name: keys:create created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' account_search_result: type: object title: account_search_result properties: query: type: string excerpt: type: string key: $ref: '#/components/schemas/key_preview' locale: $ref: '#/components/schemas/locale_preview' project: $ref: '#/components/schemas/project' translation: $ref: '#/components/schemas/translation' other_translations: type: array items: $ref: '#/components/schemas/translation' example: query: keyword excerpt: excerpt text key: id: abcd1234cdef1234abcd1234cdef1234 name: key.name plural: false data_type: string tags: - tag 1 - tag 2 locale: id: abcd1234cdef1234abcd1234cdef1234 name: German code: de_DE project: id: abcd1234cdef1234abcd1234cdef1234 name: project name slug: project-slug main_format: '' project_image_url: '' created_at: '2021-05-04T14:16:26Z' updated_at: '2021-06-14T14:26:09Z' account: id: abcd1234cdef1234abcd1234cdef1234 name: account name slug: account-slug company: company name created_at: '2021-04-27T14:27:25Z' updated_at: '2021-06-14T14:35:15Z' company_logo_url: '' space: id: abcd1234cdef1234abcd1234cdef1234 name: space name slug: space-slug created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' projects_count: 1 translation: id: abcd1234cdef1234abcd1234cdef1234 content: some content unverified: true excluded: false plural_suffix: '' key: id: abcd1234cdef1234abcd1234cdef1234 name: key.name plural: false data_type: string tags: - tag 1 - tag 2 created_at: '2021-05-04T14:17:04Z' updated_at: '2021-05-04T14:17:04Z' placeholders: [] state: translated locale: id: abcd1234cdef1234abcd1234cdef1234 name: German code: de_DE other_translations: - id: abcd1234cdef1234abcd1234cdef1234 content: some content unverified: true excluded: false plural_suffix: '' key: id: abcd1234cdef1234abcd1234cdef1234 name: key.name plural: false data_type: string tags: - tag 1 - tag 2 created_at: '2021-05-04T14:17:04Z' updated_at: '2021-05-04T14:17:04Z' placeholders: [] state": translated locale: id: abcd1234cdef1234abcd1234cdef1234 name: English code: en_EN job_comment: type: object title: job_comment properties: id: type: string message: type: string job_id: type: string user: $ref: '#/components/schemas/user_preview' created_at: type: string format: date-time updated_at: type: string format: date-time mentioned_users: type: array items: $ref: '#/components/schemas/user_preview' example: id: abcd1234cdef1234abcd1234cdef1234 message: Some message... job_id: abcd1234cdef1234abcd1234cdef1234 user: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe created_at: '2015-01-28T09:52:53Z' updated_at: '2015-01-28T09:52:53Z' webhook_delivery: type: object title: webhook delivery properties: id: type: string webhook_id: type: string response_status_code: type: integer delivered_at: type: string format: date-time duration_ms: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time organization_job_template: type: object title: organization_job_template properties: id: type: string name: type: string briefing: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 626ea67628690c73ac86ac81eec2d185 name: template briefing: text created_at: '2017-01-28T09:52:53Z' updated_at: '2017-01-28T09:52:53Z' organization_job_template_details: allOf: - $ref: '#/components/schemas/organization_job_template' - type: object title: organization_job_template_details properties: owner: $ref: '#/components/schemas/user_preview' creator: $ref: '#/components/schemas/user_preview' locales: type: array items: $ref: '#/components/schemas/locale_preview' example: owner: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe creator: id: abcd1234cdef1234abcd1234cdef1234 username: joe.doe name: Joe Doe locales: - id: abcd1234cdef1234abcd1234cdef1234 name: English code: en-GB key_link: type: object properties: created_at: type: string format: date-time description: The timestamp when the link was created. updated_at: type: string format: date-time description: The timestamp when the link was last updated. created_by: $ref: '#/components/schemas/user_preview' description: The user who created the link. updated_by: $ref: '#/components/schemas/user_preview' description: The user who last updated the link. account: $ref: '#/components/schemas/account' description: The account associated with the link. parent: $ref: '#/components/schemas/key_preview' description: The parent translation key in the link. children: type: array items: $ref: '#/components/schemas/key_preview' description: The child translation keys linked to the parent. automation: type: object title: automation properties: id: type: string name: type: string status: type: string enum: - inactive - active - error trigger: type: string enum: - schedule - upload status_filters: description: translation key statuses used to filter keys that are added to jobs type: array items: type: string enum: - unverified - untranslated - ready_for_review project_id: type: string job_template_id: type: string tags: type: array items: type: string cron_schedule: type: string time_zone: type: string account: $ref: '#/components/schemas/account' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: abcd1234cdef1234abcd1234cdef1234 name: My First Automation status: active trigger: schedule status_filters: - unverified - untranslated - ready_for_review project_id: abcd1234cdef1234abcd1234cdef1234 job_template_id: abcd1234cdef1234abcd1234cdef1234 tags: - tag-1 - tag-2 cron_schedule: 00 13 * * 1,2 time_zone: GMT account: account created_at: '2021-06-28T09:52:53Z' updated_at: '2021-06-28T09:52:53Z' custom_metadata_data_type: $ref: '#/components/schemas/data_type' current_user: $ref: '#/components/schemas/user' job_template_locales: $ref: '#/components/schemas/job_template_locale' icu: $ref: '#/components/schemas/skeleton' parameters: X-PhraseApp-OTP: in: header name: X-PhraseApp-OTP description: Two-Factor-Authentication token (optional) required: false allowEmptyValue: false schema: type: string page: in: query name: page description: Page number required: false allowEmptyValue: false schema: type: integer example: 1 per_page: in: query name: per_page description: Limit on the number of objects to be returned, between 1 and 100. 25 by default required: false allowEmptyValue: false schema: type: integer example: 25 project_id: in: path name: project_id description: Project ID required: true schema: type: string id: in: path name: id description: ID required: true schema: type: string locale_codes: in: query name: locale_codes description: Locale Code required: false schema: type: string tag: in: query name: tag description: tag required: false schema: type: string figma_attachment_id: in: path name: figma_attachment_id description: Figma attachment ID required: true schema: type: string account_id: in: path name: account_id description: Account ID required: true schema: type: string custom_metadata_data_type: in: query name: data_type description: Data Type of Custom Metadata Property required: false schema: $ref: '#/components/schemas/data_type' example: boolean screenshot_id: in: path name: screenshot_id description: Screenshot ID required: true schema: type: string locale_id_as_id: in: path name: id description: Locale ID or locale name required: true schema: type: string If-Modified-Since: description: Last modified condition, see [Conditional GET requests / HTTP Caching](/en/api/strings/pagination#conditional-get-requests-%2F-http-caching) (optional) explode: false in: header name: If-Modified-Since required: false schema: type: string style: simple If-None-Match: description: ETag condition, see [Conditional GET requests / HTTP Caching](/en/api/strings/pagination#conditional-get-requests-%2F-http-caching) (optional) explode: false in: header name: If-None-Match required: false schema: type: string style: simple locale_id: in: path name: locale_id description: Locale ID required: true schema: type: string distribution_id: in: path name: distribution_id description: Distribution ID required: true schema: type: string branch: name: branch in: query description: Branch to use schema: type: string example: my-feature-branch job_owner: description: filter by user owning job example: abcd1234cdef1234abcd1234cdef1234 name: owned_by in: query schema: type: string job_assignee: description: filter by user assigned to job example: abcd1234cdef1234abcd1234cdef1234 name: assigned_to in: query schema: type: string job_state: description: 'filter by state of job; valid states are: `draft`, `in_progress`, `completed`' example: completed name: state in: query schema: type: string job_updated_since: description: filter by jobs updated since given date example: '2013-02-21T00:00:00Z' name: updated_since in: query schema: type: string include_annotations: in: query name: include_annotations description: Include job-locale annotations in the response required: false schema: type: boolean default: false omit_translation_keys: in: query name: omit_translation_keys description: Omit translation keys in the response to reduce payload size for bigger jobs required: false schema: type: boolean default: false key_id: in: path name: key_id description: Translation Key ID required: true schema: type: string comment_id: in: path name: comment_id description: Comment ID required: true schema: type: string translation_id: in: path name: translation_id description: Translation ID required: true schema: type: string glossary_id: in: path name: glossary_id description: Glossary ID required: true schema: type: string term_id: in: path name: term_id description: Term ID required: true schema: type: string query_account_id: in: query name: account_id description: Filter by Account ID required: false schema: type: string job_id: in: path name: job_id description: Job ID required: true schema: type: string job_template_id: in: path name: job_template_id description: Job Template ID required: true schema: type: string job_template_locale_id: in: path name: job_template_locale_id description: Job Template Locale ID required: true schema: type: string job_locale_id: in: path name: job_locale_id description: Job Locale ID required: true schema: type: string name: in: path name: name description: name required: true schema: type: string q: description: | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - `ids:key_id,...` for queries on a comma-separated list of ids - `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - `tags:tag_name` to filter for keys with certain tags - `translated:{true|false}` for translation status (also requires `locale_id` to be specified) - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries - `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples). example: mykey* translated:true name: q in: query schema: type: string repo_sync_id: in: path name: repo_sync_id description: Repo Sync ID required: true schema: type: string space_id: in: path name: space_id description: Space ID required: true schema: type: string team_id: in: path name: team_id description: Team ID required: true schema: type: string webhook_id: in: path name: webhook_id description: Webhook ID required: true schema: type: string response_status_codes: in: query name: response_status_codes description: List of Response Status Codes required: false schema: type: string key_id_as_id: in: path name: id description: Parent Translation Key ID required: true schema: type: string responses: '200': description: OK headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '201': description: The resource has been created headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '202': description: Accepted headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '204': description: The resource was deleted successfully. headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '400': description: Bad request headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '401': description: Unauthorized '403': description: Forbidden headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '404': description: Not Found headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '409': description: Conflict headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '422': description: Unprocessable entity content: application/json: schema: $ref: '#/components/schemas/errors' headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '429': description: Rate Limiting headers: X-Rate-Limit-Limit: $ref: '#/components/headers/X-Rate-Limit-Limit' X-Rate-Limit-Remaining: $ref: '#/components/headers/X-Rate-Limit-Remaining' X-Rate-Limit-Reset: $ref: '#/components/headers/X-Rate-Limit-Reset' '503': description: Server error '504': description: Gateway timeout x-tagGroups: - name: Core Resources tags: - Projects - Locales - Keys - Translations - Uploads - Tags - Custom Metadata Properties - Blacklisted Keys - Versions / History - name: Workflows tags: - Spaces - Jobs - Job Comments - Job Locales - Job Templates - Job Template Locales - Organization Job Templates - Organization Job Template Locales - Comments - Comment Reactions - Comment Replies - Branches - name: Quality tags: - Glossaries - Glossary Terms - Glossary Term Translations - name: Integrations tags: - Webhooks - Distributions - Releases - Release Triggers - name: Ordering tags: - Orders - Style guides - name: User management tags: - Authorizations - Users - Accounts - Members - Invitations - name: Screenshots tags: - Screenshots - Screenshot Markers - name: Misc tags: - Formats - name: Figma Attachments tags: - Figma attachments - Key's Figma attachments