View as Markdown

People Bulk Enrich

POST/v2/people/bulk-enrich

Enrich up to 50 people in one request. Each item takes the same identifiers as People Enrich and is matched independently (strongest identifier wins); the response buckets items into matched, not_matched and invalid, echoing each item's identifier so you can correlate results. One failed item never fails the batch. Credits work like People Enrich: enrich_email is on by default and costs 1 email credit per newly revealed email, and enrich_phone costs 1 phone credit per lookup. Uses 1 unit of the enrich rate limit per item, none for a person your workspace already owns. Authenticate with your API key in the x-api-key header.

How are credits spent?

Same as People Enrich, per matched item: enrich_email is on by default and costs 1 email credit per newly revealed email (re-reveals are free); enrich_phone costs 1 phone credit per lookup. Set enrich_email: false to match people without spending anything.

How the batch behaves

Each of the up to 50 items is looked up independently with the same identifier precedence as People Enrich - id, then linkedin_id, linkedin_url, email, then name + company. One item failing never fails the batch: the response splits items into three buckets, each entry echoing your identifier (or the item's index if you did not send one):

  • matched - the person was found; carries matched_by and the full Person object.
  • not_matched - the identifiers were valid but nobody matched; carries the attempted lookup fields.
  • invalid - the item could not be looked up at all (bad or unknown fields); carries a reason.

Prefer this endpoint over looping single People Enrich calls: 50 lookups in one request instead of 50 round trips, with per-item outcomes you can correlate by identifier.

Body parameters

  • dataobject[]required

    Array of person lookup items (1-50). Each item is matched independently.

    FieldTypeDescription
    identifierstringClient-supplied correlation key echoed back in the response. If omitted, the item index is used.
    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").
    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

    Enrich a verified business email for every matched item; set false to skip. Pre-flight credit check requires up to one email credit per item.

  • enrich_phonebooleanoptionaldefault: false

    If true, attempt to enrich a mobile phone for every matched item. Pre-flight credit check.

Responses

  • 200 Every item in one of matched, not_matched or invalid, echoing its identifier.
  • 400 Invalid request (VALIDATION_ERROR; payload.code says which kind of mistake), or one identifier sent with two different lookups (payload.conflicts).
  • 401 Missing, unknown or inactive credentials (UNAUTHORIZED).
  • 402 Not enough credits for every reveal the batch would bill (PAYMENT_REQUIRED): all or nothing, nothing is revealed.
  • 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.