# Get Contacts Table

Get a table's metadata and current processing status.

> Billing: Free.

Endpoint: GET /v3/contacts/tables/{table_id}
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` (object)
    Response payload for Get Table — TableDto fields plus live entity/column counts.

  - `data.tableId` (string)
    Example: "482910"

  - `data.name` (string)
    Example: "VP Sales US Tech Q2"

  - `data.entityType` (string)
    Enum: "contacts", "companies"

  - `data.visibility` (string)
    Enum: "private", "shared"

  - `data.status` (string)
    Lifecycle state. active and archived are filterable via the List Tables status field; deleted is not a filterable status.
    Enum: "active", "archived", "deleted"

  - `data.owner` (object)
    Resolved owner of the table. id is always present; email and name are resolved best-effort within the API key's account and may be omitted if resolution fails (in which case the object contains only id). Replaces the removed top-level ownerId field - this is a breaking change from the prior response shape.

  - `data.owner.id` (integer)
    Example: 12345

  - `data.owner.email` (string)
    Example: "owner@lusha.com"

  - `data.owner.name` (string)
    Example: "Ada Lovelace"

  - `data.createdBy` (object)
    Where and by whom the table was created.

  - `data.createdBy.surface` (string)
    Enum: "api", "mcp", "workspace"

  - `data.createdBy.createdByUserId` (integer)
    Example: 12345

  - `data.workspaceUrl` (string)
    Example: "https://workspace.lusha.com/tables/482910"

  - `data.entityCount` (integer)
    Example: 5

  - `data.isProcessing` (boolean)
    Whether any column run is currently in progress on this table.

  - `data.columns` (array)

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

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

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

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

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

  - `data.columns.addedAt` (string)

  - `data.columns.updatedAt` (string)

  - `data.columns.rowsNotRun` (integer)

  - `data.columns.rowsProcessing` (integer)

  - `data.columns.rowsSuccess` (integer)

  - `data.columns.rowsNoData` (integer)

  - `data.columns.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"]


