---
title: "List Contacts Tables"
method: POST
path: "/v3/contacts/tables/list"
tags: ["Contacts Tables"]
---

# List Contacts Tables

`POST /v3/contacts/tables/list`

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

> **Billing:** Free.

## Request body

- TableListRequest
  - `owner` TableOwner, 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.
    - `email` string, email — Must resolve to an existing user on the account tied to your API key.
  - `page` integer
  - `size` integer
  - `name` string — Optional filter — matches tables whose name contains this text.
  - `status` 'active' | 'archived' — `deleted` is not a filterable status.

## Response `200`

Successful response

- TableListResponse
  - `data` TableMetadata[]
    - `tableId` string
    - `name` string
    - `entityType` 'contacts' | 'companies'
    - `visibility` 'private' | 'shared'
    - `status` 'active' | 'archived' | 'deleted' — Lifecycle state. `active` and `archived` are filterable via the List Tables `status` field; `deleted` is not a filterable status.
    - `owner` OwnerInfo — 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.
      - `id` integer
      - `email` string, email
      - `name` string
    - `createdBy` CreatedBy — Where and by whom the table was created.
      - `surface` 'api' | 'mcp' | 'workspace'
      - `createdByUserId` integer
    - `workspaceUrl` string
  - `pagination` V3PaginationResponse
    - `page` integer
    - `size` integer
    - `total` integer
  - `billing` V3Billing — Credit usage summary for a V3 API request
    - `creditsCharged` integer — Total credits charged for this request
    - `resultsReturned` integer — Number of successful results returned

## Other responses

- `400` — Bad request - invalid input data
- `401` — Unauthorized - invalid or missing API key
- `403` — Forbidden - account inactive, V3 access not enabled, or plan does not include this feature

---

[API](https://skmtc.net/lusha/apis/lusha-api-documentation.md) · [All operations](https://skmtc.net/lusha/apis/lusha-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lusha/lusha-api-documentation/versions/4c51e40e3e67/schema)
