Skip to main content
POST
Run Contact Sourcing
Contact sourcing finds the buying committee of an account: it sources the company’s employees from the People Database, then classifies each one as a decision_maker, a user or an influencer, with an ICP fit score and a short reason. One account or two hundred — same call, pass a list of one.

The run is asynchronous

You get a runId per account immediately; the classification itself takes from a few seconds to a couple of minutes depending on how many employees the company has. Two ways to collect the result:
  • Poll Get Contact Sourcing Run. It answers 202 while a run is going and 200 once it is done.
  • Subscribe to the contactSourcingDone webhook and let lemlist call you. Subscribe to contactSourcingFailed too, or a failed run leaves you waiting.

One answer per account

The call responds 200 even when some accounts could not be started — with 200 accounts in a request, one unrunnable account is not a reason to fail the other 199. Read both arrays:
Entries come back in the order you sent them, so you can zip them against your own list. Only a malformed body or more than 200 ids is refused outright (400).

Re-running an account

By default an account that already has a committee is not re-run: you get the previous run back with status: "reused" and nothing is charged. Pass overwrite: true to force a fresh run and replace the previous result. overwrite never stacks a second run on one that is still going: you get that run back as reused, and nothing is charged. So retrying a request that timed out on your side is always safe — you cannot pay twice for one account by retrying.
Each run costs one credit, charged when the run succeeds. A reused run is free. Accounts left out by the workspace’s daily limit come back in errors with ABS_CONTACT_SOURCING_TEAM_DAILY_CAP_REACHED — retry them the next day.

Starting from a domain or a LinkedIn URL

This endpoint takes lemlist company IDs. If you hold a domain or a LinkedIn page instead, resolve it first with Get Many Companies:

Before your first run

The team needs its AI Context filled in — in the lemlist app, open Settings → AI Context Center (lemlist uses it to know what a good fit looks like) — and the account needs a website or a LinkedIn URL — a company name alone matches every company that shares it, so the run is refused rather than sourcing people from the wrong company.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json
companyIds
string[]
required

Accounts to source contacts for (cpn_xxx format).

Maximum array length: 200
Example:
overwrite
boolean
default:false

Response

One entry per account, in the order they were given.

results
object[]
errors
object[]