# List Contacts Table Columns

List the columns on a table, with type and aggregated per-cell status counts.

> Billing: Free.

Endpoint: GET /v3/contacts/tables/{table_id}/columns
Security: ApiKeyAuth

## Path parameters:

  - `table_id` (string, required)
    The table's ID.
    Example: "482910"

## Query parameters:

  - `email` (string)
    Email of the user making the request. Used to scope ownership/visibility checks on GET/DELETE calls, which cannot carry a body.
    Example: "user@example.com"

## Response 200 fields (application/json):

  - `data` (array)

  - `data.columnId` (string)
    Example: "c1"

  - `data.name` (string)
    Example: "Job title"

  - `data.type` (string)
    Enum: "lusha", "crm", "signal", "ai", "score"

  - `data.key` (string,null)
    Example: "jobTitle"

  - `data.isDefault` (boolean)
    Default Lusha columns cannot be removed.

  - `data.addedAt` (string)

  - `data.updatedAt` (string)

  - `data.rowsNotRun` (integer)

  - `data.rowsProcessing` (integer)

  - `data.rowsSuccess` (integer)

  - `data.rowsNoData` (integer)

  - `data.rowsFailed` (integer)

  - `billing` (object)
    Credit usage summary for a V3 API request

  - `billing.creditsCharged` (integer)
    Total credits charged for this request
    Example: 3

  - `billing.resultsReturned` (integer)
    Number of successful results returned
    Example: 1

## Response 401 fields (application/json):

  - `statusCode` (integer, required)
    HTTP status code
    Example: 400

  - `message` (string, required)
    Error message
    Example: "Validation failed"

  - `errors` (array)
    Detailed error messages (optional, only for validation errors)
    Example: ["entityType must be one of: contact, company"]


