Skip to main content
Use the people search endpoint to find contacts using a natural language query, optionally scoped to a specific company or filtered by title and location. Then submit selected contacts to the enrichment endpoint to retrieve verified contact data.

Endpoint overview


Use this endpoint to queue a contact discovery job from a natural language description. The API returns 202 Accepted immediately; poll the returned URL to retrieve semantically ranked results.
Run POST /api/v1/people/search/estimate with the same body first when you want to size maxCredits. The estimate response returns the standard estimate fields plus a breakdown of the base people search credits and contact enrichment risk. The base people-search estimate scales with requested provider-result pages, so larger limit values can raise the preflight ceiling even without contact enrichment.

Request fields

Contact enrichment spend controls

Set includeContacts: true only when you want people search to run contact enrichment as part of the search job. Use contactFields to request email-only, phone-only, or both. For backward compatibility, includeContacts: true without contactFields requests both email and phone. Use maxCredits to cap the final customer charge for the operation. The API also checks the conservative preflight estimate before paid people or contact enrichment work starts. If maxCredits is lower than that preflight ceiling, the request fails with 402 Payment Required and no paid people/contact work starts. Actual billing is based on measured usage and can be lower than the cap.

Target account matching

Use filters.company.domains or filters.company.names for target-account search. These fields represent the company you asked for. A filters.company.linkedinUrls value can help when you already know the exact company page, but it is treated as a platform handle rather than the canonical account identity. When a search is scoped to target accounts, poll GET /api/operations/:id and inspect result.meta: Each returned person may include companyMatchEvidence with company_page or profile_current_job, so you can tell why the person matched the account.

Examples

Response

The search returns HTTP 202 with an operation ID and poll URL.

Typical workflow

1

Search for target companies

Use POST /api/v1/companies/search with firmographic and signal filters to build your target account list. Note the id of each company you want to prospect.
2

Find contacts at each account

Pass company constraints in filters.company along with a role-based query (e.g. "Head of Engineering") to surface relevant contacts.
3

Enrich with contact data

Pass the person id from search results to POST /api/enrichments to retrieve verified email addresses and phone numbers.
Use filters.company.domains or filters.company.names to scope people search to specific accounts — this significantly improves relevance compared to a global search with the same query.