1. Candidate discovery
candidate_discovery controls where Orbit looks:
falsesearches people Orbit already knows. This is the default.truereturns known matches and continues finding additional people when the input supports discovery.
candidate_discovery: true, address, email, and phone signals can return multiple associated people. Orbit keeps each unique person as a separate result and builds every result to the requested profile depth.
candidate_discovery_limit defaults to 10 and can be set from 1–50. A lower value reduces downstream profile-generation fanout, although source discovery and clustering can still dominate initial discovery time.
2. Profile depth
profile_depth controls how far Orbit builds every selected result:
partialproduces a useful partial profile and is the default.fullproduces the deepest profile.
enriching until it reaches the requested depth, or becomes failed if the profile cannot be built.
3. Profile embedding
include_profile controls response shape:
trueembeds available profiles in their result objects. This is the default.falsereturns profile IDs, status, generation level, and failures without embedding profile objects.
profile_depth.
Inputs
Usequery for a normal plain-English search. Orbit routes the query and, when candidate discovery is enabled, derives structured intent for the discovery phase:
intent alone when your application already has fully structured criteria:
query and intent together when plain English provides useful context but exact structured fields must take precedence:
query and then overlays your intent. At each supplied field, arrays, scalar values, and null replace the derived value; nested objects merge field by field. Known-profile Search uses the original query plus the merged intent. Candidate Discovery uses the merged intent.
Use signals for facts that may identify a specific person:
candidate_discovery_limit.
query, intent, or both can be combined with signals. See Structured intent and Start a search for the full schemas.
Lifecycle
POST /v3/search returns one Search resource. The response may already contain ready results while other work continues.
Poll GET /v3/search/{search_id} while the resource is running. completed_with_errors is usable partial success: preserve ready results and inspect failures individually.
Idempotency
Setrequest_id to a stable identifier that your application persists before the first POST. Retrying the same logical request with the same ID returns the existing Search. Reusing it with different inputs returns 409.
v3 Search does not consume credits. Rate limits still apply.