---
title: "Update Column"
method: PATCH
path: "/api/tf/tables/{table_id}/columns/{column_id}"
tags: ["tableflow"]
---

# Update Column

`PATCH /api/tf/tables/{table_id}/columns/{column_id}`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/tf/tables/{table_id}/columns/{column_id}`
- Auth: HTTP bearer

## Path parameters

- `table_id` string, uuid, required
- `column_id` string, uuid, required

## Request body

- SrcTableflowSchemasColumnUpdate: Partial update. Round A re-enables `cell_type` change after column creation; the service coerces existing cell values across the allowed transition matrix and drops un-coercible values to null. Pairs not on the matrix return 400 with a "delete + recreate" hint. `pinned_side` is a layout hint. Three-valued: a literal "left" / "right" pins the column to that edge of the grid; explicit `None` via the JSON `null` literal unpins. Omitting the key leaves the current value alone — the route handler distinguishes via Pydantic `model_fields_set`.
  - `name` string, nullable
  - `width_px` integer, nullable
  - `cell_config` object, nullable
  - `cell_type` string, nullable
  - `pinned_side` string, nullable

## Response `200`

Successful Response

- ColumnResponse
  - `id` string, uuid, required
  - `table_id` string, uuid, required
  - `name` string, required
  - `cell_type` string, required
  - `cell_config` object, required
  - `order_key` string, required
  - `width_px` integer, nullable, required
  - `pinned_side` string, nullable, required
  - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
