Create People Enrichment
/v2/people/enrichmentsStarts a job that matches up to 10,000 people against GetProspect and, with enrich_email (the default), reveals and finds their emails; enrich_phone adds mobile numbers. The job runs at once and the answer carries no estimate: poll it at Location (GET /v2/jobs/{id}) or read it at GET /v2/enrichments/{id}, or subscribe once to job.finished with POST /v2/webhooks. A row with no usable identifier combination (a LinkedIn URL, an email, or first and last name with a company domain or name) is accepted and counted under counts.invalid. At least one email credit (and, with enrich_phone, one phone credit) is needed to start; the job charges as it runs and stops early, keeping what it found, if the balance runs out. At most 5 enrichments are active per workspace. With an Idempotency-Key, a retry answers the job it created. 1 jobs rate-limit unit.
How are credits spent?
As in the app's CSV enrichment, during the job: 1 email credit per person whose email is revealed and your workspace does not already own (the live finder charges only when it finds a valid email), 1 phone credit per mobile number found with
enrich_phone. Re-enriching people you already revealed is free, andenrich_email: falsematches people without spending anything. Starting needs at least one email credit; if the balance runs out the job stops early and keeps what it found.
How the job works
Send up to 10,000 rows, the same items as
People Bulk Enrich without id and
linkedin_id, each with an optional identifier of yours. The answer is 202
with the job and Location: /v2/jobs/{id}: the job is already running, with no
estimate to confirm and no start call.
Each row is matched by LinkedIn URL, email, or first and last name with a
company domain or name. With enrich_email the job reveals the stored email
of every matched person and runs the live email finder for rows with a name
and a company that we do not hold, or hold without a valid email, so it finds
more emails than the sync bulk enrich. A row with no usable lookup is kept and
reported as invalid; it never fails the request.
Then poll the job or subscribe to job.finished, and page the results with
Get Enrichment Results. The full walkthrough,
with a Node example and the bulk email finder recipe, is in
Bulk jobs: poll or webhook.
Send an Idempotency-Key so a retried request answers the job it created
instead of starting a second one. At most 5 enrichments run per workspace at a
time; a sixth answers 409 with limit_reached.
Body parameters
namestringoptionalmax length: 128A label for the job.
dataobject[]requiredArray of person lookup rows (1-10000). Each row is matched independently.
Field Type Description identifierstring Client-supplied correlation key echoed back with the row result. If omitted, the row index is used. max length: 128. linkedin_urlstring The LinkedIn person URL (e.g. "https://linkedin.com/in/john-doe"). max length: 512. emailstring Reverse-lookup the person by their stored email address. max length: 512. first_namestring Used together with last_name + company_domain or company_name. max length: 512. last_namestring Used together with first_name + company_domain or company_name. max length: 512. company_domainstring Company domain for the name+company composite lookup. max length: 512. company_namestring Company name for the name+company composite lookup. max length: 512. enrich_emailbooleanoptionaldefault: trueEnrich a verified business email for every matched row; set false to skip.
enrich_phonebooleanoptionaldefault: falseIf true, attempt to enrich a mobile phone for every matched row.
Responses
For error handling see Errors. Response objects are described in Person object and Company object.
