Phrase Job Locales API
The Job Locales API from Phrase — 5 operation(s) for job locales.
The Job Locales API from Phrase — 5 operation(s) for job locales.
openapi: 3.0.3
info:
title: Phrase Strings API Reference Accounts Job Locales API
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: Job Locales
paths:
/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\" \\\n -u USERNAME_OR_ACCESS_TOKEN"
- lang: CLI v2
source: 'phrase job_locales list \
--project_id <project_id> \
--job_id <job_id> \
--branch my-feature-branch \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales create \
--project_id <project_id> \
--job_id <job_id> \
--data ''{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN"
- lang: CLI v2
source: 'phrase job_locales show \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--branch my-feature-branch \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\",\"locale_id\":\"abcd1234cdef1234abcd1234cdef1234\",\"user_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"], \"translator_team_ids\":[\"abcd1234cdef1234abcd1234cdef1234\"]}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales update \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--data ''{"branch":"my-feature-branch", "locale_id":"abcd1234cdef1234abcd1234cdef1234", "user_ids": "abcd1234cdef1234abcd1234cdef1234", "team_ids": "abcd1234cdef1234abcd1234cdef1234", "translator_team_ids": "abcd1234cdef1234abcd1234cdef1234"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales delete \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--branch my-feature-branch \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales complete \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--data ''{"branch":"my-feature-branch"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales complete \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--data ''{"branch":"my-feature-branch"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase job_locales reopen \
--project_id <project_id> \
--job_id <job_id> \
--id <id> \
--data ''{"branch":"my-feature-branch"}'' \
--access_token <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'
components:
schemas:
locale_team_preview:
type: object
title: locale_team_preview
properties:
id:
type: string
name:
type: string
role:
type: string
example: null
job_preview:
type: object
title: job_preview
properties:
id:
type: string
name:
type: string
state:
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_annotation_short:
type: object
title: job_annotation
properties:
name:
type: string
value:
type: string
required:
- name
- value
example:
name: priority
value: high
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_user_preview:
type: object
title: locale_user_preview
properties:
id:
type: string
username:
type: string
name:
type: string
role:
type: string
example: null
headers:
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-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
X-Rate-Limit-Remaining:
description: The number of remaining requests in the current period
schema:
type: integer
X-Rate-Limit-Limit:
description: The number of allowed requests in the current period
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
responses:
'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'
'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'
'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'
'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'
parameters:
X-PhraseApp-OTP:
in: header
name: X-PhraseApp-OTP
description: Two-Factor-Authentication token (optional)
required: false
allowEmptyValue: false
schema:
type: string
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
branch:
name: branch
in: query
description: Branch to use
schema:
type: string
example: my-feature-branch
job_id:
in: path
name: job_id
description: Job ID
required: true
schema:
type: string
id:
in: path
name: id
description: ID
required: true
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
project_id:
in: path
name: project_id
description: Project ID
required: true
schema:
type: string
page:
in: query
name: page
description: Page number
required: false
allowEmptyValue: false
schema:
type: integer
example: 1
securitySchemes:
Token:
type: apiKey
in: header
name: Authorization
description: Enter your token in the format `token TOKEN`
Basic:
type: http
scheme: basic
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