---
title: "Create Project"
method: POST
path: "/v1/orgs/{org_id}/projects"
tags: ["projects"]
---

# Create Project

`POST /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

## Request body

- ProjectCreateIn
  - `slug` string, required
  - `name` string, required
  - `description` string, nullable
  - `source_language` string
  - `settings` object
  - `languages` ProjectInitialLanguage[]: Languages to provision at creation. The `source_language` is added automatically with `is_source=true` if not present in this list.
    - `code` string, required
    - `name` string, nullable
    - `fallback` string, nullable
  - `default_namespace` ProjectInitialNamespace
    - `slug` string
    - `name` string
    - `description` string, nullable

## Response `201`

Successful Response

- ProjectOut
  - `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)
