Phrase Releases API
The Releases API from Phrase — 3 operation(s) for releases.
The Releases API from Phrase — 3 operation(s) for releases.
openapi: 3.0.3
info:
title: Phrase Strings API Reference Accounts Releases 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: Releases
paths:
/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\" \\\n -u USERNAME_OR_ACCESS_TOKEN"
- lang: CLI v2
source: 'phrase releases list \
--account_id <account_id> \
--distribution_id <distribution_id> \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"description\":\"My first Release\",\"platforms\":[\"android\",\"ios\"],\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase releases create \
--account_id <account_id> \
--distribution_id <distribution_id> \
--data ''{"description": "My first Release", "platforms": ["android", "ios"], "branch":"my-feature-branch"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN"
- lang: CLI v2
source: 'phrase releases show \
--account_id <account_id> \
--distribution_id <distribution_id> \
--id <id> \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"description\":\"My first Release\",\"platforms\":[\"android\",\"ios\"],\"branch\":\"my-feature-branch\"}' \\\n -H 'Content-Type: application/json'"
- lang: CLI v2
source: 'phrase releases update \
--account_id <account_id> \
--distribution_id <distribution_id> \
--id <id> \
--data ''{"description": "My first Release", "platforms": "android,ios", "branch":"my-feature-branch"}'' \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X DELETE"
- lang: CLI v2
source: 'phrase releases delete \
--account_id <account_id> \
--distribution_id <distribution_id> \
--id <id> \
--access_token <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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST"
- lang: CLI v2
source: 'phrase releases publish \
--account_id <account_id> \
--distribution_id <distribution_id> \
--id <id> \
--access_token <token>'
x-cli-version: '2.5'
components:
schemas:
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'
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'
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
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'
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
id:
in: path
name: id
description: ID
required: true
schema:
type: string
account_id:
in: path
name: account_id
description: Account ID
required: true
schema:
type: string
distribution_id:
in: path
name: distribution_id
description: Distribution 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