> ## Documentation Index
> Fetch the complete documentation index at: https://developers.clay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# tables columns list

> List a table's columns in abbreviated form.

List a table's columns with just their id, name, type, last-updated time, and — on source columns — per-source record counts. For basic and action columns' full settings, use [`clay tables columns get`](/cli/reference/tables-columns-get).

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
clay tables columns list <tableId>
```

## Arguments

| Argument  | Description                                          |
| --------- | ---------------------------------------------------- |
| `tableId` | The id of the table whose columns to list. Required. |

## Output

Each column is discriminated on `type`. The `sources` array is present only on source columns, with one entry per attached source and its imported-record count.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": [
    {
      "type": "basic",
      "id": "col_abc",
      "name": "Email",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    },
    {
      "type": "source",
      "id": "col_src",
      "name": "Imported CSV",
      "updatedAt": "2026-01-01T00:00:00.000Z",
      "sources": [{ "id": "src_1", "name": "leads.csv", "numSourceRecords": 500 }]
    }
  ]
}
```

| Field                               | Type                              | Description                                         |
| ----------------------------------- | --------------------------------- | --------------------------------------------------- |
| `data[].type`                       | `"basic" \| "action" \| "source"` | Column kind. Discriminates the shape.               |
| `data[].id`                         | string                            | Column id.                                          |
| `data[].name`                       | string                            | Display name.                                       |
| `data[].updatedAt`                  | string                            | Last-updated timestamp.                             |
| `data[].sources`                    | array                             | Source columns only. One entry per attached source. |
| `data[].sources[].numSourceRecords` | number                            | Number of records imported from that source.        |

Column types: `basic` is a plain data column (optionally formula-backed), `action` runs an action or enrichment to populate the column, and `source` represents attached data source(s) and carries no settings.

## Errors

| Code               | Exit | Notes                                                                 |
| ------------------ | ---- | --------------------------------------------------------------------- |
| `validation_error` | 2    | The `tableId` argument is required, or the table is an archive table. |
| `not_found`        | 6    | No table with that id in the workspace.                               |
| `auth_forbidden`   | 3    | The API key lacks the `cli:all` scope, or you cannot read this table. |

## Examples

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
clay tables columns list tbl_123
clay tables columns list tbl_123 | jq -r '.data[].name'
clay tables columns list tbl_123 | jq -r '.data[] | select(.type == "source") | .sources[].numSourceRecords'
```
