Columns API
API endpoints for managing board columns (custom field definitions).
Overview
Columns define the custom fields on a board. Each column has a type (text, number, status, etc.) and configuration that determines how values are stored, validated, and displayed.
List Columns
List all columns on a board.
GET /api/trpc/columns.list?input={"json":{"boardId":"brd_01HXK5..."}}
Response:
{
"result": {
"data": {
"json": {
"columns": [
{
"id": "col_01HXK5QJBN3YZXM8KJP2RSNV4C",
"boardId": "brd_01HXK5...",
"name": "Status",
"type": "status",
"position": 0,
"width": 150,
"required": false,
"config": {
"labels": [
{ "id": "lbl_1", "name": "To Do", "color": "#6366f1", "isDone": false },
{ "id": "lbl_2", "name": "In Progress", "color": "#f59e0b", "isDone": false },
{ "id": "lbl_3", "name": "Done", "color": "#22c55e", "isDone": true }
],
"defaultLabelId": "lbl_1"
},
"createdAt": "2026-02-01T10:00:00.000Z"
},
{
"id": "col_01HXK6...",
"boardId": "brd_01HXK5...",
"name": "Priority",
"type": "priority",
"position": 1,
"width": 120,
"required": true,
"config": {},
"createdAt": "2026-02-01T10:00:00.000Z"
}
]
}
}
}
}
Create Column
Add a new column to a board.
POST /api/trpc/columns.create
Request:
{
"json": {
"boardId": "brd_01HXK5...",
"name": "Story Points",
"type": "number",
"position": 5,
"required": false,
"config": {
"decimals": 0,
"suffix": " pts"
},
"defaultValue": 0
}
}
| Field | Type | Required | Description |
|---|---|---|---|
boardId | string | Yes | Board ID |
name | string | Yes | Column display name (1-100 characters) |
type | string | Yes | Column type (see below) |
position | number | No | Column position (default: end) |
width | number | No | Column width in pixels (default: 150) |
required | boolean | No | Whether a value is required (default: false) |
config | object | No | Type-specific configuration |
defaultValue | any | No | Default value for new items |
Available Column Types
text, long_text, number, currency, percentage, rating, progress,
date, date_range, timeline, time_tracking,
status, label, dropdown, checkbox, priority,
people, link, dependency,
formula, lookup, auto_number,
created_date, last_updated,
file, email, phone, url, color
Update Column
Update a column’s name, configuration, or settings.
POST /api/trpc/columns.update
Request:
{
"json": {
"id": "col_01HXK5...",
"name": "Effort Points",
"config": {
"decimals": 1,
"suffix": " pts"
},
"required": true
}
}
Changing a column’s type is not supported. To change the type, create a new column and migrate the data.
Reorder Columns
Set the display order of columns on a board.
POST /api/trpc/columns.reorder
{
"json": {
"boardId": "brd_01HXK5...",
"columnIds": [
"col_01HXK5...",
"col_01HXK8...",
"col_01HXK6...",
"col_01HXK7..."
]
}
}
Delete Column
Delete a column and all its associated values.
POST /api/trpc/columns.delete
{
"json": {
"id": "col_01HXK5..."
}
}
Deleting a column permanently removes all values stored in that column across all items. This action cannot be undone.
Duplicate Column
Create a copy of a column with the same configuration and optionally copy all values.
POST /api/trpc/columns.duplicate
{
"json": {
"id": "col_01HXK5...",
"name": "Status (Copy)",
"includeValues": true
}
}