Skip to main content
POST
Returns 202 immediately with the search’s id; the search runs in the background. Send either query, or filters and/or criteria. Every requirement is checked for each company, and only companies that match all of them are returned. The search runs in the background. Poll GET /companies/search/{search_id}/status and read companies from GET /companies/search/{search_id}/results as they are found.
Starting a search spends credits as companies are found. Reading status and results is free. Set max_credits to cap what one search can spend. See Pricing.

Example bodies

Headers

string
A unique string for this request, 1 to 255 characters. Retrying with the same key and body returns the original response instead of starting new work. Reusing a key with a different body returns 409 idempotency_key_reused. Always send one when starting a search.

Body

string
What to find, in plain language. Required unless you send filters or criteria. Cannot be combined with them.Maximum 1,000 characters.
object | null
Structured conditions. A record must meet every condition in all. null is treated the same as leaving filters out. See the filter reference for every field and operator.
(string | object)[] | null
Free-text requirements, each checked against evidence for every candidate. Use them for anything the structured fields cannot express. Each item is a string, or an object with text and kind.At most 10 items.
integer
default:"20"
The most companies to return. The search stops when it has found this many.Range: 1 to 500.
string[]
Personas to find contacts for at each matching company. Omitted or empty means no contact lookup and no contact charges. Personas choose which people to find; they do not filter which companies match.At most 10 items.
string[]
Company domains to skip, for example companies you already have.
number
The most credits this search may spend. 1 credit = $1.00. When the search reaches it, it stops with stop_reason usage_limit_reached and keeps the results found so far. Defaults to your remaining balance.

Response

202 The search was accepted and queued.
string
required
company_search or people_search.
string
required
The search’s identifier. Use it to read status and results.
string
required
queued and running are in progress. completed, failed and cancelled are terminal. completed means this run finished, not that every matching record in the world was found.
string | null
required
Why a finished search stopped. null while it is in progress. Can also be null on a failed search; read error.Options: target_reached, sources_exhausted, usage_limit_reached, retrieval_limit_reached, query_needs_clarification, provider_failed, cancelled.
string | null
required
A message when status is failed. Results found before the failure stay readable.
string | null
required
The natural-language request, when the search was started with query.
integer
required
The most results this search will return.
object | null
required
How a query was read. null until the query has been interpreted, and for searches started with filters or criteria.
object[]
required
Ambiguous wording in the query and how it was read.
object
required
Counts so far. They only increase.
number
required
Credits charged for this search so far. 1 credit = $1.00.
boolean
required
true after a cancel request, until the search reaches cancelled.
string
required
When the search was started.
string | null
required
When the search reached a terminal status.
string | null
required
When the search and its results stop being readable. null when no expiry is set.
string
required
The URL of this search’s status.
string
required
The URL of this search’s results.

Errors

Every error uses the same shape. See Errors.