People Search Peopledatalabs API
Search People Data Labs' person dataset with SQL or an Elasticsearch query. Results carry the professional and firmographic record plus availability flags for contact data; pull the actual email and phone with Person Enrichment - People Data Labs. Billed per profile returned.
- Category enrichmentRequests / mo 4Routing 1 lane · no failover
Pricing
One price, in dollars
pay per request · no subscription · fallbacks added as the catalog growsCall it
Make your first request
POST /v1/run/people_search.peopledatalabs · same shape for every APIimport os, requests res = requests.post( "https://api.getanyapi.com/v1/run/people_search.peopledatalabs", headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"}, json={}, ) print(res.json())
{
"data": {
"datasetVersion": "example",
"people": [
{
"activityScore": "example",
"available": {
"birthDate": true,
"birthYear": true,
"facebookId": true,
"facebookUrl": true,
"facebookUsername": true,
"githubUrl": true,
"githubUsername": true,
"locationAddressLine2": true,
"locationStreetAddress": true,
"mobilePhone": true,
"personalEmails": true,
"phoneNumbers": true,
"recommendedPersonalEmail": true,
"streetAddresses": true,
"twitterUrl": true,
"twitterUsername": true,
"workEmail": true
},
"companyAddressLine2": "Acme Inc",
"companyContinent": "Acme Inc",
"companyFacebookUrl": "https://example.com/page",
"companyFounded": 42,
"companyGeo": "Acme Inc",
"companyId": "Acme Inc",
"companyIndustry": "Acme Inc",
"companyIndustryV2": "Acme Inc",
"companyLinkedinId": "https://example.com/page",
"companyLinkedinUrl": "https://example.com/page",
"companyLocality": "Acme Inc",
"companyLocationCountry": "Acme Inc",
"companyLocationName": "Acme Inc",
"companyMetro": "Acme Inc",
"companyName": "Acme Inc",
"companyPostalCode": "Acme Inc",
"companyRegion": "Acme Inc",
"companySize": "Acme Inc",
"companyStreetAddress": "Acme Inc",
"companyTwitterUrl": "https://example.com/page",
"companyWebsite": "https://example.com/page",
"continent": "example",
"countries": [
"example"
],
"country": "US",
"education": [
{
"degrees": [
null
],
"endDate": "2024-01-15T09:30:00Z",
"gpa": 12.5,
"majors": [
null
],
"minors": [
null
],
"schoolName": "Example title",
"schoolType": "general",
"schoolWebsite": "https://example.com/page",
"startDate": "2024-01-15T09:30:00Z"
}
],
"emails": [
{
"type": "general"
}
],
"experience": [
{
"companyId": "Acme Inc",
"companyIndustry": "Acme Inc",
"companyLinkedinUrl": "https://example.com/page",
"companyName": "Acme Inc",
"companySize": "Acme Inc",
"companyWebsite": "https://example.com/page",
"endDate": "2024-01-15T09:30:00Z",
"isPrimary": true,
"startDate": "2024-01-15T09:30:00Z",
"title": "Example title",
"titleLevels": [
null
],
"titleRole": "Example title"
}
],
"firstName": "Alex",
"fullName": "Alex Rivera",
"geo": "example",
"industry": "general",
"interests": [
"example"
],
"jobChangedUtc": 12.5,
"jobStartDate": "2024-01-15T09:30:00Z",
"jobTitle": "Example title",
"jobTitleClass": "Example title",
"jobTitleLevels": [
"Example title"
],
"jobTitleRole": "Example title",
"jobTitleSubRole": "Example title",
"jobVerifiedUtc": 12.5,
"lastInitial": "example",
"lastName": "Rivera",
"linkedinId": "https://example.com/page",
"linkedinUrl": "https://example.com/page",
"linkedinUsername": "https://example.com/page",
"locality": "example",
"locationName": "Example title",
"locationNames": [
"Example title"
],
"locationUpdatedUtc": 12.5,
"metro": "example",
"middleInitial": "a1b2c3d4",
"middleName": "Example title",
"pdlId": "a1b2c3d4",
"postalCode": "94107",
"profileScore": "example",
"profiles": [
{
"network": "example"
}
],
"region": "CA",
"regions": [
"CA"
],
"sex": "example",
"skills": [
"example"
]
}
],
"total": 12500
},
"found": true
}interface PeopleSearchPeopledatalabsResponse {
data: {
datasetVersion?: string;
people: {
activityScore?: string;
available?: {
birthDate?: boolean;
birthYear?: boolean;
facebookId?: boolean;
facebookUrl?: boolean;
facebookUsername?: boolean;
githubUrl?: boolean;
githubUsername?: boolean;
locationAddressLine2?: boolean;
locationStreetAddress?: boolean;
mobilePhone?: boolean;
personalEmails?: boolean;
phoneNumbers?: boolean;
recommendedPersonalEmail?: boolean;
streetAddresses?: boolean;
twitterUrl?: boolean;
twitterUsername?: boolean;
workEmail?: boolean;
};
companyAddressLine2?: string;
companyContinent?: string;
companyFacebookUrl?: string;
companyFounded?: number;
companyGeo?: string;
companyId?: string;
companyIndustry?: string;
companyIndustryV2?: string;
companyLinkedinId?: string;
companyLinkedinUrl?: string;
companyLocality?: string;
companyLocationCountry?: string;
companyLocationName?: string;
companyMetro?: string;
companyName?: string;
companyPostalCode?: string;
companyRegion?: string;
companySize?: string;
companyStreetAddress?: string;
companyTwitterUrl?: string;
companyWebsite?: string;
continent?: string;
countries?: string[];
country?: string;
education?: {
degrees?: string[];
endDate?: string;
gpa?: number;
majors?: string[];
minors?: string[];
schoolName?: string;
schoolType?: string;
schoolWebsite?: string;
startDate?: string;
}[];
emails?: {
type?: string;
}[];
experience?: {
companyId?: string;
companyIndustry?: string;
companyLinkedinUrl?: string;
companyName?: string;
companySize?: string;
companyWebsite?: string;
endDate?: string;
isPrimary?: boolean;
startDate?: string;
title?: string;
titleLevels?: string[];
titleRole?: string;
}[];
firstName?: string;
fullName: string;
geo?: string;
industry?: string;
interests?: string[];
jobChangedUtc?: number;
jobStartDate?: string;
jobTitle?: string;
jobTitleClass?: string;
jobTitleLevels?: string[];
jobTitleRole?: string;
jobTitleSubRole?: string;
jobVerifiedUtc?: number;
lastInitial?: string;
lastName?: string;
linkedinId?: string;
linkedinUrl?: string;
linkedinUsername?: string;
locality?: string;
locationName?: string;
locationNames?: string[];
locationUpdatedUtc?: number;
metro?: string;
middleInitial?: string;
middleName?: string;
pdlId?: string;
postalCode?: string;
profileScore?: string;
profiles?: {
network: string;
}[];
region?: string;
regions?: string[];
sex?: string;
skills?: string[];
}[];
total?: number;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-03 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/people_search.peopledatalabs \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"limit":1,"sql":"SELECT * FROM person WHERE job_company_website = 'posthog.com'"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| dataInclude | string | Comma-separated People Data Labs fields to include, or a leading - list to exclude. Projection changes the payload only; billing still follows profiles returned. |
| dataset | string | People Data Labs dataset to search, when your plan exposes more than one. |
| limit | integer | 1Maximum profiles to return. Every profile returned is billed, so start at 1 to check a query and read total before asking for more. |
| query | string | Elasticsearch-style query over the People Data Labs person dataset, e.g. {"bool": {"must": [{"term": {"job_company_website": "posthog.com"}}]}}. Send this or sql, never both. |
| sql | string | "SELECT * FROM person WHERE job_company_website = 'posthog.com'"People Data Labs SQL, in the form SELECT * FROM person WHERE ... . String literals take single quotes, only SELECT * is supported, and field names must be real People Data Labs person fields including nested subfields such as experience.title.name. Do not include a LIMIT clause; People Data Labs rejects it. Use limit instead. Send this or query, never both. |
| titlecase | boolean | Return text in title case instead of People Data Labs' lowercase default. |
| Response | ||
| data | object | The matching profiles plus the total the query matched. People Data Labs paginates with a scroll token that is not exposed here, so a call returns one page and total tells you how much is behind it. |
| data.datasetVersion | string | Version of the People Data Labs dataset these records came from. |
| data.people | object[] | Matching person profiles, up to limit. |
| data.people[].activityScore | string | People Data Labs' qualitative score for how recently the profile showed activity. |
| data.people[].available | object | What People Data Labs holds for this person but does not return in search. Each flag is true when Person Enrichment - People Data Labs would return that field for this profile. |
| data.people[].available.birthDate | boolean | A birth date is available. |
| data.people[].available.birthYear | boolean | A birth year is available. |
| data.people[].available.facebookId | boolean | A Facebook numeric id is available. |
| data.people[].available.facebookUrl | boolean | A Facebook profile URL is available. |
| data.people[].available.facebookUsername | boolean | A Facebook handle is available. |
| data.people[].available.githubUrl | boolean | A GitHub profile URL is available. |
| data.people[].available.githubUsername | boolean | A GitHub handle is available. |
| data.people[].available.locationAddressLine2 | boolean | A second address line is available. |
| data.people[].available.locationStreetAddress | boolean | The current street address is available. |
| data.people[].available.mobilePhone | boolean | A mobile phone number is available. |
| data.people[].available.personalEmails | boolean | Personal email addresses are available. |
| data.people[].available.phoneNumbers | boolean | Phone numbers are available. |
| data.people[].available.recommendedPersonalEmail | boolean | A recommended personal email address is available. |
| data.people[].available.streetAddresses | boolean | Street addresses are available. |
| data.people[].available.twitterUrl | boolean | An X (Twitter) profile URL is available. |
| data.people[].available.twitterUsername | boolean | An X (Twitter) handle is available. |
| data.people[].available.workEmail | boolean | A work email address is available. |
| data.people[].companyAddressLine2 | string | Second line of the current employer's headquarters address. |
| data.people[].companyContinent | string | Current employer headquarters continent. |
| data.people[].companyFacebookUrl | string | Current employer Facebook page URL. |
| data.people[].companyFounded | integer | Year the current employer was founded. |
| data.people[].companyGeo | string | Current employer headquarters coordinates as "lat,lon". |
| data.people[].companyId | string | People Data Labs company id for the current employer. |
| data.people[].companyIndustry | string | Current employer industry. |
| data.people[].companyIndustryV2 | string | Current employer industry on People Data Labs' newer taxonomy. |
| data.people[].companyLinkedinId | string | Current employer LinkedIn numeric id. |
| data.people[].companyLinkedinUrl | string | Current employer LinkedIn page URL. |
| data.people[].companyLocality | string | Current employer headquarters city. |
| data.people[].companyLocationCountry | string | Current employer headquarters country. |
| data.people[].companyLocationName | string | Current employer headquarters as one display string. |
| data.people[].companyMetro | string | Current employer headquarters metro area. |
| data.people[].companyName | string | Current employer name. |
| data.people[].companyPostalCode | string | Current employer headquarters postal code. |
| data.people[].companyRegion | string | Current employer headquarters state or region. |
| data.people[].companySize | string | Current employer headcount band. |
| data.people[].companyStreetAddress | string | Current employer headquarters street address. |
| data.people[].companyTwitterUrl | string | Current employer X (Twitter) profile URL. |
| data.people[].companyWebsite | string | Current employer website domain. |
| data.people[].continent | string | Continent. |
| data.people[].countries | string[] | Every country associated with the person. |
| data.people[].country | string | Country. |
| data.people[].education | object[] | Education history. |
| data.people[].education[].degrees | string[] | Degrees earned. |
| data.people[].education[].endDate | string | When study ended. |
| data.people[].education[].gpa | number | Grade point average, when published. |
| data.people[].education[].majors | string[] | Majors studied. |
| data.people[].education[].minors | string[] | Minors studied. |
| data.people[].education[].schoolName | string | School name. |
| data.people[].education[].schoolType | string | School type. |
| data.people[].education[].schoolWebsite | string | School website domain. |
| data.people[].education[].startDate | string | When study started. |
| data.people[].emails | object[] | One entry per email address People Data Labs holds for the person. Search returns the kind only; the address itself comes from Person Enrichment - People Data Labs. |
| data.people[].emails[].type | string | Address kind, e.g. professional or personal. |
| data.people[].experience | object[] | Work history. |
| data.people[].experience[].companyId | string | People Data Labs company id for the employer. |
| data.people[].experience[].companyIndustry | string | Employer industry. |
| data.people[].experience[].companyLinkedinUrl | string | Employer LinkedIn page URL. |
| data.people[].experience[].companyName | string | Employer name. |
| data.people[].experience[].companySize | string | Employer headcount band. |
| data.people[].experience[].companyWebsite | string | Employer website domain. |
| data.people[].experience[].endDate | string | When the role ended, absent while the role is current. |
| data.people[].experience[].isPrimary | boolean | True for the role People Data Labs treats as current. |
| data.people[].experience[].startDate | string | When the role started: YYYY, YYYY-MM or YYYY-MM-DD. |
| data.people[].experience[].title | string | Job title held. |
| data.people[].experience[].titleLevels | string[] | Seniority levels for the title. |
| data.people[].experience[].titleRole | string | Normalized role for the title. |
| data.people[].firstName | string | First name. |
| data.people[].fullName | string | Person's full name. |
| data.people[].geo | string | Coordinates as "lat,lon". |
| data.people[].industry | string | Industry the person works in. |
| data.people[].interests | string[] | Interests the person lists. |
| data.people[].jobChangedUtc | number | UTC epoch timestamp in seconds (Unix time) the person last changed jobs. Multiply by 1000 for a JS Date in milliseconds. |
| data.people[].jobStartDate | string | When the current role started: YYYY, YYYY-MM or YYYY-MM-DD. |
| data.people[].jobTitle | string | Current job title. |
| data.people[].jobTitleClass | string | Normalized title class. |
| data.people[].jobTitleLevels | string[] | Seniority levels for the current title. |
| data.people[].jobTitleRole | string | Normalized role for the current title. |
| data.people[].jobTitleSubRole | string | Normalized sub-role for the current title. |
| data.people[].jobVerifiedUtc | number | UTC epoch timestamp in seconds (Unix time) the current role was last verified. Multiply by 1000 for a JS Date in milliseconds. |
| data.people[].lastInitial | string | Last initial. |
| data.people[].lastName | string | Last name. |
| data.people[].linkedinId | string | LinkedIn numeric member id. |
| data.people[].linkedinUrl | string | LinkedIn profile URL. |
| data.people[].linkedinUsername | string | LinkedIn vanity handle. |
| data.people[].locality | string | City. |
| data.people[].locationName | string | Where the person lives, as one display string. |
| data.people[].locationNames | string[] | Every location People Data Labs has associated with the person. |
| data.people[].locationUpdatedUtc | number | UTC epoch timestamp in seconds (Unix time) the person's location was last updated. Multiply by 1000 for a JS Date in milliseconds. |
| data.people[].metro | string | Metro area. |
| data.people[].middleInitial | string | Middle initial. |
| data.people[].middleName | string | Middle name. |
| data.people[].pdlId | string | People Data Labs persistent person id. Send it to Person Enrichment - People Data Labs to re-pull this record. |
| data.people[].postalCode | string | Postal code. |
| data.people[].profileScore | string | People Data Labs' qualitative score for how complete the profile is. |
| data.people[].profiles | object[] | Networks People Data Labs has a profile for. Search returns the network name only; profile URLs and handles come from Person Enrichment - People Data Labs. |
| data.people[].profiles[].network | string | Network name, e.g. linkedin, facebook, twitter. |
| data.people[].region | string | State or region. |
| data.people[].regions | string[] | Every region associated with the person. |
| data.people[].sex | string | Sex recorded for the person. |
| data.people[].skills | string[] | Skills the person lists. |
| data.total | integer | Profiles matching the query across the whole dataset, not just this page. |
| found | boolean | False when the query matched no profile. |
| Price | ||
| Price per request (ceiling) | USD | $9.91 |
| Price /1k results | USD | $168.00 |
FAQ
About the People Search Peopledatalabs API
The AnyAPI People Search Peopledatalabs API returns People Search peopledatalabs data as normalized JSON from one POST call to /v1/run/people_search.peopledatalabs. Search People Data Labs' person dataset with SQL or an Elasticsearch query. Results carry the professional and firmographic record plus availability flags for contact data; pull the actual email and phone with Person Enrichment - People Data Labs. Billed per profile returned. AnyAPI returns one normalized schema whichever source serves it. It costs $168 per 1,000 results, and never more than $9.91 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 25.0% of People Search peopledatalabs calls through AnyAPI succeeded, with a median response time of 0.8 seconds across 4 measured calls.
Get started
Two ways to start on AnyAPI
Humans fund a USD wallet and pay per request. Agents point a coding agent at one URL and onboard themselves.