openapi: 3.0.3 info: title: Phrase Strings API Reference Accounts Members 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: 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. ' paths: /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\" \\\n -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\" \\\n -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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"role\":\"Developer\",\"strategy\":\"set\",\"project_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"locale_ids\":\"abcd1234abcd1234abcd1234,abcd1234abcd1234abcd1235\",\"default_locale_codes\":[\"de\",\"en\"],\"space_ids\":[\"abcd1234abcd1234abcd1234\",\"abcd1234abcd1234abcd1235\"],\"permissions\":{\"create_upload\":true,\"review_translations\":true}}' \\\n -H 'Content-Type: application/json'" - 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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"project_role\":\"Developer\",\"locale_ids\":[\"fff565db236400772368235db2c6117e\",\"fff565db236400772368235db2c6117f\"]}' \\\n -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' components: schemas: 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 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' 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 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' 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 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 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-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 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' '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' '401': description: Unauthorized 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 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