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. Conditions on person.* fields describe the person; conditions on company.* fields describe their current employer. Only people who match every requirement are returned. A search returns names, titles and LinkedIn profiles. Email addresses and phone numbers are looked up only when you set enrich_emails or enrich_phones, and cost extra. Poll GET /people/search/{search_id}/status and read people from GET /people/search/{search_id}/results as they are found.
Starting a search spends credits as people 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
Who 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 people to return. The search stops when it has found this many.Range: 1 to 500.
boolean
default:"false"
Look up a work email address for each person found. Charged per person looked up. An email is not guaranteed.
boolean
default:"false"
Look up a phone number for each person found. Charged per person looked up, at a higher rate than email. A phone number is not guaranteed.
string[]
LinkedIn profile URLs to skip, for example people 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.