Start an email enrichment
Starts an asynchronous lookup of a work or personal email address for one LinkedIn profile. The call returns at once with a request _id and status: "pending". The lookup runs in the background through Salesfinity’s data network.
Getting the result. Poll Get an email enrichment result with the _id, or pass a callback_url and Salesfinity POSTs the result there. The request moves from pending to completed (an address was found) or not-found.
Credits. A completed lookup costs 1 enrichment credit; not-found is free. The team needs at least 1 credit when you call this, or the request is refused with 402. The credit is charged once, when the result arrives, and the balance never goes below 0. See Get enrichment credit balance.
Retries. Not idempotent: each call creates a new request. If Salesfinity already holds an address of the requested type for the profile, the new request completes at once and is charged again, so store results instead of requesting the same profile twice.
Callback. Delivered as a JSON POST with up to 3 attempts, 2 seconds apart; each attempt waits 10 seconds for a response, and any 2xx counts as delivered. If every attempt fails, poll instead. The body carries request_id (this _id), status, enrichment_type, email (an object whose email field is the address, or null on not-found), linkedin_url and, if you sent one, external_id.
_id and status: "pending". Collect the result by polling the _id, or by passing a callback_url that Salesfinity POSTs to when the lookup finishes. The request ends completed (an address was found) or not-found.
completed lookup costs 1 enrichment credit; not-found is free. The team needs at least 1 credit when you call this, or the request is refused with 402. The credit is charged once, when the result arrives, from the same team balance as phone lookups. Check it with Get enrichment credit balance.Request body
Example request
Response (201)
_id. It is the handle for polling and comes back as request_id in the callback. external_id is not echoed here or in the poll response.
Callback payload
If you supplied acallback_url, Salesfinity POSTs a JSON body to it once the lookup resolves:
2xx response counts as delivered. If every attempt fails, poll instead. Use request_id or external_id to match the callback to your record.
Retries and repeat lookups
This call is not idempotent: every call creates a new request. If Salesfinity already holds an address of the requested type for the profile, a new request completes at once and is charged again. Store the address you receive rather than requesting the same profile twice. A402, a 400 or a 502 charges nothing.
Errors
Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.
Body
LinkedIn profile URL in the form https://www.linkedin.com/in/<username>. The http or https scheme is required, www. is optional and a trailing slash is allowed. Country subdomains such as uk.linkedin.com, query strings, fragments and extra path segments are rejected with 400.
"https://www.linkedin.com/in/janedoe"
Which kind of address to find: work or personal.
work, personal "work"
Optional. A public http or https URL that receives the result as a JSON POST when the lookup finishes. localhost and private, loopback or link-local IP addresses are rejected with 400. Up to 3 delivery attempts, 2 seconds apart, each waiting 10 seconds; any 2xx response counts as delivered.
"https://example.com/webhooks/enrichment"
Optional. Your own reference, up to 256 characters, returned as external_id in the callback. It is not returned by this endpoint or by polling.
256"lead-42"
Response
The lookup was accepted. Poll the returned _id, or wait for the callback.
Enrichment request ID. Use this to poll GET /v1/api/enrichment/email/{id}.
"507f1f77bcf86cd799439011"
pending until the lookup resolves, then completed (an address was found) or not-found. processing and failed are not currently returned for email lookups; treat processing like pending.
pending, processing, completed, not-found, failed "pending"
Not returned. The profile URL is in linkedin.
"https://www.linkedin.com/in/username"
work_email or personal_email, matching the requested type. Present from the start.
work_email, personal_email Not returned by these endpoints. The callback carries the found address as email; a poll returns it in emails.
Not returned by these endpoints. Your external_id comes back only in the callback.
"lead-42"
The LinkedIn profile URL as you sent it.
"https://www.linkedin.com/in/janedoe"
The username from the profile URL.
"janedoe"
Poll response only. Every address of the requested type that Salesfinity holds for the profile; on completed it contains the address that was found. Absent from the response to Start an email enrichment.
"2026-10-03T14:10:02.117Z"
"2026-10-03T14:10:31.540Z"