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
  }
}
FieldTypeRequiredDescription
boardIdstringYesBoard ID
namestringYesColumn display name (1-100 characters)
typestringYesColumn type (see below)
positionnumberNoColumn position (default: end)
widthnumberNoColumn width in pixels (default: 150)
requiredbooleanNoWhether a value is required (default: false)
configobjectNoType-specific configuration
defaultValueanyNoDefault 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": "formula",
  "config": {
    "expression": "{Budget} - {Spent}",
    "resultType": "number"
  }
}
{
  "type": "rating",
  "config": {
    "maxRating": 5,
    "icon": "star"
  }
}