---
title: "List a workspace's column schema"
method: GET
path: "/api/workspaces/{slug}/columns"
tags: ["Columns"]
---

# List a workspace's column schema

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

## Request

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

Returns every column on the workspace's primary table surface, in display order. Use this before `create_row` / `update_row` so an agent knows which keys are valid. Empty array on doc-only workspaces (columns auto-seed on first row write).

## Path parameters

- `slug` string, required

## Response `200`

Column list.

- object
  - `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`: Caller has no read access to this workspace.

## Changes

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

[Operation history](https://skmtc.dev/trydock/apis/dock-rest-api/changes/api/workspaces/:slug/columns/get.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)
