---
title: "List Languages"
method: GET
path: "/v1/projects/{project_id}/languages"
tags: ["languages"]
---

# List Languages

`GET /v1/projects/{project_id}/languages`

## Request

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

## Path parameters

- `project_id` string, required

## Query parameters

- `version_id` string, nullable: Accepted for parity with version-aware list endpoints. Languages are project-scoped, so the param only validates the version exists; it does not narrow the result.
- `with_status_breakdown` boolean: When true, each language's `completion.status_breakdown` is populated with per-status counts (translated/reviewed/approved/draft/missing/total) matching the coverage page. Opt-in: it runs the coverage computation, so the default list stays cheap.

## Response `200`

Successful Response

- LanguageListOut
  - `items` LanguageOut[], required
    - `uuid` string, required
    - `project_uuid` string, required
    - `code` string, required
    - `name` string, nullable, required
    - `fallback` string, nullable, required
    - `is_source` boolean, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `completion` LanguageCompletion
      - `translated` integer, required
      - `total` integer, required
      - `status_breakdown` LanguageStatusBreakdown: Per-status counts over the production version's active keys — SAME shape + computation as the coverage endpoint's CoverageLanguage, so client-admin can render the identical stacked CoverageBar here. Buckets translated/reviewed/ approved are the live, mutually-exclusive states; `draft` = has a value but not live; `missing` = total - (translated+reviewed+approved) (i.e. everything not live, draft included).
        - `translated` integer, required
        - `reviewed` integer, required
        - `approved` integer, required
        - `draft` integer, required
        - `missing` integer, required
        - `total` integer, required
        - `pct_translated` integer, required

## 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)
