List translation keys
All current members may read. Returns only the paged keys and up to five selected language values. Missing is based on the selected direct value, never fallback. Search matches literal text in key names and selected language values; %, _ and backslash are not wildcard patterns. Include/exclude tag filters accept comma-separated UUIDs, at most 20 each; include matches any, exclude always wins. Content is scoped to the explicit branch. Branch archives are read-only; current workspace roles still apply. Each row includes saved direct coverage counts across all branch languages, including inactive and undisplayed ones. The languageCoverage summary counts all active branch keys independently of list filters and pagination.
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/keysOperation: listTranslationKeys · Download OpenAPI
Access
Section titled “Access”Requires an authenticated Localisync panel session. The API checks current membership and permissions for workspace operations. See authentication and request rules.
sessionCookie
{ "type": "apiKey", "in": "cookie", "name": "__Host-localisync-session", "description": "Opaque server session. Local HTTP development uses its explicitly configured development cookie name."}Parameters
Section titled “Parameters”| Name | Location | Required | Description |
|---|---|---|---|
workspaceId |
path | Yes | |
projectId |
path | Yes | |
page |
query | No | |
pageSize |
query | No | |
locales |
query | Yes | |
q |
query | No | |
status |
query | No | |
filterLocale |
query | No | Configured language; use together with state. |
state |
query | No | Use together with filterLocale. |
includeTags |
query | No | Comma-separated project tag UUIDs; at most 20 distinct tags. |
excludeTags |
query | No | Comma-separated project tag UUIDs; at most 20 distinct tags. |
branchId |
path | Yes | Explicit branch UUID in this project. No implicit main selection. |
workspaceId
Section titled “workspaceId”{ "type": "string", "format": "uuid"}projectId
Section titled “projectId”{ "type": "string", "format": "uuid"}{ "type": "integer", "minimum": 1, "maximum": 100000, "default": 1}pageSize
Section titled “pageSize”{ "type": "integer", "minimum": 1, "maximum": 100, "default": 25}locales
Section titled “locales”{ "type": "string", "description": "Comma-separated configured locale codes; one to five."}{ "type": "string", "maxLength": 200, "default": ""}status
Section titled “status”{ "type": "string", "enum": [ "active", "archived", "all" ], "default": "active"}filterLocale
Section titled “filterLocale”{ "type": "string", "minLength": 2, "maxLength": 255}{ "type": "string", "enum": [ "missing", "translated", "reviewed", "unreviewed" ]}includeTags
Section titled “includeTags”{ "type": "string"}excludeTags
Section titled “excludeTags”{ "type": "string"}branchId
Section titled “branchId”{ "type": "string", "format": "uuid"}Request body
Section titled “Request body”No request body.
Responses
Section titled “Responses”Committed result. Responses are private and Cache-Control: no-store.
Content type: application/json
Schema reference: TablePage.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
items |
Array of object | Yes | — |
page |
integer | Yes | minimum: 1 |
pageSize |
integer | Yes | minimum: 1; maximum: 100 |
hasMore |
boolean | Yes | — |
languageCoverage |
Array of object | Yes | Saved direct translation and valid review counts for every requested locale across all active keys in the explicit branch. Search, tags, key status, value/review filters and pagination do not affect these counts. Archived keys, fallback values and unsaved drafts are excluded. Inactive languages are included when requested. With no active keys, all counts are zero. Review coverage uses translated as its denominator.; maxItems: 5 |
canEditShared |
boolean | Yes | — |
permissions |
Array of object | Yes | maxItems: 5 |
{ "$ref": "#/components/schemas/TablePage"}Invalid request or ICU value; field and locale issues may be included.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Sign in to continue.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Current role cannot perform this action.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Project or key is not visible in the current workspace.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Stale version, reserved key name, archive or inactive-language conflict. Compare current data before retrying.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Mutation exceeds 1 MiB.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Request limit exceeded.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}A required service is unavailable; no successful change is claimed.
Content type: application/json
Schema reference: Error.
| Field | Type | Required | Constraints / description |
|---|---|---|---|
error |
string | Yes | — |
message |
string | Yes | — |
requestId |
string | No | — |
details |
object | No | — |
statusCode |
integer | No | May be included by HTTP-level request limits. |
{ "$ref": "#/components/schemas/Error"}Related guidance
Section titled “Related guidance”Choose whether we remember appearance preferences and use Google Analytics on Localisync and its documentation. Optional storage stays off until you accept.
Read our cookie policy