Translations
Manage a project's translations: create, read, update, and delete translation keys — the identifiers your app looks up, carrying metadata (description, tags, screenshot) — and set the translated value for a key in a given language. Value writes honor the project's approval workflow — non-approver writes land as pending_review.
List / search keys (paginated)
Return a paginated page of a project's translation keys, each with its values across every language. Combine the query params to search by name or source text, filter by tag / status / outdated, and sort. Pass `?branch=` to read a branch's overlay instead of main — see the [branching guide](/docs/guides/branches).
Create a key (write)
Add a new key to the project. You may seed its values in one call via the `values` map. On a protected main branch, target a branch with `?branch=` instead — direct main writes are rejected.
Get a key
Fetch a single key by id, with its values across all languages. With `?branch=` the branch overlay is returned and keys deleted on the branch are reported as not found.
Update a key (write)
Partial update — omitted fields are left unchanged. On a branch (`?branch=`) the change is staged as a metadata delta rather than applied to main.
Delete a key (write)
Permanently remove a key and all of its values. On a branch (`?branch=`) the deletion is staged as part of the branch diff and only takes effect on merge. On a protected main branch, direct deletes are rejected — target a branch.
Upsert a translation value (write)
Set the translation for one key in one language, creating the value if it doesn't exist. If the project requires approval, a write by a non-approver lands as `pending_review`; approvers' writes are auto-approved — see the [approval workflow](/docs/guides/approval-workflow). Pass `?branch=` to stage the change on a branch.