Overview
Boards are the main working areas containing groups, columns, and items. Each board belongs to a project and can have multiple views.
Get Board
Retrieve a board with its groups and columns.
GET /api/trpc/boards.get?input={"json":{"id":"brd_01HXK5..."}}
Response:
{
"result": {
"data": {
"json": {
"id": "brd_01HXK5QJBN3YZXM8KJP2RSNV4C",
"name": "Sprint Board",
"projectId": "prj_01HXK5...",
"defaultView": "board",
"groups": [
{
"id": "grp_01HXK5...",
"name": "To Do",
"color": "#6366f1",
"position": 0,
"collapsed": false
},
{
"id": "grp_01HXK6...",
"name": "In Progress",
"color": "#f59e0b",
"position": 1,
"collapsed": false
},
{
"id": "grp_01HXK7...",
"name": "Done",
"color": "#22c55e",
"position": 2,
"collapsed": false
}
],
"columns": [
{
"id": "col_01HXK5...",
"name": "Status",
"type": "status",
"position": 0,
"config": {
"labels": [
{ "id": "lbl_1", "name": "To Do", "color": "#6366f1" },
{ "id": "lbl_2", "name": "In Progress", "color": "#f59e0b" },
{ "id": "lbl_3", "name": "Done", "color": "#22c55e", "isDone": true }
]
}
},
{
"id": "col_01HXK6...",
"name": "Assignee",
"type": "people",
"position": 1,
"config": { "multiple": true }
}
],
"createdAt": "2026-02-01T10:00:00.000Z"
}
}
}
}
Create Board
Create a new board in a project.
POST /api/trpc/boards.create
Request:
{
"json": {
"projectId": "prj_01HXK5...",
"name": "Bug Tracker",
"defaultView": "table",
"groups": [
{ "name": "Open", "color": "#ef4444" },
{ "name": "Fixed", "color": "#22c55e" },
{ "name": "Closed", "color": "#6b7280" }
],
"columns": [
{ "name": "Severity", "type": "dropdown", "config": { "options": ["Critical", "Major", "Minor", "Trivial"] } },
{ "name": "Reporter", "type": "people" },
{ "name": "Due Date", "type": "date" }
]
}
}
| Field | Type | Required | Description |
|---|
projectId | string | Yes | Parent project ID |
name | string | Yes | Board name (1-100 characters) |
defaultView | string | No | Default view: board, table, timeline, calendar, visual |
groups | array | No | Initial groups (default: “New Group”) |
columns | array | No | Initial columns (default: Status, People) |
templateId | string | No | Template ID for board structure |
Update Board
POST /api/trpc/boards.update
{
"json": {
"id": "brd_01HXK5...",
"name": "Bug Tracker v2",
"defaultView": "board"
}
}
Delete Board
POST /api/trpc/boards.delete
{
"json": {
"id": "brd_01HXK5..."
}
}
Group Operations
Create Group
POST /api/trpc/boards.groups.create
{
"json": {
"boardId": "brd_01HXK5...",
"name": "Backlog",
"color": "#8b5cf6",
"position": 0
}
}
Update Group
POST /api/trpc/boards.groups.update
{
"json": {
"id": "grp_01HXK5...",
"name": "Sprint Backlog",
"color": "#a855f7",
"collapsed": true
}
}
Reorder Groups
POST /api/trpc/boards.groups.reorder
{
"json": {
"boardId": "brd_01HXK5...",
"groupIds": ["grp_01HXK7...", "grp_01HXK5...", "grp_01HXK6..."]
}
}
Delete Group
POST /api/trpc/boards.groups.delete
{
"json": {
"id": "grp_01HXK5...",
"moveItemsTo": "grp_01HXK6..."
}
}
When deleting a group, specify moveItemsTo to move its items to another group. If not specified, all items in the group will be deleted.