View as Markdown

People Enrich

POST/v2/people/enrich

Retrieve the full profile of one person you already know - identity, location, work history and contact fields. Look them up by GetProspect id, LinkedIn id or URL, email, or first name + last name + company; when several identifiers are sent the strongest wins (id, then linkedin_id, linkedin_url, email, name + company). A verified business email is found and revealed by default (1 email credit per newly revealed email; set enrich_email to false to skip), and enrich_phone additionally looks up a mobile phone for 1 phone credit. When no one matches it answers 200 with NOT_FOUND in errors and charges nothing. Uses 1 unit of the enrich rate limit, none when your workspace already owns the person. A first email search can take more than a minute: set the client timeout to at least 95 seconds. Every position is a current one and carries its start_date (YYYY-MM). Authenticate with your API key in the x-api-key header.

How are credits spent?

Matching a person is free. enrich_email is on by default and costs 1 email credit per newly revealed email - re-revealing an email your workspace already unlocked is free. enrich_phone is off by default and costs 1 phone credit per lookup.

How matching works

Provide any identifiers you have inside data. They are tried in order of reliability - id, then linkedin_id, linkedin_url, email, and finally first_name + last_name with company_domain or company_name - and the first one that finds a person wins. The id and LinkedIn lookups are exact; the name + company lookup is the fuzziest, so use it when it is all you have.

When nothing matches, the 404 response lists which identifiers were attempted and which were skipped as invalid, so you can tell a bad input from a genuinely unknown person.

What you get back

A full Person object: identity, location, primary_position and other_positions with complete company data (unlike People Search, which trims position companies to keep result pages light), plus email, mobile_phone, and your workspace's saved context.

Body parameters

  • dataobjectrequired

    How to find the person: at least one identifier; when several are sent the strongest wins.

    FieldTypeDescription
    idstringThe GetProspect person id, as returned in People Search results.
    linkedin_idone ofThe LinkedIn member numeric id (accepted as string or number).

    Example: 1048576

    linkedin_urlstringThe LinkedIn person URL (e.g. "https://linkedin.com/in/john-doe"). Sales Navigator URN URLs are also accepted.
    emailstringReverse-lookup the person by their stored email address.
    first_namestringUsed together with last_name + company_domain or company_name.
    last_namestringUsed together with first_name + company_domain or company_name.
    company_domainstringCompany domain for the name+company composite lookup.
    company_namestringCompany name for the name+company composite lookup.
  • enrich_emailbooleanoptionaldefault: true

    Reveal a verified business email for the matched person; set false to skip. A stored valid email is handed over at once; a person never searched before (email.status not_checked) gets a live search against their primary company, which can take a few seconds. Consumes 1 email credit per newly revealed email (re-revealing the same email for a workspace is free); a search that finds nothing is free and leaves email.status not_found.

  • enrich_phonebooleanoptionaldefault: false

    If true, attempt to find a mobile phone for the matched person. Consumes 1 phone credit.

Responses

  • 200 The person. When nobody matches, success is false, data is null and errors[0].name is NOT_FOUND (not charged).
  • 400 Invalid request (VALIDATION_ERROR; payload.code says which kind of mistake), or no usable identifier.
  • 401 Missing, unknown or inactive credentials (UNAUTHORIZED).
  • 402 Not enough credits for the email or phone reveal asked for (PAYMENT_REQUIRED).
  • 408 The email search or phone lookup is still running (REQUEST_TIMEOUT, the older spelling of TIMEOUT). Not charged; ask again in a few minutes, when its result is usually stored.
  • 429 Over the enrich rate limit (RATE_LIMIT); wait Retry-After seconds. Sent only where rate limits are enforced.
  • 500 Unexpected server error.

For error handling see Errors. Response objects are described in Person object and Company object.