---
title: "Update Table Columns"
method: PUT
path: "/api/data-sources/tables/{table_id}/meta/columns"
tags: ["data_sources"]
---

# Update Table Columns

`PUT /api/data-sources/tables/{table_id}/meta/columns`

## Request

- Base URL: `https://app.dataassist.io` (the document declares no server; this is the origin it was published from)
- URL: `https://app.dataassist.io/api/data-sources/tables/{table_id}/meta/columns`
- Auth: none declared

Persist column metadata.

For non-live tables (csv / sftp) — the local schema is the source of truth,
so we only merge label/description for the columns the caller sent.

For live-query tables — re-introspect the remote schema and reconcile:
  * only columns the caller sent AND that exist remotely are kept,
  * stored columns missing from the caller's set are dropped,
  * remote columns the caller didn't send are NOT auto-added (the user
    explicitly opts-in via the NEW checkbox on the detail page).

## Path parameters

- `table_id` integer, required

## Request body

- UpdateColumnsRequest
  - `columns` object, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dataassist/apis/dataassist-io-server.md) · [All operations](https://skmtc.dev/dataassist/apis/dataassist-io-server/llms.txt) · [OpenAPI document](https://skmtc.dev/dataassist/apis/dataassist-io-server/revisions/43b22ccf75fe?raw)
