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 boardIdstring Yes Board ID namestring Yes Column display name (1-100 characters) typestring Yes Column type (see below) positionnumber No Column position (default: end) widthnumber No Column width in pixels (default: 150) requiredboolean No Whether a value is required (default: false) configobject No Type-specific configuration defaultValueany 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
}
}
Column Configuration Examples
{
"type" : "status" ,
"config" : {
"labels" : [
{ "id" : "lbl_1" , "name" : "Open" , "color" : "#3b82f6" , "isDone" : false },
{ "id" : "lbl_2" , "name" : "In Review" , "color" : "#f59e0b" , "isDone" : false },
{ "id" : "lbl_3" , "name" : "Approved" , "color" : "#22c55e" , "isDone" : true },
{ "id" : "lbl_4" , "name" : "Rejected" , "color" : "#ef4444" , "isDone" : false }
],
"defaultLabelId" : "lbl_1"
}
}
{
"type" : "currency" ,
"config" : {
"currency" : "USD" ,
"locale" : "en-US" ,
"decimals" : 2
}
}
{
"type" : "rating" ,
"config" : {
"maxRating" : 5 ,
"icon" : "star"
}
}