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
bashcurl https://api.rogeriq.com/api/v1/orgs/org_xxx/projects \ -H "X-API-Key: riq_xxx"
bashrogeriq projects list
tsconst projects = await roger.org("org_xxx").projects.list();
Create a project
bashcurl -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"}'
bashrogeriq projects create "Acme Support" --domain support.acme.com
tsconst 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
bashcurl -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"}'
bashrogeriq 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
bashcurl -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.