---
title: "Append a single column"
method: POST
path: "/api/workspaces/{slug}/columns"
tags: ["Columns"]
---

# Append a single column

`POST /api/workspaces/{slug}/columns`

## Request

- Base URL: `https://trydock.ai`
- URL: `https://trydock.ai/api/workspaces/{slug}/columns`
- Auth: HTTP bearer

Server auto-positions the new column as next-after-max so the contiguity invariant holds; any `position` in the request body is ignored. 409 if the key already exists. Editor role required.

## Path parameters

- `slug` string, required

## Request body

- object
  - `column` object, required
    - `key` string, required
    - `label` string, required
    - `type` 'text' | 'longtext' | 'number' | 'status' | 'person' | 'date' | 'url' | 'checkbox' | 'select', required
    - `position` integer
    - `width` integer
    - `hidden` boolean
    - `wrap` boolean
    - `description` string
    - `options` object[]
      - `value` string, required
      - `label` string, required
      - `color` string

## Response `200`

Appended; returns the new column plus the full updated list.

- object
  - `column` object, required
    - `key` string, required
    - `label` string, required
    - `type` 'text' | 'longtext' | 'number' | 'status' | 'person' | 'date' | 'url' | 'checkbox' | 'select', required
    - `position` integer, required
    - `width` integer
    - `hidden` boolean
    - `wrap` boolean
    - `description` string
    - `options` object[]
      - `value` string, required
      - `label` string, required
      - `color` string
  - `columns` object[], required
    - `key` string, required
    - `label` string, required
    - `type` 'text' | 'longtext' | 'number' | 'status' | 'person' | 'date' | 'url' | 'checkbox' | 'select', required
    - `position` integer, required
    - `width` integer
    - `hidden` boolean
    - `wrap` boolean
    - `description` string
    - `options` object[]
      - `value` string, required
      - `label` string, required
      - `color` string

## Other responses

- `403`: Read-only role cannot modify columns.
- `409`: A column with the same key already exists.

## Changes

- **2026-11-05** `dd96ae96a412`: 3 info
  - added the new optional request property `column/wrap`
  - added the optional property `column/wrap` to the response with the `200` status
  - added the optional property `columns/items/wrap` to the response with the `200` status
- **2026-11-05** `767beae124a8`: 2 breaking, 1 info
  - the `column/description` response property's maxLength was increased from `280` to `4000` for the response status `200`
  - the `columns/items/description` response property's maxLength was increased from `280` to `4000` for the response status `200`
  - the `column/description` request property's maxLength was increased from `280` to `4000`

[Operation history](https://skmtc.dev/trydock/apis/dock-rest-api/changes/api/workspaces/:slug/columns/post.md)

---

[API](https://skmtc.dev/trydock/apis/dock-rest-api.md) - [All operations](https://skmtc.dev/trydock/apis/dock-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trydock/apis/dock-rest-api/revisions/dd96ae96a412?raw)
