Skip to main content
POST
Search a population
A population search is a v3 search whose results are everyone in one population: every current employee of a company, or everyone who attended a school. The search adds people to its results as it finds them. Price the search first with Price a population. Starting it reserves the quoted credits.

Request body

Response

The response is a search snapshot. Poll GET /v3/search/{search_id} while status is running; results are append-only, so every poll returns everyone found so far. Population searches use include_profile: false; read a profile with Read a profile. The snapshot carries a population block: The search completes when the whole population is in. A person who could not be built ends failed and the search ends completed_with_errors.

Billing

Orbit reserves the quoted credits when the search starts, settles them as the work completes, and releases what it did not use when the search ends. See Credits.

Rate limits

A population start spends the same rate-limit bucket as POST /v3/search. The quote spends the status bucket.

Authorizations

Authorization
string
header
required

Use an Orbit API key from the developer dashboard.

Headers

Idempotency-Key
string

A client-generated key for a safe retry. If the body omits request_id, Orbit can use this value as the request ID.

Maximum string length: 200

Body

application/json
population
object
required
request_id
string

Idempotency key. The same request_id returns the same search; a different population under the same id returns 409.

Maximum string length: 200
size
integer | null

How many people the population has, when you know it.

Required range: x >= 0
profile_depth
enum<string>
default:partial

The depth every person in the population is built to.

Available options:
partial,
full

Response

The search completed at once.

search_id
string
required

Server-generated identifier for this search. Use it to poll the status endpoint.

request_id
string
required

The idempotency key from the original request, or a generated value when the request omitted it.

status
enum<string>
required

Overall search lifecycle. running means work is still in progress; poll until the status is terminal. completed means every result reached the requested profile depth; a search can complete with an empty results list when nothing matched. completed_with_errors means ready results are available but some work failed. failed means work failed and no ready results are available.

Available options:
running,
completed,
completed_with_errors,
failed
candidate_discovery
boolean
required

Whether this search runs candidate discovery, as resolved from the request.

profile_depth
enum<string>
required

The minimum profile depth requested for each ready result.

Available options:
partial,
full
include_profile
boolean
required

Whether readable results embed their Search profile.

profile_upgrades_completed
boolean
required

Whether every result in results has reached the requested profile_depth or failed. While candidate_discovery_completed is false, discovery can still add results with new profile work.

results
object[]
required

The people this search has found so far. Results are append-only: a reported result is never removed, and a ready result never regresses.

created_at
string<date-time>
required

When the search was created.

updated_at
string<date-time>
required

When the snapshot last changed.

candidate_discovery_completed
boolean

Whether the result list is final. Once true, discovery adds no more results to this search; the results themselves can still be generating or enriching toward the requested depth. For discovery searches this becomes true when clustering completes and every discovered person appears in results. If discovery failed, candidate_discovery_failure explains why. Present only when candidate_discovery is true.

provider_results_final
boolean

Whether the people-data provider lookup for a supplied phone, email, or address returned its complete owner set. Once true, every owner of that contact is in results with the contacts the provider reported, usually within the first response and before biography work. Discovery by name can still add results until candidate_discovery_completed is true. Present only when candidate_discovery is true and the request carried a phone, email, or address signal.

discovered_sources
object[]

Candidate Discovery source receipts that have not yet been assigned to a result. Present when candidate_discovery is true.

candidate_discovery_failure
object

Why candidate discovery failed. Present only when discovery failed.

population
object

Present on population searches: the subject, the depth, the reserved credits and where the search is.

query_intent
object

Present when the search parsed a plain-English query.

billing
object

Credits held and spent for this search. The final consumedCredits is the full charge once status is settled.