People search

8 min read

Search the database for person profiles using multiple filters.

POST

Introduction

The People Search endpoint returns paginated person profiles matching a combination of filters. All filters are optional and combined with AND logic. Results are drawn from our cache-based search index. This endpoint never triggers a live fetch.

Use this endpoint to discover profiles that match criteria like job title, company, industry, or location, then chain into Profile for the complete data of any hit.

Authorization

apikey string required
Your API key from the developer dashboard. Pass it via Authorization: Bearer YOUR_API_KEY header.

Request body

All filters are optional and combined with AND logic. Scalar filters live in the table below; the three nested-object filters (followersCount, currentCompanyEmployeeCountRange, location) are documented as expandable field items right after.

firstName string
Filter by first name
lastName string
Filter by last name
headline string
Match keywords found in the profile headline
isOpenToWork boolean
Restrict to profiles flagged open-to-work
isPremium boolean
Restrict to Social Premium members
isVerified boolean
Restrict to profiles with a verification badge
currentPositionTitle string | string[]
Current position title, or array of titles: a person matches if their current title matches any of them
excludeCurrentPositionTitle string | string[]
Current position title, or array of titles, to exclude from results
currentCompanyName string
Match the current company name
currentCompanyLinkedinId string
Match the current company Social identifier
currentCompanyPublicId string
Match the current company public ID / slug
currentCompanyId string
ReverseContact internal company id (com_...) of the current employer. Single value only. Strictly matches people currently working at the company. This id comes from the currentCompanyId field in person search results, or the id field returned by company enrichment endpoints.
currentCompanyIndustry string | string[]
Industry name or array of industries. See Industry values for the full list
maxDataAgeDate string
ISO 8601 datetime. Only returns profiles refreshed after this date
page number
Page number (1–1000, default 1)
perPage number
Results per page (1–100, default 100)

Note: Title matching is token-based, not exact: "CTO" also matches "Deputy CTO". Multiple titles are OR-matched, and exclusions always win over matches.

followersCountobject
Filter by follower count range. Both bounds are optional and inclusive.
Show child attributesHide child attributes
min number
Minimum value, inclusive
max number
Maximum value, inclusive
currentCompanyEmployeeCountRangeobject
Filter by the current company employee count range. Both bounds are optional and inclusive.
Show child attributesHide child attributes
min number
Minimum value, inclusive
max number
Maximum value, inclusive
locationobject
Multi-field location filter. Each sub-field is optional and accepts a single string or an array of strings (OR matching).
Show child attributesHide child attributes
country string | string[]
Country name (e.g. "France")
countryCode string | string[]
ISO 3166 country code (e.g. "FR")
region string | string[]
State or region
city string | string[]
City
area string | string[]
Broader geographic area

Response structure

Note: This endpoint uses a nested envelope. The top-level V2 data field wraps an inner search payload that contains the actual results array (data.data) and the pagination info (data.metadata). See the example response for the exact shape.

success boolean
true if the request was processed successfully
error null
Always null on success
data.dataobject[]
Array of matching person profiles wrapped under data.data in the envelope. Empty array if no match.
Show child attributesHide child attributes
id string
ReverseContact internal person identifier (prs_...)
publicId string | null
Social public identifier (the /in/xxx slug)
linkedinUrl string | null
Full Social profile URL
firstName string
First name
lastName string
Last name
headline string | null
Profile headline
currentPositionTitle string | null
Current job title (how it is chosen)
currentCompanyId string | null
ReverseContact internal identifier of the current company (com_...)
currentCompanyName string | null
Current company name
currentCompanyLinkedinId string | null
Current company Social identifier
updateDate string | null
When ReverseContact last refreshed this record (ISO 8601)
locationobject
Geographic location (null if unknown)
Show child attributesHide child attributes
city string | null
City
state string | null
State or region
country string | null
Country name
countryCode string | null
ISO country code (e.g. "US")
rawLocation string | null
Raw location string as displayed on the profile
data.metadataobject
Pagination metadata wrapped under data.metadata in the envelope.
Show child attributesHide child attributes
currentPage number
Current page number (1-indexed)
pageNumber number
Total number of pages available
perPage number
Results per page
total number
Total number of matching records across all pages
quotasobject
Credits and rate limit usage after this request
Show child attributesHide child attributes
creditsConsumed number
Credits consumed by this request
workspaceobject
Workspace-level limits
Show child attributesHide child attributes
id string
Your workspace identifier
hasUnlimitedCredits boolean
Whether workspace credits are unlimited
allowDailyOvercost boolean
Whether the workspace may exceed its daily cap
creditsobject
Credit balance
Show child attributesHide child attributes
total number
Total credits in your plan
used number
Credits consumed so far
left number
Remaining credits
dailyLimitobject
Daily request limit (null if not configured)
Show child attributesHide child attributes
limit number
Maximum requests per day
used number
Requests made today
left number
Remaining requests today
nextReset string
When the daily window resets (ISO 8601)
minuteRateLimitobject
Per-minute rate limit
Show child attributesHide child attributes
limit number
Maximum requests per minute
used number
Requests made in the current minute
left number
Remaining requests in the current minute
nextReset string
When the minute window resets (ISO 8601)
keyobject
API key-level limits (null when request is from dashboard)
Show child attributesHide child attributes
id string
API key identifier
dailyLimitobject
Daily limit for this key (null if not configured)
Show child attributesHide child attributes
limit number
Maximum requests per day
used number
Requests made today
left number
Remaining requests today
nextReset string
When the daily window resets (ISO 8601)
minuteRateLimitobject
Minute rate limit for this key
Show child attributesHide child attributes
limit number
Maximum requests per minute
used number
Requests made in the current minute
left number
Remaining requests in the current minute
nextReset string
When the minute window resets (ISO 8601)
metadataobject
Request tracking information (not to be confused with data.metadata which is pagination)
Show child attributesHide child attributes
requestId string
Unique identifier for this request
executionTimeMs number
Total execution time in milliseconds

Previous

Enrich company

Next

Company search