Lead Tables
Lead table definitions (columns/schema). Read-only in v1.
/lead-tablesList lead tables
Returns an org-wide, cursor-paginated list of lead tables (the table schema documents that hold the columns each lead row is stored against). Soft-deleted tables are excluded. An API key sees EVERY table in the org - the per-creator/assignee privacy lockdown applied inside the app does NOT apply to API keys. Requires scope: leads:read.
Response 200
Errors
/lead-tablesCreate a lead table
Creates a lead table. Requires scope: leads:write. Every table is created with the same two frozen system columns the app creates (First Name, Last Name), so a table made through the API behaves identically to one made in the UI. Additional columns may be declared with `columns`; each gets a stable `nameId` derived from its name, which is the key lead rows store their cells under. Multi-tab tables: pass `tabs` (mutually exclusive with `columns`) to create up to 20 tabs in one call. Only the first tab carries the system columns; later tabs start with just their own custom columns, exactly like tabs added in the app. Member assignment is not accepted here. An API key is an organization credential with no member identity, so tables it creates are visible org-wide - assign them in the app.
Request body
namerequiredcolumnsnamerequiredtypeResponse 201
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}Retrieve a lead table
Returns a single lead table (its tabs and column schema) by id. Returns 404 if the table is missing, soft-deleted, or belongs to another organization. Requires scope: leads:read.
Parameters
Path
idrequiredResponse 200
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}Rename a lead table
Renames a lead table. Requires scope: leads:write. `name` is the only writable field - archive/trash have their own endpoints and the schema is edited through the tab and column endpoints.
Request body
namerequiredResponse 200
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}Move a lead table to trash
Moves a lead table to trash. Requires scope: leads:write. This is a soft delete. The lead rows inside are deliberately left intact - permanently destroying a table and every row under it is a confirmable, undoable-until-purged action that belongs in the app, not behind an API key.
Parameters
Path
idrequiredResponse 200
idobjectdeletedErrors
/lead-tables/{id}/tabsAdd a tab
Adds a tab to a lead table. Requires scope: leads:write. New tabs start with no system columns - only a table's first tab carries First/Last Name. Optional `columns` seeds custom columns. A table holds at most 20 live tabs.
Request body
namecolumnsnamerequiredtypeoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatResponse 201
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}/tabs/{tabId}Rename a tab
Renames a tab. Requires scope: leads:write.
Parameters
Path
tabIdrequiredRequest body
namerequiredResponse 200
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}/tabs/{tabId}Delete a tab
Soft-deletes a tab. Requires scope: leads:write. The tab's lead rows are left untouched, and the last live tab cannot be deleted.
Parameters
Path
tabIdrequiredResponse 200
idobjectdeletedErrors
/lead-tables/{id}/tabs/{tabId}/columnsAdd a column
Adds a custom column to a tab. Requires scope: leads:write. The column's stable `nameId` is derived from its name and is unique within the tab. Types needing extra configuration are created in plain form - configure them in the app.
Parameters
Path
tabIdrequiredRequest body
namerequiredtypeoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatResponse 201
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAtErrors
/lead-tables/{id}/tabs/{tabId}/columns/{columnId}Edit a column
Renames a custom column and/or toggles its visibility. Requires scope: leads:write. The `nameId` never changes on rename - it is the stable key lead rows store cells under. System columns cannot be edited.
Parameters
Path
tabIdrequiredcolumnIdrequiredRequest body
namevisibleoptionsidnamerequiredcolordisplayOrderdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatResponse 200
idrequiredobjectrequirednamecreatedByassignedUserIdsassignmentsidemailnamefolderIdsstarredarchivedarchivedAttabsrequiredidrequirednamedisplayOrdercolumnsrequiredcolumnsrequiredidrequirednameIdnamerequiredtyperequiredcollectionTypevisiblefrozenlockedhiddendisplayOrderoptionsdateTimeModedateTimeFormatnumberPrecisioncurrencyEnabledcurrencyCodecurrencyNamecurrencySymbolphoneFormatEnabledphoneAreaCodephoneFormatcreatedAtupdatedAt