Skip to main content
PUT
Put a lead search behind a table

Authorizations

X-API-Key
string
header
required

Path Parameters

table_id
string<uuid>
required

Body

application/json

The body for putting a lead search behind a table.

A table with none gets this one and runs it once, appending its results beneath the rows the table holds. A table that has one has its criteria replaced and nothing runs. only holds the request to one of the two, for a caller that read the table's state a moment before and must not do the other when that state changed since.

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

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.

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.

Response

Successful Response

A table's lead search as a PUT left it, and the first run when the PUT started one.

next_run_at
string<date-time> | null
required
query
Query · object
required
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
row_limit
integer | null
required
schedule_at_minutes
integer | null
required
schedule_cadence
enum<string> | null
required

How often a table's search runs on its own: on a calendar step, or every few days.

Available options:
daily,
weekly,
monthly,
quarterly,
custom
schedule_every_days
integer | null
required
schedule_timezone
string | null
required
table_id
string<uuid>
required
updated_at
string<date-time>
required
first_run
LeadSearchRunResponseSchema · object | null

What the first run added, when the table had no search and this request attached one and ran it. Null when the table already had a search: its criteria were replaced and nothing ran or was charged.

max_rows_per_search
integer | null

The data source's own ceiling on one run of this search, before the plan's rows per table: the count's max_rows_per_search. Null when the source has none of its own. One run with more_rows adds no more than this, the room left in the table, or 1,000.

schedule_starts_on
string<date> | null

The first day the schedule may run, in its own timezone; null when it started at once.