---
title: "Set Translations Status Bulk"
method: POST
path: "/v1/projects/{project_id}/translations/bulk/status"
tags: ["translations"]
---

# Set Translations Status Bulk

`POST /v1/projects/{project_id}/translations/bulk/status`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/translations/bulk/status`
- Auth: none declared

Batch translation status change — best-effort, idempotent per item.

Per item, in order: intra-batch duplicates, unknown language, language
outside the caller's assigned scope, a status the caller's role cannot
set (`_can_set_status`), and a non-existent translation row each error
that item while siblings still commit. An item already at the target
status returns `unchanged`.

## Path parameters

- `project_id` string, required

## Request body

- TranslationBulkStatusIn
  - `items` TranslationBulkStatusItem[], required
    - `key_uuid` string, required
    - `language_uuid` string, required
    - `status` 'missing' | 'draft' | 'translated' | 'reviewed' | 'approved' | 'rejected', required

## Response `200`

Successful Response

- TranslationBulkStatusOut
  - `results` TranslationBulkStatusResult[], required
    - `index` integer, required
    - `status` string, required
    - `translation_uuid` string, nullable
    - `key_uuid` string, nullable
    - `language_uuid` string, nullable
    - `version` integer, nullable
    - `error` BulkItemError
      - `code` string, required
      - `message` string, required
  - `summary` BulkSummary, required
    - `total` integer, required
    - `ok` integer, required
    - `errors` integer, required
    - `created` integer
    - `updated` integer
    - `unchanged` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sonenta/apis/sonenta-api.md) · [All operations](https://skmtc.dev/sonenta/apis/sonenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sonenta/apis/sonenta-api/revisions/f853ea49fb05?raw)
