---
title: "Get a project"
method: GET
path: "/api/projects/{id}"
tags: ["Projects"]
---

# Get a project

`GET /api/projects/{id}`

## Request

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

Field set depends on the caller's role: owner/admin receive the full record including `system_prompt`; viewer/editor receive a restricted set without prompt, model and wiring URLs.

## Query parameters

- `compact` '1'

## Response `200`

Project (returned bare, not wrapped).

- 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

## Other responses

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