> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rogeriq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Projects

List, create, update, and delete projects (the unit of data isolation).

# Projects API

A project owns conversations, contacts, KB articles, widget config,
integrations, forms, beacons, and webhooks. API keys are bound to a
single organization but can reach any project within that org.

## Endpoints

| Method | Path | Scope |
|--------|------|-------|
| `GET` | `/v1/orgs/{orgId}/projects` | `read` |
| `POST` | `/v1/orgs/{orgId}/projects` | `projects:write` |
| `GET` | `/v1/orgs/{orgId}/projects/{projectId}` | `read` |
| `PATCH` | `/v1/orgs/{orgId}/projects/{projectId}` | `projects:write` |
| `DELETE` | `/v1/orgs/{orgId}/projects/{projectId}` | `projects:admin` (destructive) |

## List projects

```bash cURL
curl https://api.rogeriq.com/api/v1/orgs/org_xxx/projects \
  -H "X-API-Key: riq_xxx"
```

```bash CLI
rogeriq projects list
```

```ts SDK
const projects = await roger.org("org_xxx").projects.list();
```

## Create a project

```bash cURL
curl -X POST https://api.rogeriq.com/api/v1/orgs/org_xxx/projects \
  -H "X-API-Key: riq_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "Acme Support", "domain": "support.acme.com"}'
```

```bash CLI
rogeriq projects create "Acme Support" --domain support.acme.com
```

```ts SDK
const project = await roger.org("org_xxx").projects.create({
  name: "Acme Support",
  domain: "support.acme.com",
});
```

### Body

1-100 characters.

Lowercase + hyphens, 2-50 chars. Auto-derived from `name` if omitted.
  Must be unique within the org.

Optional custom domain associated with the project.

### Response

```json
{
  "data": {
    "id": "prj_xxxxxxxxxxxx",
    "org_id": "org_xxxxxxxxxxxx",
    "name": "Acme Support",
    "slug": "acme-support",
    "domain": "support.acme.com",
    "agent_mode": "copilot",
    "ai_model": null,
    "created_at": "2026-05-17T18:00:00Z"
  }
}
```

`409 SLUG_CONFLICT` if the slug already exists in the org.

## Update a project

```bash cURL
curl -X PATCH https://api.rogeriq.com/api/v1/orgs/org_xxx/projects/prj_xxx \
  -H "X-API-Key: riq_xxx" \
  -H "Content-Type: application/json" \
  -d '{"agent_mode": "autopilot", "ai_model": "anthropic/claude-sonnet-4"}'
```

```bash CLI
rogeriq projects update prj_xxx --agent-mode autopilot --ai-model anthropic/claude-sonnet-4
```

### Body



One of `autopilot`, `copilot`, `assist`.
OpenRouter model id, e.g. `anthropic/claude-sonnet-4`.

## Delete a project

```bash
curl -X DELETE https://api.rogeriq.com/api/v1/orgs/org_xxx/projects/prj_xxx \
  -H "X-API-Key: riq_xxx"
```

Requires `projects:admin` scope. **Cascades** — every conversation,
contact, KB article, integration, webhook, form, and beacon owned by the
project is deleted.

## Audit

Every create / update / delete is recorded in the audit log with the
acting API key id. See `Settings → Audit log`.