---
title: "List Projects"
method: GET
path: "/v1/orgs/{org_id}/projects"
tags: ["projects"]
---

# List Projects

`GET /v1/orgs/{org_id}/projects`

## Request

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

## Path parameters

- `org_id` string, required

## Response `200`

Successful Response

- ProjectListOut
  - `items` ProjectOut[], required
    - `uuid` string, required
    - `org_uuid` string, required
    - `slug` string, required
    - `name` string, required
    - `description` string, nullable
    - `source_language` string, required
    - `settings` object
    - `cdn_publish_roles_effective` string[]: Roles allowed to publish this project to the CDN, resolved from `settings.cdn_publish_roles` (or the developer+ default when unset). Read-only; edit via `settings.cdn_publish_roles`.
    - `require_approval_before_publish` boolean
    - `key_count` integer: Active keys in the production version (computed live, never the denormalised counter).
    - `language_count` integer, required: Languages configured on the project, SOURCE INCLUDED (no target language = 1).
    - `completion_pct` integer, required: 0..100 on the production version: pairs (target language x active key with a non-empty source value) at status translated/reviewed/approved, over all such pairs; 0 when there is none. Source language excluded. (`/coverage` is being aligned on this definition in #389.)
    - `open_task_count` integer, required: Project tasks still pending: status `open` or `in_progress` (`done`/`dismissed` are closed).
    - `role` 'owner' | 'admin' | 'developer' | 'translator' | 'qa' | 'reviewer' | 'viewer', nullable
    - `auto_translate_missing` boolean
    - `auto_translate_paused_until` string, date-time, nullable
    - `auto_translate_last_burst_at` string, date-time, nullable
    - `auto_translate_last_burst_count` integer, nullable
    - `auto_translate_last_burst_keys` string[]
    - `bunny_zone_id` string, nullable
    - `cdn_hostname` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `source_language_changed` boolean
    - `cdn_republish_recommended` boolean
    - `old_source_rows_reset` 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)
