Skip to main content
POST
Start an email enrichment
Starts an asynchronous lookup of a work or personal email address for one LinkedIn profile, through Salesfinity’s data network. The call returns at once with a request _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.
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, from the same team balance as phone lookups. Check it with Get enrichment credit balance.

Request body

Example request

Response (201)

Persist the _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 a callback_url, Salesfinity POSTs a JSON body to it once the lookup resolves:
Delivery makes up to 3 attempts, 2 seconds apart. Each attempt waits 10 seconds for your endpoint, and any 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. A 402, a 400 or a 502 charges nothing.

Errors

Authorizations

x-api-key
string
header
required

Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.

Body

application/json
linkedin_url
string
required

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.

Example:

"https://www.linkedin.com/in/janedoe"

type
enum<string>
required

Which kind of address to find: work or personal.

Available options:
work,
personal
Example:

"work"

callback_url
string<uri>

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.

Example:

"https://example.com/webhooks/enrichment"

external_id
string

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.

Maximum string length: 256
Example:

"lead-42"

Response

The lookup was accepted. Poll the returned _id, or wait for the callback.

_id
string

Enrichment request ID. Use this to poll GET /v1/api/enrichment/email/{id}.

Example:

"507f1f77bcf86cd799439011"

status
enum<string>

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.

Available options:
pending,
processing,
completed,
not-found,
failed
Example:

"pending"

linkedin_url
string
deprecated

Not returned. The profile URL is in linkedin.

Example:

"https://www.linkedin.com/in/username"

enrichment_type
enum<string>

work_email or personal_email, matching the requested type. Present from the start.

Available options:
work_email,
personal_email
email
object | null
deprecated

Not returned by these endpoints. The callback carries the found address as email; a poll returns it in emails.

external_id
string
deprecated

Not returned by these endpoints. Your external_id comes back only in the callback.

Example:

"lead-42"

linkedin
string

The LinkedIn profile URL as you sent it.

Example:

"https://www.linkedin.com/in/janedoe"

linkedin_username
string

The username from the profile URL.

Example:

"janedoe"

emails
object[]

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.

createdAt
string<date-time>
Example:

"2026-10-03T14:10:02.117Z"

updatedAt
string<date-time>
Example:

"2026-10-03T14:10:31.540Z"