Skip to main content
The People Search API finds people in the CompanyEnrich dataset and returns a full person record for each match: current position, seniority, department, location, LinkedIn URL, and work history. One endpoint, POST /v2/people/search, takes every kind of query. A search costs 2 credits per person returned, whichever way you search. You can combine all three in one request.

Filters

Every filter, with matching rules and accepted values.

Examples

Ready-to-run queries in cURL, four SDKs, and the CLI.
This request finds vice presidents and C-level executives who currently work at Stripe. You need an API key, which you can create at app.companyenrich.com/access-keys.
The response holds the matching people and a cursor for the next page. This example is shortened and shows a fictional person. See the person schema for every field.

Endpoints

Search, count, preview, and export take the same filter, semantic, and company fields, so you can count or preview a query before you pay for it.

Response fields

Each experience in a person record has an isMatched flag. It is true for the jobs that matched your filters.

Current and past roles

Filters at the top level of filter, such as domain, seniority, department, and position, match a person’s current job. To find people by a previous job, put the filters inside filter.pastExperience. All the values you include there must match the same past job, and people who still work at that company are left out. See Past experience filters.

Search by the kind of company

The company field takes a company query with the same filters, semantic query, and lookalike seeds as the Company Search API. The search then returns only people whose current company matches.
A company query that uses a semantic or lookalike query, or the query, keyword, technology, funding, workforce, reportedEmployees, or require filters, matches people at the 1,000 best-matching companies.

Page through results

Search uses cursor pagination. Numbered pages are not supported.
  • Omit cursor on the first request. To get the next page, send the same query with the nextCursor from the previous response.
  • Keep the query unchanged while you page.
  • A cursor expires 24 hours after the first page.
  • pageSize accepts 1 to 100.
The SDKs follow cursors for you: searchAll in the JavaScript and PHP SDKs, search_all in the Python and Ruby SDKs, and --all or --limit in the CLI. For large result sets, use an export. See Export a people search to CSV.

Add more data with expand

The company expansion is charged once for each unique company on a response page, even when several people share an employer. A page can expand at most 500 unique companies. A page over that limit returns 400 before anything is charged, so reduce pageSize or remove company from expand.

What a search costs

  • 2 credits per person returned, in every mode.
  • 1 more per person for education, and 1 per unique company on the page for company.
  • You pay for every person on a page you fetch. Set pageSize close to the number of results you need.
  • A search that returns no results costs 2 credits.
  • Count and preview requests are free.
For example, a search that returns 25 people with the education expansion costs 25 × (2 + 1) = 75 credits. See Credits for every price.

Limits

Common questions

Does a people search return email addresses?

No. Email addresses are not part of the person record. Look up a work email for a person with GET /v2/people/{personId}/email, which costs 10 credits when it finds an email your account has not accessed before. See Get a work email for a person you found.

How do I find people who changed jobs recently?

Filter on currentCompanyStartDate with an after date. See Find recent hires.

How do I find former employees of a company?

Put the company’s domain in filter.pastExperience.domain. People who still work there are left out. See Find former employees of a company.

How many companies can I search at once?

filter.domain accepts up to 2,500 current company domains per rule. To target companies by description, size, or industry instead of by name, use a company query.

Why was my semantic query rejected?

The API turns a semantic query into person filters and a company description. A query it cannot infer any filters from is rejected, so include something concrete, such as a role, a seniority level, or a country.

How do I test a query without spending credits?

Send the same query to the count endpoint. If your plan includes previews, the preview endpoint also returns up to 10 masked summaries for free.

People Search API filters

Every filter, with matching rules and accepted values.

People Search API examples

Ready-to-run queries for common jobs.

Person schema

Every field in a person record.

API reference

The full request and response specification, with a playground.