API reference
Projects
Projects belong to the organization that creates them and group run sessions. A project's tasks are its sessions. Names keep their display case; matching accepts the exact name or slug without regard to case. A project is created explicitly; a run never creates one.
The project object#
| Field | Type | Meaning |
|---|---|---|
name |
string, 1 to 64 characters | No control characters. |
slug |
string | Lowercase words joined by -. |
counts |
object | Tasks per column: needs_you, running, done, failed. |
updated_at |
date-time | |
now |
list, up to 3 | What is running: task_id, latest_run_id, title, workbench, source (cloud), text (up to 140 characters), at. |
waiting |
list | Tasks waiting on you: task_id, latest_run_id, title, text, at. |
latest_done |
object or null | The latest completion: task_id, latest_run_id, title, at, has_outcome. |
today |
object | runs, tokens, cost_usd (or null). |
List projects#
GET /v1/projects
Key runs:read, or session: member.
| Query | Type | Meaning |
|---|---|---|
organization |
slug | For a session. |
Response 200 { "projects": [ ... ] }.
Create a project#
POST /v1/projects
Key runs:write, or session: member.
| Field | Type | Meaning |
|---|---|---|
name |
string, 1 to 64 characters | Required. |
organization |
slug | For a session. |
Response 201: the project. Names and slugs are unique within the organization.
List tasks#
GET /v1/projects/:slug/tasks
Key runs:read, or session: member. Newest update first.
| Query | Type | Meaning |
|---|---|---|
organization |
slug | For a session. |
Response 200:
{
"tasks": [
{
"id": "wbs_...",
"project": { "name": "API", "slug": "api" },
"source": "cloud",
"title": "Review the open migration",
"workbench": { "name": "code-review", "version": "1.2.0" },
"status": "needs_input",
"column": "needs_you",
"latest_run_id": "wb_...",
"needs_input": true,
"created_at": "...",
"updated_at": "..."
}
]
}status is the latest run's status. column is needs_you, running, done, or failed.
Use a project#
Pass project (name or slug) to POST /v1/runs or the MCP run tool. Filter runs and sessions with project on GET /v1/runs and GET /v1/sessions, or wait on a whole project with the MCP wait tool. Project and task changes are published on the realtime socket under project:<slug>.
Projects on workbenches.dev are separate from the local projects wb project manages on your machine.