---
title: "Update project settings"
method: PATCH
path: "/api/projects/{id}"
tags: ["Projects"]
---

# Update project settings

`PATCH /api/projects/{id}`

## Request

- Base URL: `https://dosai.pro`
- URL: `https://dosai.pro/api/projects/{id}`
- Auth: HTTP bearer

Partial update. Requires role admin or owner on the project, and a key with `write` scope. Only the listed fields are accepted; unknown fields are rejected.

## Request body

- ProjectUpdate: All fields optional; send only what changes.
  - `name` string
  - `company_name` string
  - `industry` string
  - `description` string
  - `system_prompt` string
  - `status` 'draft' | 'active' | 'paused' | 'archived'
  - `color` string
  - `notify_email` string, email, nullable

## Response `200`

Updated project. `data` is null when the update touched wiring the caller may not read back; `refetch_required` then asks the client to re-read the project rather than trust its local copy.

- object
  - `data` Project: Fields vary by role: viewer/editor do not receive system_prompt, openai_model, blacklist or notify/crm wiring.
    - `id` string, uuid, required
    - `name` string, required
    - `company_name` string
    - `industry` string
    - `description` string
    - `system_prompt` string: Owner/admin only.
    - `status` 'draft' | 'active' | 'paused' | 'archived', required
    - `channel` string
    - `color` string
    - `openai_model` string: Owner/admin only.
    - `token_balance` integer: Balance in US cents.
    - `tokens_used` integer
    - `total_conversations` integer
    - `total_leads` integer
    - `subscription_active` boolean
    - `subscription_expires_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `success` boolean, required
  - `refetch_required` boolean

## Other responses

- `400`: Validation failed.
- `401`: Missing, invalid, expired or revoked key.
- `403`: Not allowed. Distinguish by `code`: `INSUFFICIENT_SCOPE` (read-only key attempted a mutation), `API_KEY_PROJECT_SCOPE` (project-scoped key reached outside its project), `FORBIDDEN` (the user's role on this project is too low), `ACCOUNT_BANNED`.
- `404`: No such resource, or it belongs to another account.
- `429`: Too many requests. 120/min per key overall, plus a stricter per-endpoint budget. Retry after the number of seconds in Retry-After.

---

[API](https://skmtc.dev/dosai/apis/dos-ai-public-api.md) · [All operations](https://skmtc.dev/dosai/apis/dos-ai-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dosai/apis/dos-ai-public-api/revisions/38ce5f4e8f50?raw)
