Catalog/Person Enrichment/Peopledatalabs
POST

Person Enrichment Peopledatalabs API

/v1/run/person_enrichment.peopledatalabs

Enrich one person into work email, personal emails, mobile phone, full work history, education and employer firmographics from any identifier People Data Labs can match on.

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

Pricing

One price, in dollars

pay per request · no subscription · fallbacks added as the catalog grows
Request
Gateway request
discovered operation
↓
Router
↓
Providers · 1
↳ 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/person_enrichment.peopledatalabs · same shape for every API
import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/person_enrichment.peopledatalabs",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={},
)
print(res.json())
Open in
Get a free key
Sample response
{
  "data": {
    "activityScore": "example",
    "birthDate": "2024-01-15T09:30:00Z",
    "birthYear": 2024,
    "company": {
      "addressLine2": "123 Main St",
      "companyId": "Acme Inc",
      "continent": "example",
      "country": "US",
      "facebookUrl": "https://example.com/page",
      "founded": 42,
      "geo": "example",
      "industry": "general",
      "industryV2": "general",
      "linkedinId": "https://example.com/page",
      "linkedinUrl": "https://example.com/page",
      "locality": "example",
      "locationName": "Example title",
      "metro": "example",
      "name": "Example title",
      "postalCode": "94107",
      "region": "CA",
      "size": "example",
      "streetAddress": "123 Main St",
      "twitterUrl": "https://example.com/page",
      "website": "https://example.com/page"
    },
    "countries": [
      "example"
    ],
    "datasetVersion": "example",
    "education": [
      {
        "degrees": [
          "example"
        ],
        "endDate": "2024-01-15T09:30:00Z",
        "gpa": 12.5,
        "majors": [
          "example"
        ],
        "minors": [
          "example"
        ],
        "schoolId": "a1b2c3d4",
        "schoolLinkedinUrl": "https://example.com/page",
        "schoolLocationName": "Example title",
        "schoolName": "Example title",
        "schoolType": "general",
        "schoolWebsite": "https://example.com/page",
        "startDate": "2024-01-15T09:30:00Z"
      }
    ],
    "emails": [
      {
        "address": "123 Main St",
        "type": "general"
      }
    ],
    "experience": [
      {
        "companyFounded": 42,
        "companyId": "Acme Inc",
        "companyIndustry": "Acme Inc",
        "companyLinkedinUrl": "https://example.com/page",
        "companyLocationName": "Acme Inc",
        "companyName": "Acme Inc",
        "companySize": "Acme Inc",
        "companyWebsite": "https://example.com/page",
        "endDate": "2024-01-15T09:30:00Z",
        "isPrimary": true,
        "locationNames": [
          "Example title"
        ],
        "startDate": "2024-01-15T09:30:00Z",
        "title": "Example title",
        "titleClass": "Example title",
        "titleLevels": [
          "Example title"
        ],
        "titleRole": "Example title",
        "titleSubRole": "Example title"
      }
    ],
    "facebookId": "a1b2c3d4",
    "facebookUrl": "https://example.com/page",
    "facebookUsername": "alex_rivera",
    "firstName": "Alex",
    "fullName": "Alex Rivera",
    "githubUrl": "https://example.com/page",
    "githubUsername": "alex_rivera",
    "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",
    "location": {
      "addressLine2": "123 Main St",
      "continent": "example",
      "country": "US",
      "geo": "example",
      "locality": "example",
      "metro": "example",
      "name": "Example title",
      "postalCode": "94107",
      "region": "CA",
      "streetAddress": "123 Main St",
      "updatedUtc": 12.5
    },
    "locationNames": [
      "Example title"
    ],
    "middleInitial": "a1b2c3d4",
    "middleName": "Example title",
    "mobilePhone": "+1 555-0142",
    "pdlId": "a1b2c3d4",
    "personalEmails": [
      "alex@example.com"
    ],
    "phoneNumbers": [
      "+1 555-0142"
    ],
    "profileScore": "example",
    "profiles": [
      {
        "network": "example",
        "profileId": "a1b2c3d4",
        "url": "https://example.com/page",
        "username": "alex_rivera"
      }
    ],
    "recommendedPersonalEmail": "alex@example.com",
    "regions": [
      "CA"
    ],
    "sex": "example",
    "skills": [
      "example"
    ],
    "streetAddresses": [
      {
        "addressLine2": "123 Main St",
        "continent": "example",
        "country": "US",
        "geo": "example",
        "locality": "example",
        "metro": "example",
        "name": "Example title",
        "postalCode": "94107",
        "region": "CA",
        "streetAddress": "123 Main St"
      }
    ],
    "twitterUrl": "https://example.com/page",
    "twitterUsername": "alex_rivera",
    "workEmail": "alex@example.com"
  },
  "found": true
}
Response interface
interface PersonEnrichmentPeopledatalabsResponse {
  data: {
    activityScore?: string;
    birthDate?: string;
    birthYear?: number;
    company?: {
      addressLine2?: string;
      companyId?: string;
      continent?: string;
      country?: string;
      facebookUrl?: string;
      founded?: number;
      geo?: string;
      industry?: string;
      industryV2?: string;
      linkedinId?: string;
      linkedinUrl?: string;
      locality?: string;
      locationName?: string;
      metro?: string;
      name?: string;
      postalCode?: string;
      region?: string;
      size?: string;
      streetAddress?: string;
      twitterUrl?: string;
      website?: string;
    };
    countries?: string[];
    datasetVersion?: string;
    education?: {
      degrees?: string[];
      endDate?: string;
      gpa?: number;
      majors?: string[];
      minors?: string[];
      schoolId?: string;
      schoolLinkedinUrl?: string;
      schoolLocationName?: string;
      schoolName?: string;
      schoolType?: string;
      schoolWebsite?: string;
      startDate?: string;
    }[];
    emails?: {
      address: string;
      type?: string;
    }[];
    experience?: {
      companyFounded?: number;
      companyId?: string;
      companyIndustry?: string;
      companyLinkedinUrl?: string;
      companyLocationName?: string;
      companyName?: string;
      companySize?: string;
      companyWebsite?: string;
      endDate?: string;
      isPrimary?: boolean;
      locationNames?: string[];
      startDate?: string;
      title?: string;
      titleClass?: string;
      titleLevels?: string[];
      titleRole?: string;
      titleSubRole?: string;
    }[];
    facebookId?: string;
    facebookUrl?: string;
    facebookUsername?: string;
    firstName?: string;
    fullName: string;
    githubUrl?: string;
    githubUsername?: 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;
    location?: {
      addressLine2?: string;
      continent?: string;
      country?: string;
      geo?: string;
      locality?: string;
      metro?: string;
      name?: string;
      postalCode?: string;
      region?: string;
      streetAddress?: string;
      updatedUtc?: number;
    };
    locationNames?: string[];
    middleInitial?: string;
    middleName?: string;
    mobilePhone?: string;
    pdlId?: string;
    personalEmails?: string[];
    phoneNumbers?: string[];
    profileScore?: string;
    profiles?: {
      network: string;
      profileId?: string;
      url?: string;
      username?: string;
    }[];
    recommendedPersonalEmail?: string;
    regions?: string[];
    sex?: string;
    skills?: string[];
    streetAddresses?: {
      addressLine2?: string;
      continent?: string;
      country?: string;
      geo?: string;
      locality?: string;
      metro?: string;
      name?: string;
      postalCode?: string;
      region?: string;
      streetAddress?: string;
    }[];
    twitterUrl?: string;
    twitterUsername?: string;
    workEmail?: string;
  } | 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/person_enrichment.peopledatalabs
curl -X POST https://api.getanyapi.com/v1/run/person_enrichment.peopledatalabs \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profile":"https://www.linkedin.com/in/dharmesh"}'
FieldTypeExample value
Request body
birthDatestringKnown birth date, to disambiguate a name match.
companystringCompany name, website or social URL where the person has worked.
countrystringCountry to match on.
dataIncludestringComma-separated People Data Labs fields to include, or a leading - list to exclude. Projection changes the payload only; it does not reduce what the call costs.
emailstringAny email address the person has used.
emailHashstringSHA-256 or MD5 hash of an email address, for privacy-preserving matching.
firstNamestringFirst name. Send with lastName plus company, school or location.
includeIfMatchedbooleanReport which of the sent identifiers actually matched.
lastNamestringLast name. Send with firstName plus company, school or location.
linkedinIdstringLinkedIn numeric member id (PDL calls this lid).
localitystringCity or locality to match on.
locationstringFree-form location string, e.g. brookline, massachusetts, united states.
middleNamestringMiddle name.
minLikelihoodintegerMinimum People Data Labs likelihood score a match must reach to count as found. Omitted, this SKU sends 6; the People Data Labs default is 2.
namestringFull name, as an alternative to firstName plus lastName.
pdlIdstringPeople Data Labs persistent person id, as returned by this SKU's pdlId output.
phonestringPhone number in international form, e.g. +16176695906.
postalCodestringPostal or ZIP code to match on.
profilestring"https://www.linkedin.com/in/dharmesh"Social profile URL the person has used, e.g. a LinkedIn, Twitter, Facebook or GitHub profile. The strongest single identifier.
regionstringState or region to match on.
requiredstringPeople Data Labs boolean expression over top-level fields that a match must satisfy, e.g. personal_emails or (emails and phone_numbers).
schoolstringSchool the person attended, used to disambiguate a name match.
streetAddressstringStreet address to match on.
titlecasebooleanReturn text in title case instead of People Data Labs' lowercase default.
Response
dataobjectThe enriched person, or null when nothing matched.
data.activityScorestringPeople Data Labs' qualitative score for how recently the profile showed activity.
data.birthDatestringDate of birth as People Data Labs reports it, YYYY-MM-DD.
data.birthYearintegerYear of birth.
data.companyobjectThe person's current employer.
data.company.addressLine2stringSecond line of the headquarters address.
data.company.companyIdstringPeople Data Labs company id.
data.company.continentstringHeadquarters continent.
data.company.countrystringHeadquarters country.
data.company.facebookUrlstringCompany Facebook page URL.
data.company.foundedintegerYear the company was founded.
data.company.geostringHeadquarters coordinates as "lat,lon".
data.company.industrystringCompany industry.
data.company.industryV2stringCompany industry on People Data Labs' newer taxonomy.
data.company.linkedinIdstringCompany LinkedIn numeric id.
data.company.linkedinUrlstringCompany LinkedIn page URL.
data.company.localitystringHeadquarters city.
data.company.locationNamestringHeadquarters location as one display string.
data.company.metrostringHeadquarters metro area.
data.company.namestringCompany name.
data.company.postalCodestringHeadquarters postal code.
data.company.regionstringHeadquarters state or region.
data.company.sizestringEmployee headcount band, e.g. 5001-10000.
data.company.streetAddressstringHeadquarters street address.
data.company.twitterUrlstringCompany X (Twitter) profile URL.
data.company.websitestringCompany website domain.
data.countriesstring[]Every country associated with the person.
data.datasetVersionstringVersion of the People Data Labs dataset this record came from.
data.educationobject[]Education history.
data.education[].degreesstring[]Degrees earned.
data.education[].endDatestringWhen study ended.
data.education[].gpanumberGrade point average, when the person published one.
data.education[].majorsstring[]Majors studied.
data.education[].minorsstring[]Minors studied.
data.education[].schoolIdstringPeople Data Labs school id.
data.education[].schoolLinkedinUrlstringSchool LinkedIn page URL.
data.education[].schoolLocationNamestringSchool location as one display string.
data.education[].schoolNamestringSchool name.
data.education[].schoolTypestringSchool type, e.g. post-secondary institution.
data.education[].schoolWebsitestringSchool website domain.
data.education[].startDatestringWhen study started: YYYY, YYYY-MM or YYYY-MM-DD.
data.emailsobject[]Every email address held for the person, with its kind.
data.emails[].addressstringEmail address.
data.emails[].typestringAddress kind, e.g. professional or personal.
data.experienceobject[]Work history, most relevant first.
data.experience[].companyFoundedintegerYear the employer was founded.
data.experience[].companyIdstringPeople Data Labs company id for the employer.
data.experience[].companyIndustrystringEmployer industry.
data.experience[].companyLinkedinUrlstringEmployer LinkedIn page URL.
data.experience[].companyLocationNamestringEmployer headquarters as one display string.
data.experience[].companyNamestringEmployer name.
data.experience[].companySizestringEmployer headcount band.
data.experience[].companyWebsitestringEmployer website domain.
data.experience[].endDatestringWhen the role ended, absent while the role is current.
data.experience[].isPrimarybooleanTrue for the role People Data Labs treats as current.
data.experience[].locationNamesstring[]Where the role was based.
data.experience[].startDatestringWhen the role started: YYYY, YYYY-MM or YYYY-MM-DD.
data.experience[].titlestringJob title held.
data.experience[].titleClassstringNormalized title class.
data.experience[].titleLevelsstring[]Seniority levels for the title.
data.experience[].titleRolestringNormalized role for the title.
data.experience[].titleSubRolestringNormalized sub-role for the title.
data.facebookIdstringFacebook numeric id.
data.facebookUrlstringFacebook profile URL.
data.facebookUsernamestringFacebook handle.
data.firstNamestringFirst name.
data.fullNamestringPerson's full name.
data.githubUrlstringGitHub profile URL.
data.githubUsernamestringGitHub handle.
data.industrystringIndustry the person works in.
data.interestsstring[]Interests the person lists.
data.jobChangedUtcnumberUTC epoch timestamp in seconds (Unix time) the person last changed jobs. Multiply by 1000 for a JS Date in milliseconds.
data.jobStartDatestringWhen the current role started, as People Data Labs reports it: YYYY, YYYY-MM or YYYY-MM-DD.
data.jobTitlestringCurrent job title.
data.jobTitleClassstringNormalized title class, e.g. research_and_development.
data.jobTitleLevelsstring[]Seniority levels for the current title, e.g. cxo, owner.
data.jobTitleRolestringNormalized role for the current title, e.g. engineering.
data.jobTitleSubRolestringNormalized sub-role for the current title.
data.jobVerifiedUtcnumberUTC epoch timestamp in seconds (Unix time) the current role was last verified. Multiply by 1000 for a JS Date in milliseconds.
data.lastInitialstringLast initial.
data.lastNamestringLast name.
data.linkedinIdstringLinkedIn numeric member id.
data.linkedinUrlstringLinkedIn profile URL.
data.linkedinUsernamestringLinkedIn vanity handle.
data.locationobjectWhere the person lives.
data.location.addressLine2stringSecond line of the address.
data.location.continentstringContinent.
data.location.countrystringCountry.
data.location.geostringCoordinates as "lat,lon".
data.location.localitystringCity.
data.location.metrostringMetro area.
data.location.namestringLocation as one display string.
data.location.postalCodestringPostal code.
data.location.regionstringState or region.
data.location.streetAddressstringStreet address.
data.location.updatedUtcnumberUTC epoch timestamp in seconds (Unix time) the location was last updated. Multiply by 1000 for a JS Date in milliseconds.
data.locationNamesstring[]Every location People Data Labs has associated with the person.
data.middleInitialstringMiddle initial.
data.middleNamestringMiddle name.
data.mobilePhonestringMobile phone number in international form.
data.pdlIdstringPeople Data Labs persistent person id. Send it back as this SKU's pdlId input.
data.personalEmailsstring[]Personal email addresses.
data.phoneNumbersstring[]Every phone number held for the person.
data.profileScorestringPeople Data Labs' qualitative score for how complete the profile is.
data.profilesobject[]Every social profile linked to the person.
data.profiles[].networkstringNetwork name, e.g. linkedin, github, twitter.
data.profiles[].profileIdstringNetwork's own id for the profile.
data.profiles[].urlstringProfile URL.
data.profiles[].usernamestringHandle on that network.
data.recommendedPersonalEmailstringThe personal address People Data Labs recommends reaching the person at.
data.regionsstring[]Every region associated with the person.
data.sexstringSex recorded for the person.
data.skillsstring[]Skills the person lists.
data.streetAddressesobject[]Every street address associated with the person.
data.streetAddresses[].addressLine2stringSecond line of the address.
data.streetAddresses[].continentstringContinent.
data.streetAddresses[].countrystringCountry.
data.streetAddresses[].geostringCoordinates as "lat,lon".
data.streetAddresses[].localitystringCity.
data.streetAddresses[].metrostringMetro area.
data.streetAddresses[].namestringAddress location as one display string.
data.streetAddresses[].postalCodestringPostal code.
data.streetAddresses[].regionstringState or region.
data.streetAddresses[].streetAddressstringStreet address.
data.twitterUrlstringX (Twitter) profile URL.
data.twitterUsernamestringX (Twitter) handle.
data.workEmailstringBest work email address.
foundbooleanFalse when People Data Labs matched no person above the likelihood threshold.
Price
Price per requestUSD$0.24
Price /1k reqUSD$240.00

FAQ

About the Person Enrichment Peopledatalabs API

The AnyAPI Person Enrichment Peopledatalabs API returns Person Enrichment peopledatalabs data as normalized JSON from one POST call to /v1/run/person_enrichment.peopledatalabs. Enrich one person into work email, personal emails, mobile phone, full work history, education and employer firmographics from any identifier People Data Labs can match on. AnyAPI returns one normalized schema whichever source serves it. It costs from $240 per 1,000 requests, in US dollars with no subscription and no monthly minimum.

It costs from $240 per 1,000 requests, 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.

Enrich one person into work email, personal emails, mobile phone, full work history, education and employer firmographics from any identifier People Data Labs can match on. 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.

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