Projects API
The projects API lets you create and manage projects within workspaces.
Procedures
project.list
List all projects in a workspace.
Type: Query
Required scope: read:project
GET /trpc/project.list?input={"workspaceId":"ws_abc123"}
Response:
{
"result": {
"data": [
{
"id": "prj_abc123",
"name": "Q1 Sprint Planning",
"description": "Sprint planning for Q1 2026",
"icon": "sprint",
"color": "#10b981",
"workspaceId": "ws_abc123",
"boardCount": 3,
"defaultView": "board",
"createdAt": "2026-01-20T09:00:00Z",
"updatedAt": "2026-03-15T11:30:00Z"
}
]
}
}
project.byId
Get a specific project by ID.
Type: Query
Required scope: read:project
GET /trpc/project.byId?input={"id":"prj_abc123"}
project.create
Create a new project in a workspace.
Type: Mutation
Required scope: write:project
POST /trpc/project.create
Input:
{
"workspaceId": "ws_abc123",
"name": "Bug Tracker",
"description": "Track and resolve bugs",
"color": "#ef4444",
"icon": "bug",
"defaultView": "table",
"templateId": "tpl_bugtracker"
}
The optional templateId field creates the project from a template, including pre-configured boards, groups, and fields.
project.update
Update a project's settings.
Type: Mutation
Required scope: write:project
POST /trpc/project.update
Input:
{
"id": "prj_abc123",
"name": "Bug Tracker v2",
"description": "Updated bug tracker",
"defaultView": "board"
}
project.delete
Delete a project and all its boards and items.
Type: Mutation
Required scope: write:project
POST /trpc/project.delete
Input:
{
"id": "prj_abc123"
}
This is a destructive operation. Deleted projects are moved to trash and can be restored within 30 days.
project.archive
Archive a project to hide it without deleting data.
Type: Mutation
Required scope: write:project
POST /trpc/project.archive
Input:
{
"id": "prj_abc123"
}
project.restore
Restore an archived or deleted project.
Type: Mutation
Required scope: write:project
POST /trpc/project.restore
Input:
{
"id": "prj_abc123"
}
project.duplicate
Create a copy of a project, optionally including items.
Type: Mutation
Required scope: write:project
POST /trpc/project.duplicate
Input:
{
"id": "prj_abc123",
"name": "Bug Tracker (Copy)",
"includeItems": false
}