Uploads an image that shows translators where a key appears.
HTTP
POST /keys/{keyId}/assetsAccess: Session token only. API keys get 403 with insufficient_scope.
Role: Project reviewer or manager. The plan of the organisation must include screenshots.
Path parameters #
| Parameter | Description |
|---|---|
keyId | The id of the key. |
Request body #
multipart/form-data.
| Field | Type | Required | Description |
|---|---|---|---|
file | file | yes | A PNG, JPEG, WebP or GIF image of at most 5 MB. The type is taken from the content of the file, not from its name. SVG is not accepted. |
A key can have up to 10 screenshots. When a branch is created, its keys get the screenshots of the keys they are copied from. Merging a branch adds screenshots to the keys of the base branch that do not have them yet.
Response 201 #
The screenshot.
JSON
{ "id": "0197a3ca-8197-7e88-9bdf-3f7c9a4e6108", "filename": "cart.png", "mimeType": "image/png", "size": 48210, "createdAt": "2026-10-16T09:44:55+00:00" }Response fields #
| Field | Type | Description |
|---|---|---|
id | string | The id of the screenshot. |
filename | string | The name of the uploaded file, without slashes and control characters, at most 120 characters. |
mimeType | string | image/png, image/jpeg, image/webp or image/gif. |
size | integer | The size in bytes. |
createdAt | string | When it was uploaded, in ISO 8601. |
Errors #
| Status | error | When |
|---|---|---|
| 401 | unauthenticated | The token is missing or not valid. |
| 402 | plan_limit | The plan does not include screenshots. limit is assets. |
| 403 | forbidden | You are a translator in the project. |
| 404 | not_found | The key does not exist, you have no access to its project, or keyId is not a UUID. |
| 422 | invalid_request | fields.file says why: missing, too_large, unsupported (not a PNG, JPEG, WebP or GIF image) or too_many (the key has 10 screenshots). |
| 429 | rate_limited | Too many requests, see Rate limiting. |
See Errors for the error format.