POST

Person Enrichment Prospeo API

/v1/run/person_enrichment.prospeo

Enrich one person into work email, mobile phone, full job history and employer firmographics from a LinkedIn URL, an email, or a name plus company domain.

Category enrichmentRequests / mo 3Routing 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.prospeo · same shape for every API
import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/person_enrichment.prospeo",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={},
)
print(res.json())
Open in
Get a free key
Sample response
{
  "data": {
    "company": {
      "attributes": {
        "hasDemo": true,
        "hasDownloadable": true,
        "hasFreeTrial": true,
        "hasMobileApps": true,
        "hasOnlineReviews": true,
        "hasPricing": true,
        "isB2b": true
      },
      "companyId": "Acme Inc",
      "crunchbaseUrl": "https://example.com/page",
      "description": "A short example description of this item.",
      "descriptionAi": "A short example description of this item.",
      "descriptionSeo": "A short example description of this item.",
      "domain": "example.com",
      "emailTech": {
        "domain": "example.com",
        "mxProvider": "a1b2c3d4"
      },
      "employeeCount": 12500,
      "employeeCountOnProspeo": 12500,
      "employeeRange": "example",
      "facebookUrl": "https://example.com/page",
      "founded": 42,
      "funding": {
        "events": [
          {
            "amount": 19.99,
            "amountPrinted": "19.99",
            "link": "https://example.com/page",
            "raisedUtc": 12.5,
            "stage": "example"
          }
        ],
        "latestStage": "example",
        "latestUtc": 12.5,
        "rounds": 42,
        "totalRaised": 12500,
        "totalRaisedPrinted": "example"
      },
      "image": "https://example.com/image.jpg",
      "industry": "general",
      "instagramUrl": "https://example.com/page",
      "jobPostings": {
        "activeCount": 12500,
        "activeTitles": [
          "Example title"
        ]
      },
      "keywords": [
        "a1b2c3d4"
      ],
      "linkedinId": "https://example.com/page",
      "linkedinUrl": "https://example.com/page",
      "location": {
        "city": "San Francisco",
        "country": "US",
        "countryCode": "US",
        "rawAddress": "123 Main St",
        "state": "CA"
      },
      "naicsCodes": [
        "a1b2c3d4"
      ],
      "name": "Example title",
      "otherWebsites": [
        "https://example.com/page"
      ],
      "phoneHq": {
        "country": "US",
        "countryCode": "US",
        "international": "example",
        "national": "example",
        "phone": "+1 555-0142"
      },
      "revenueRange": {
        "max": 12.5,
        "min": 12.5
      },
      "revenueRangePrinted": "example",
      "sicCodes": [
        "a1b2c3d4"
      ],
      "technologies": [
        "example"
      ],
      "twitterUrl": "https://example.com/page",
      "type": "general",
      "website": "https://example.com/page",
      "youtubeUrl": "https://example.com/page"
    },
    "email": {
      "email": "alex@example.com",
      "revealed": true,
      "status": "active"
    },
    "firstName": "Alex",
    "freeEnrichment": true,
    "fullName": "Alex Rivera",
    "headline": "Example title",
    "jobChangeDetectedUtc": 12.5,
    "jobHistory": [
      {
        "companyId": "Acme Inc",
        "companyName": "Acme Inc",
        "current": true,
        "departments": [
          "example"
        ],
        "durationMonths": 13,
        "endMonth": 42,
        "endYear": 2024,
        "jobKey": "a1b2c3d4",
        "seniority": "example",
        "startMonth": 42,
        "startYear": 2024,
        "title": "Example title"
      }
    ],
    "jobKey": "a1b2c3d4",
    "jobTitle": "Example title",
    "lastName": "Rivera",
    "linkedinMemberId": "https://example.com/page",
    "linkedinUrl": "https://example.com/page",
    "location": {
      "city": "San Francisco",
      "country": "US",
      "countryCode": "US",
      "state": "CA",
      "timeZone": "2024-01-15T09:30:00Z",
      "timeZoneOffset": 12.5
    },
    "mobile": {
      "country": "US",
      "countryCode": "US",
      "international": "example",
      "mobile": "example",
      "national": "example",
      "revealed": true,
      "status": "active"
    },
    "personId": "a1b2c3d4",
    "skills": [
      "example"
    ]
  },
  "found": true
}
Response interface
interface PersonEnrichmentProspeoResponse {
  data: {
    company?: {
      attributes?: {
        hasDemo?: boolean;
        hasDownloadable?: boolean;
        hasFreeTrial?: boolean;
        hasMobileApps?: boolean;
        hasOnlineReviews?: boolean;
        hasPricing?: boolean;
        isB2b?: boolean;
      };
      companyId?: string;
      crunchbaseUrl?: string;
      description?: string;
      descriptionAi?: string;
      descriptionSeo?: string;
      domain?: string;
      emailTech?: {
        domain?: string;
        mxProvider?: string;
      };
      employeeCount?: number;
      employeeCountOnProspeo?: number;
      employeeRange?: string;
      facebookUrl?: string;
      founded?: number;
      funding?: {
        events?: {
          amount?: number;
          amountPrinted?: string;
          link?: string;
          raisedUtc?: number;
          stage?: string;
        }[];
        latestStage?: string;
        latestUtc?: number;
        rounds?: number;
        totalRaised?: number;
        totalRaisedPrinted?: string;
      };
      image?: string;
      industry?: string;
      instagramUrl?: string;
      jobPostings?: {
        activeCount?: number;
        activeTitles?: string[];
      };
      keywords?: string[];
      linkedinId?: string;
      linkedinUrl?: string;
      location?: {
        city?: string;
        country?: string;
        countryCode?: string;
        rawAddress?: string;
        state?: string;
      };
      naicsCodes?: string[];
      name?: string;
      otherWebsites?: string[];
      phoneHq?: {
        country?: string;
        countryCode?: string;
        international?: string;
        national?: string;
        phone?: string;
      };
      revenueRange?: {
        max?: number;
        min?: number;
      };
      revenueRangePrinted?: string;
      sicCodes?: string[];
      technologies?: string[];
      twitterUrl?: string;
      type?: string;
      website?: string;
      youtubeUrl?: string;
    };
    email?: {
      email?: string;
      revealed?: boolean;
      status?: string;
    };
    firstName?: string;
    freeEnrichment?: boolean;
    fullName: string;
    headline?: string;
    jobChangeDetectedUtc?: number;
    jobHistory?: {
      companyId?: string;
      companyName?: string;
      current?: boolean;
      departments?: string[];
      durationMonths?: number;
      endMonth?: number;
      endYear?: number;
      jobKey?: string;
      seniority?: string;
      startMonth?: number;
      startYear?: number;
      title?: string;
    }[];
    jobKey?: string;
    jobTitle?: string;
    lastName?: string;
    linkedinMemberId?: string;
    linkedinUrl?: string;
    location?: {
      city?: string;
      country?: string;
      countryCode?: string;
      state?: string;
      timeZone?: string;
      timeZoneOffset?: number;
    };
    mobile?: {
      country?: string;
      countryCode?: string;
      international?: string;
      mobile?: string;
      national?: string;
      revealed?: boolean;
      status?: string;
    };
    personId?: string;
    skills?: 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.prospeo
curl -X POST https://api.getanyapi.com/v1/run/person_enrichment.prospeo \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"linkedinUrl":"https://www.linkedin.com/in/dharmesh"}'
FieldTypeExample value
Request body
companyLinkedinUrlstringEmployer LinkedIn page URL, for a more precise match.
companyNamestringEmployer name. Avoid sending it alone; many companies share a name.
companyWebsitestringEmployer domain, e.g. stripe.com. Preferred over companyName.
emailstringKnown email address, used as the sole identity seed for a reverse lookup.
enrichMobilebooleanReveal the mobile number. Without it the number comes back masked.
firstNamestringFirst name. Send with lastName plus companyWebsite for the best hit rate.
fullNamestringFull name, as an alternative to firstName plus lastName.
lastNamestringLast name.
linkedinUrlstring"https://www.linkedin.com/in/dharmesh"LinkedIn profile URL. The most accurate identifier, alone or with a name.
onlyVerifiedEmailbooleanReturn a match only when Prospeo has a verified email for it. Defaults to false.
onlyVerifiedMobilebooleanReturn a match only when Prospeo has a verified mobile for it.
personIdstringProspeo person id from an earlier People Search - Prospeo call.
Response
dataobjectThe enriched person, or null when nothing matched.
data.companyobjectThe person's current employer, with Prospeo's full firmographic record.
data.company.attributesobjectWhat Prospeo detects about how the company sells.
data.company.attributes.hasDemobooleanThe website offers a demo.
data.company.attributes.hasDownloadablebooleanThe website offers a download.
data.company.attributes.hasFreeTrialbooleanThe website offers a free trial.
data.company.attributes.hasMobileAppsbooleanThe company publishes mobile apps.
data.company.attributes.hasOnlineReviewsbooleanThe company has online reviews.
data.company.attributes.hasPricingbooleanThe website publishes pricing.
data.company.attributes.isB2bbooleanThe company sells to businesses.
data.company.companyIdstringProspeo's own company identifier. Send it back as this SKU's companyId input.
data.company.crunchbaseUrlstringCompany Crunchbase profile URL.
data.company.descriptionstringCompany description as the company writes it.
data.company.descriptionAistringProspeo's own AI-written company summary.
data.company.descriptionSeostringMeta description from the company's website.
data.company.domainstringPrimary company domain.
data.company.emailTechobjectHow the company's email is hosted.
data.company.emailTech.domainstringDomain the company's email addresses use.
data.company.emailTech.mxProviderstringMail provider behind the domain's MX records.
data.company.employeeCountintegerEmployees Prospeo currently counts.
data.company.employeeCountOnProspeointegerEmployees of this company that Prospeo holds a profile for.
data.company.employeeRangestringEmployee headcount band, e.g. 10000+.
data.company.facebookUrlstringCompany Facebook page URL.
data.company.foundedintegerYear the company was founded.
data.company.fundingobjectFunding history.
data.company.funding.eventsobject[]One entry per funding round.
data.company.funding.events[].amountnumberAmount raised in USD.
data.company.funding.events[].amountPrintedstringAmount raised as a display string.
data.company.funding.events[].linkstringSource URL for the round.
data.company.funding.events[].raisedUtcnumberUTC epoch timestamp in seconds (Unix time) the round closed. Multiply by 1000 for a JS Date in milliseconds.
data.company.funding.events[].stagestringRound stage, e.g. Series E-J.
data.company.funding.latestStagestringMost recent funding stage.
data.company.funding.latestUtcnumberUTC epoch timestamp in seconds (Unix time) of the most recent round. Multiply by 1000 for a JS Date in milliseconds.
data.company.funding.roundsintegerNumber of funding rounds raised.
data.company.funding.totalRaisednumberTotal capital raised, in USD.
data.company.funding.totalRaisedPrintedstringTotal capital raised as a display string.
data.company.imagestringCompany logo URL.
data.company.industrystringCompany industry.
data.company.instagramUrlstringCompany Instagram profile URL.
data.company.jobPostingsobjectOpen roles Prospeo currently sees for the company.
data.company.jobPostings.activeCountintegerOpen roles currently posted.
data.company.jobPostings.activeTitlesstring[]Titles of the open roles.
data.company.keywordsstring[]Keywords Prospeo assigns the company.
data.company.linkedinIdstringCompany LinkedIn numeric id.
data.company.linkedinUrlstringCompany LinkedIn page URL.
data.company.locationobjectCompany headquarters.
data.company.location.citystringCity.
data.company.location.countrystringCountry name.
data.company.location.countryCodestringISO 3166-1 alpha-2 country code.
data.company.location.rawAddressstringHeadquarters address as one display string.
data.company.location.statestringState or region.
data.company.naicsCodesstring[]NAICS classification codes for the company.
data.company.namestringCompany name.
data.company.otherWebsitesstring[]Other domains the company owns.
data.company.phoneHqobjectHeadquarters switchboard number.
data.company.phoneHq.countrystringCountry the number belongs to.
data.company.phoneHq.countryCodestringISO 3166-1 alpha-2 code for that country.
data.company.phoneHq.internationalstringNumber in international format.
data.company.phoneHq.nationalstringNumber in national format.
data.company.phoneHq.phonestringPhone number as Prospeo stores it.
data.company.revenueRangeobjectAnnual revenue band in USD.
data.company.revenueRange.maxnumberUpper bound in USD.
data.company.revenueRange.minnumberLower bound in USD.
data.company.revenueRangePrintedstringAnnual revenue band as a display string.
data.company.sicCodesstring[]SIC classification codes for the company.
data.company.technologiesstring[]Technologies Prospeo detects in the company's stack.
data.company.twitterUrlstringCompany X (Twitter) profile URL.
data.company.typestringOwnership type, e.g. Private, Public, Non Profit.
data.company.websitestringCompany website URL.
data.company.youtubeUrlstringCompany YouTube channel URL.
data.emailobjectWork email address. Prospeo returns the address only once it is revealed; status says why it is absent otherwise.
data.email.emailstringThe email address, when Prospeo revealed one.
data.email.revealedbooleanTrue when the address below is the full value rather than a masked preview.
data.email.statusstringProspeo's verdict for the address, e.g. VERIFIED or UNAVAILABLE.
data.firstNamestringFirst name.
data.freeEnrichmentbooleanTrue when Prospeo served this record from cache and did not charge for it.
data.fullNamestringPerson's full name.
data.headlinestringLinkedIn headline.
data.jobChangeDetectedUtcnumberUTC epoch timestamp in seconds (Unix time) Prospeo last detected a job change. Multiply by 1000 for a JS Date in milliseconds.
data.jobHistoryobject[]Every role Prospeo holds for the person, most recent first.
data.jobHistory[].companyIdstringProspeo company id for the employer.
data.jobHistory[].companyNamestringEmployer name.
data.jobHistory[].currentbooleanTrue while the role is current.
data.jobHistory[].departmentsstring[]Departments Prospeo assigns the role.
data.jobHistory[].durationMonthsintegerHow long the role has run, in months.
data.jobHistory[].endMonthintegerMonth the role ended, absent while current.
data.jobHistory[].endYearintegerYear the role ended, absent while current.
data.jobHistory[].jobKeystringProspeo's identifier for this role.
data.jobHistory[].senioritystringSeniority band, e.g. C-Suite, Manager, Entry.
data.jobHistory[].startMonthintegerMonth the role started, 1 to 12.
data.jobHistory[].startYearintegerYear the role started.
data.jobHistory[].titlestringJob title held.
data.jobKeystringProspeo's identifier for the current role.
data.jobTitlestringCurrent job title.
data.lastNamestringLast name.
data.linkedinMemberIdstringLinkedIn numeric member id.
data.linkedinUrlstringLinkedIn profile URL.
data.locationobjectWhere the person is located.
data.location.citystringCity.
data.location.countrystringCountry name.
data.location.countryCodestringISO 3166-1 alpha-2 country code.
data.location.statestringState or region.
data.location.timeZonestringIANA time zone, e.g. America/New_York.
data.location.timeZoneOffsetnumberCurrent offset from UTC in hours.
data.mobileobjectMobile phone number. Digits are masked until the number is revealed; send enrichMobile to reveal it.
data.mobile.countrystringCountry the number belongs to.
data.mobile.countryCodestringISO 3166-1 alpha-2 code for that country.
data.mobile.internationalstringNumber in international format.
data.mobile.mobilestringThe number as Prospeo stores it.
data.mobile.nationalstringNumber in national format.
data.mobile.revealedbooleanTrue when the digits below are the full number rather than a masked preview.
data.mobile.statusstringProspeo's verdict for the number, e.g. VERIFIED or UNAVAILABLE.
data.personIdstringProspeo's own person identifier. Send it back as this SKU's personId input.
data.skillsstring[]Skills the person lists.
foundbooleanFalse when Prospeo matched nothing.
Price
Price per requestUSD$0.066
Price /1k reqUSD$66.00

FAQ

About the Person Enrichment Prospeo API

The AnyAPI Person Enrichment Prospeo API returns Person Enrichment prospeo data as normalized JSON from one POST call to /v1/run/person_enrichment.prospeo. Enrich one person into work email, mobile phone, full job history and employer firmographics from a LinkedIn URL, an email, or a name plus company domain. AnyAPI returns one normalized schema whichever source serves it. It costs from $66 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Person Enrichment prospeo calls through AnyAPI succeeded, with a median response time of 1.1 seconds across 3 measured calls.

It costs from $66 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, mobile phone, full job history and employer firmographics from a LinkedIn URL, an email, or a name plus company domain. 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, 100.0% of Person Enrichment prospeo calls through AnyAPI succeeded, with a median response time of 1.1 seconds across 3 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