# Run Column on Companies Table

Populate or refresh a column's data for some or all rows in the table. This is asynchronous — the call returns immediately with status: "processing"; poll Get Companies Table for isProcessing and per-column row-status counts to know when it's done, then read the values via Get Companies Table Entities.

runScope values:
- all — every row, including already-processed ones (re-runs / refreshes). Most expensive.
- missing — only rows that have never been run for this column. Cheapest, safe to call repeatedly.
- specific — only the entityIds you pass. Also how you implement "run for this page" — fetch the page via Get Companies Table Entities, then pass those IDs here.

> Billing: Charged per row processed, per the column's credit tier. Company enrichment charges once per company per table — re-runs on an already-paid company in the same table are free.

Endpoint: POST /v3/companies/tables/{table_id}/columns/{column_id}/run
Security: ApiKeyAuth

## Path parameters:

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

  - `column_id` (string, required)
    The column's ID.
    Example: "col_signals_funding"

## Request fields (application/json):

  - `runScope` (string, required)
    Controls which rows a column operation applies to. all re-runs every row, including already-processed ones. missing only runs rows that don't have a value for this column yet. specific requires entityIds.
    Enum: "all", "missing", "specific"

  - `entityIds` (array)
    Required when runScope is specific.

  - `owner` (object, required)
    Identifies the user acting on the table, and resolves to a user on your account. Required on every table-route call when authenticating with an API key (there is no signed-in user) — omitting it returns 400. Optional for OAuth/token callers, since the caller is already identified by the token; still accepted if you want to act on behalf of another owner.

  - `owner.email` (string)
    Must resolve to an existing user on the account tied to your API key.
    Example: "user@example.com"

## Response 200 fields (application/json):

  - `data` (object)

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

  - `data.runScope` (string)
    Controls which rows a column operation applies to. all re-runs every row, including already-processed ones. missing only runs rows that don't have a value for this column yet. specific requires entityIds.
    Enum: "all", "missing", "specific"

  - `data.status` (string)
    Example: "processing"

  - `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 400 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"]


