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