# List Companies Tables

List companies tables owned by the given user, plus any tables shared with the account.

> Billing: Free.

Endpoint: POST /v3/companies/tables/list
Security: ApiKeyAuth

## Request fields (application/json):

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

  - `page` (integer)

  - `size` (integer)

  - `name` (string)
    Optional filter — matches tables whose name contains this text.
    Example: "Q3"

  - `status` (string)
    deleted is not a filterable status.
    Enum: "active", "archived"

## Response 200 fields (application/json):

  - `data` (array)

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

  - `pagination` (object)

  - `pagination.page` (integer)

  - `pagination.size` (integer)
    Example: 25

  - `pagination.total` (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 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"]


