{"templateId":"openapi_docs","versions":[{"version":"v3","label":"V3 (Latest)","link":"/apis/openapi/companies-tables","default":true,"active":true,"folderId":"58c9a61d"},{"version":"v2","label":"V2 (Soon to be deprecated)","link":"/apis/v2/openapi/companies-tables","default":false,"active":false,"folderId":"58c9a61d"}],"sharedDataIds":{"openAPIDocsStore":"oas-apis/@v3/openapi.yaml","sidebar":"sidebar-sidebars.yaml"},"props":{"definitionId":"apis/@v3/openapi.yaml","dynamicMarkdocComponents":[],"baseSlug":"/apis/openapi","seo":{"title":"Companies Tables","description":"**Companies Tables API:** Create and manage persistent tables of companies inside Lusha.\n\nTables are spreadsheets with configurable columns — default Lusha fields, enrichment data, Signals, AI insights, premium data points, CRM fields, and custom fields. Populate a table directly through the endpoints below, or pass `tableId` on Prospecting, Enrich, Signals, or Lookalike calls to persist those results automatically.\n\nEvery surface that touches table data — this API, MCP, and the Workspace UI — reads and writes the same underlying data. Changes made through one surface are reflected on the others.\n\n**Working with tables:**\n- **Tables** — create, list, get status, update (rename/archive/visibility), delete\n- **Entities** — add, remove, or read the rows in a table\n- **Columns** — add, list, remove, or run a column across a table's rows\n\n**Owner resolution:** `owner.email` resolves to a user on your account and determines table ownership. **Required on every call when authenticating with an API key** — omitting it returns `400`. Optional for OAuth/token callers, since the caller is already identified by the token. Sent in the body as `owner: { email }` on `POST`/`PATCH` calls (and on `DELETE .../entities`, which carries a body); sent as a `?email=` query parameter on other `GET`/`DELETE` calls, which have no body.\n\n**Billing:**\n- Adding companies to a table charges `reveal_company` per **newly added** company, deduped so duplicates and already-present companies aren't charged again.\n- Reading entities (`GET .../entities`) charges per row returned.\n- Create / List / Get / Update / Delete / List Columns / Remove Column / Remove Entities are free.\n- Adding a column is free; if `runScope` triggers an immediate run as part of the add, that run is billed the same as Run Column.\n- Running a column charges per row per the column's tier (company enrichment once per company per table — re-runs on an already-paid company are free; signal/AI/score per row per run).\n- Non-public-API-plan accounts always resolve to `0` credits charged.\n\n**Limits:** up to 500 entity IDs per add/remove call · max 50,000 entities per table · max 500 tables per account.\n\nSee also: [Contacts Tables](#tag/Contacts-Tables).\n","siteUrl":"https://docs.lusha.com","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"itemId":"companies-tables","disableAutoScroll":true,"metadata":{"subType":"openapi-operation"},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"docs.lusha.com","port":4000,"ipAddress":"216.73.217.145"},"lang":"default_locale","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"main"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/apis/openapi/companies-tables","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}