Catalog/People Search/Peopledatalabs
POST

People Search Peopledatalabs API

/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.

Category enrichmentRequests / mo 4Routing 1 lane · no failover
Get ~100 free requests

Pricing

One price, in dollars

pay per request · no subscription · fallbacks added as the catalog grows
↳ One lane serves this endpoint today, so a failed call has nowhere to fail over to. Failed attempts are never billed. Uptime, latency and traffic are measured through the gateway, last 30 days.

Call it

Make your first request

POST /v1/run/people_search.peopledatalabs · same shape for every API
import 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())
Open in
Get a free key
Sample response
{
  "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
}
Response interface
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 30d
POST /v1/run/people_search.peopledatalabs
curl -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'"}'
FieldTypeExample value
Request body
dataIncludestringComma-separated People Data Labs fields to include, or a leading - list to exclude. Projection changes the payload only; billing still follows profiles returned.
datasetstringPeople Data Labs dataset to search, when your plan exposes more than one.
limitinteger1Maximum profiles to return. Every profile returned is billed, so start at 1 to check a query and read total before asking for more.
querystringElasticsearch-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.
sqlstring"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.
titlecasebooleanReturn text in title case instead of People Data Labs' lowercase default.
Response
dataobjectThe 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.datasetVersionstringVersion of the People Data Labs dataset these records came from.
data.peopleobject[]Matching person profiles, up to limit.
data.people[].activityScorestringPeople Data Labs' qualitative score for how recently the profile showed activity.
data.people[].availableobjectWhat 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.birthDatebooleanA birth date is available.
data.people[].available.birthYearbooleanA birth year is available.
data.people[].available.facebookIdbooleanA Facebook numeric id is available.
data.people[].available.facebookUrlbooleanA Facebook profile URL is available.
data.people[].available.facebookUsernamebooleanA Facebook handle is available.
data.people[].available.githubUrlbooleanA GitHub profile URL is available.
data.people[].available.githubUsernamebooleanA GitHub handle is available.
data.people[].available.locationAddressLine2booleanA second address line is available.
data.people[].available.locationStreetAddressbooleanThe current street address is available.
data.people[].available.mobilePhonebooleanA mobile phone number is available.
data.people[].available.personalEmailsbooleanPersonal email addresses are available.
data.people[].available.phoneNumbersbooleanPhone numbers are available.
data.people[].available.recommendedPersonalEmailbooleanA recommended personal email address is available.
data.people[].available.streetAddressesbooleanStreet addresses are available.
data.people[].available.twitterUrlbooleanAn X (Twitter) profile URL is available.
data.people[].available.twitterUsernamebooleanAn X (Twitter) handle is available.
data.people[].available.workEmailbooleanA work email address is available.
data.people[].companyAddressLine2stringSecond line of the current employer's headquarters address.
data.people[].companyContinentstringCurrent employer headquarters continent.
data.people[].companyFacebookUrlstringCurrent employer Facebook page URL.
data.people[].companyFoundedintegerYear the current employer was founded.
data.people[].companyGeostringCurrent employer headquarters coordinates as "lat,lon".
data.people[].companyIdstringPeople Data Labs company id for the current employer.
data.people[].companyIndustrystringCurrent employer industry.
data.people[].companyIndustryV2stringCurrent employer industry on People Data Labs' newer taxonomy.
data.people[].companyLinkedinIdstringCurrent employer LinkedIn numeric id.
data.people[].companyLinkedinUrlstringCurrent employer LinkedIn page URL.
data.people[].companyLocalitystringCurrent employer headquarters city.
data.people[].companyLocationCountrystringCurrent employer headquarters country.
data.people[].companyLocationNamestringCurrent employer headquarters as one display string.
data.people[].companyMetrostringCurrent employer headquarters metro area.
data.people[].companyNamestringCurrent employer name.
data.people[].companyPostalCodestringCurrent employer headquarters postal code.
data.people[].companyRegionstringCurrent employer headquarters state or region.
data.people[].companySizestringCurrent employer headcount band.
data.people[].companyStreetAddressstringCurrent employer headquarters street address.
data.people[].companyTwitterUrlstringCurrent employer X (Twitter) profile URL.
data.people[].companyWebsitestringCurrent employer website domain.
data.people[].continentstringContinent.
data.people[].countriesstring[]Every country associated with the person.
data.people[].countrystringCountry.
data.people[].educationobject[]Education history.
data.people[].education[].degreesstring[]Degrees earned.
data.people[].education[].endDatestringWhen study ended.
data.people[].education[].gpanumberGrade point average, when published.
data.people[].education[].majorsstring[]Majors studied.
data.people[].education[].minorsstring[]Minors studied.
data.people[].education[].schoolNamestringSchool name.
data.people[].education[].schoolTypestringSchool type.
data.people[].education[].schoolWebsitestringSchool website domain.
data.people[].education[].startDatestringWhen study started.
data.people[].emailsobject[]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[].typestringAddress kind, e.g. professional or personal.
data.people[].experienceobject[]Work history.
data.people[].experience[].companyIdstringPeople Data Labs company id for the employer.
data.people[].experience[].companyIndustrystringEmployer industry.
data.people[].experience[].companyLinkedinUrlstringEmployer LinkedIn page URL.
data.people[].experience[].companyNamestringEmployer name.
data.people[].experience[].companySizestringEmployer headcount band.
data.people[].experience[].companyWebsitestringEmployer website domain.
data.people[].experience[].endDatestringWhen the role ended, absent while the role is current.
data.people[].experience[].isPrimarybooleanTrue for the role People Data Labs treats as current.
data.people[].experience[].startDatestringWhen the role started: YYYY, YYYY-MM or YYYY-MM-DD.
data.people[].experience[].titlestringJob title held.
data.people[].experience[].titleLevelsstring[]Seniority levels for the title.
data.people[].experience[].titleRolestringNormalized role for the title.
data.people[].firstNamestringFirst name.
data.people[].fullNamestringPerson's full name.
data.people[].geostringCoordinates as "lat,lon".
data.people[].industrystringIndustry the person works in.
data.people[].interestsstring[]Interests the person lists.
data.people[].jobChangedUtcnumberUTC epoch timestamp in seconds (Unix time) the person last changed jobs. Multiply by 1000 for a JS Date in milliseconds.
data.people[].jobStartDatestringWhen the current role started: YYYY, YYYY-MM or YYYY-MM-DD.
data.people[].jobTitlestringCurrent job title.
data.people[].jobTitleClassstringNormalized title class.
data.people[].jobTitleLevelsstring[]Seniority levels for the current title.
data.people[].jobTitleRolestringNormalized role for the current title.
data.people[].jobTitleSubRolestringNormalized sub-role for the current title.
data.people[].jobVerifiedUtcnumberUTC epoch timestamp in seconds (Unix time) the current role was last verified. Multiply by 1000 for a JS Date in milliseconds.
data.people[].lastInitialstringLast initial.
data.people[].lastNamestringLast name.
data.people[].linkedinIdstringLinkedIn numeric member id.
data.people[].linkedinUrlstringLinkedIn profile URL.
data.people[].linkedinUsernamestringLinkedIn vanity handle.
data.people[].localitystringCity.
data.people[].locationNamestringWhere the person lives, as one display string.
data.people[].locationNamesstring[]Every location People Data Labs has associated with the person.
data.people[].locationUpdatedUtcnumberUTC epoch timestamp in seconds (Unix time) the person's location was last updated. Multiply by 1000 for a JS Date in milliseconds.
data.people[].metrostringMetro area.
data.people[].middleInitialstringMiddle initial.
data.people[].middleNamestringMiddle name.
data.people[].pdlIdstringPeople Data Labs persistent person id. Send it to Person Enrichment - People Data Labs to re-pull this record.
data.people[].postalCodestringPostal code.
data.people[].profileScorestringPeople Data Labs' qualitative score for how complete the profile is.
data.people[].profilesobject[]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[].networkstringNetwork name, e.g. linkedin, facebook, twitter.
data.people[].regionstringState or region.
data.people[].regionsstring[]Every region associated with the person.
data.people[].sexstringSex recorded for the person.
data.people[].skillsstring[]Skills the person lists.
data.totalintegerProfiles matching the query across the whole dataset, not just this page.
foundbooleanFalse when the query matched no profile.
Price
Price per request (ceiling)USD$9.91
Price /1k resultsUSD$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.

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. You fund one USD wallet, each call draws it down, and a failed request costs $0.

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. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

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. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

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.

Get ~100 free requests
Works with
Terminal agentsClaude CodeCursorCodexMCP clients