Skip to main content
POST
Preview replacing a table's rows with its search

Authorizations

X-API-Key
string
header
required

Path Parameters

table_id
string<uuid>
required

Body

application/json

A table's search as it would be saved, and how its run would be sized.

The body the search's PUT takes, so the confirm dialog asks about exactly what it is about to save, plus the run's own more_rows or max_new_rows.

record_type
enum<string>
required

Which dataset a search runs against, and so which provider serves it.

Values are persisted in String(16) columns, so every member must stay within 16 characters.

Available options:
people,
companies,
signal_companies,
signal_people,
lookalikes,
local_businesses,
hiring_companies,
backlinks,
search_results,
post_authors,
startup_launches

The sites linking to a domain or a page.

Name the target and get one row per referring site by default, sorted by the rank the link passes. Every attribute of a backlink the index can filter on is here, in four groups: the referring site, the referring page, the link itself, and the page it points at. The index takes at most eight filter conditions in one search, counting every value of every list as one; a ninth is refused rather than dropped.

companies
CompanyQuerySchema · object | null

Filters for a company search.

enrichments
enum<string>[]

What to find out about the rows this adds. Each becomes its own column, and each is billed per row that comes back with an answer.

Maximum array length: 4

An enrichment offered at import, in the user's vocabulary not the catalog's.

Each option names an outcome and resolves to the curated enrichment that delivers it, so importing leads stays a question about what you want rather than about who supplies it.

Kept as its own enum rather than reusing the capability keys directly: the import page offers a deliberately short list, and which enrichments belong on it is a product decision that should not change every time the catalog gains a capability.

Available options:
find_email,
find_phone,
enrich_contact,
enrich_company
hiring_companies
HiringCompaniesQuerySchema · object | null

Filters for a search for companies with open roles matching a job title.

The rows are companies, one per employer, each carrying every open posting the search read for it. The count is of open postings, since the companies are folded from them once they are read.

include_people_already_in_tables
boolean
default:false

A people search only. By default it leaves out the people who already have a row in one of the workspace's other tables, and keeps looking until enough new people are added; the response says how many it skipped. Set true to add them again.

local_businesses
LocalBusinessQuerySchema · object | null

Filters for a map search over business listings.

The one search here that asks "who is within this radius". Name a category, a business name or a website to look for, plus an area to look in for the radius part.

lookalikes
LookalikeQuerySchema · object | null

Filters for a search for companies resembling a set of seed companies.

max_new_rows
integer | null

The most rows the run would add, as max_new_rows on the run.

Required range: x >= 1
more_rows
integer | null

How many new rows the run would add, as more_rows on the run.

Required range: 1 <= x <= 1000
only
enum<string> | null

Hold the request to one of its two effects. attach puts the search behind a table that has none and runs it, and answers 409 when the table has one. replace changes the criteria of the search the table has, and answers 404 when it has none, so nothing runs and nothing is charged. Leave it out to do whichever fits.

Available options:
attach,
replace
people
PeopleQuerySchema · object | null

Filters for a people search.

post_authors
PostAuthorsQuerySchema · object | null

Filters for a search for people whose own LinkedIn posts carry a phrase.

The rows are people, one per author, each carrying every matching post the search read for them. The count is of posts, since the people are folded from them once they are read.

row_limit
integer | null

Rows to add. Clamped further by the organisation's plan cap; omit for the maximum.

Required range: 1 <= x <= 1000000
search_results
SearchResultsQuerySchema · object | null

Google searches to run, each landing the results Google shows for it.

Write each search the way you would type it into Google: operators (site:, intitle:, quoted phrases) work and cost nothing extra. One row is one result of one search, with the search that found it and its rank.

signal_companies
SignalCompaniesQuerySchema · object | null

Filters for a company buying-signal search.

signal_people
SignalPeopleQuerySchema · object | null

Filters for a person activity-signal search.

startup_launches
StartupLaunchesQuerySchema · object | null

Filters for a search of the companies listed on startup launch boards.

One row per company, newest listing first, however many boards list it. Every filter narrows; a filter on a fact only some boards carry keeps only the listings of the boards that carry it.

Response

Successful Response

What running a table's search with replace would add, delete and stop, before it runs.

contacts_mid_conversation
integer
required

Of contacts_stopping, those already contacted or who replied, so a conversation would end part way.

contacts_stopping
integer
required

Contacts on those rows that are still in a sequence and would stop.

linked_tables
LeadSearchReplaceLinkedTableSchema · object[]
required

For a company search, each people table whose search follows this table and the people the run would delete from it: those whose Company link points only at companies it deletes. Empty otherwise. Their contacts are in contacts_stopping.

paid_credits
number
required

What that data cost when it was bought, in credits.

replace_supported
boolean
required

Whether this search can replace the table's rows. Only people and company searches can; a run with replace on any other answers 422.

rows_to_add
integer
required

The most rows the run adds: the matches the table does not hold yet, within the run's row limit and the table's room.

rows_to_remove
integer
required

Rows the run deletes after adding: rows added by hand or from a file, rows from another kind of search, and rows the search no longer matches. 0 when replace_supported is false.

rows_with_paid_data
integer
required

Of every row the run would delete, linked tables' included, how many hold data paid for with credits (an enrichment or agent cell). It is deleted too.

sequences
LeadSearchReplaceSequenceSchema · object[]
required

The sequences those contacts are in, the most contacts first.