openapi: 3.0.3 info: title: Phrase Strings API Reference Accounts Screenshot Markers 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: Screenshot Markers paths: /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\" \\\n -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\" \\\n -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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X POST \\\n -d '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"presentation\":\"{ \\\"x\\\": 100, \\\"y\\\": 100, \\\"w\\\": 100, \\\"h\\\": 100 }\"}' \\\n -H 'Content-Type: application/json'" - 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\" \\\n -u USERNAME_OR_ACCESS_TOKEN \\\n -X PATCH \\\n -d '{\"branch\":\"my-feature-branch\", \"key_id\":\"abcd1234abcd1234abcd1234abcd1234\",\"presentation\":\"{ \\\"x\\\": 100, \\\"y\\\": 100, \\\"w\\\": 100, \\\"h\\\": 100 }\"}' \\\n -H 'Content-Type: application/json'" - 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\" \\\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 screenshot_markers delete \ --project_id \ --screenshot_id \ --branch my-feature-branch \ --access_token ' x-cli-version: '2.5' components: responses: '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' '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' '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' headers: 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 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 parameters: X-PhraseApp-OTP: in: header name: X-PhraseApp-OTP description: Two-Factor-Authentication token (optional) required: false allowEmptyValue: false schema: type: string screenshot_id: in: path name: screenshot_id description: Screenshot ID required: true 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 schemas: 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' 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