Skip to main content
POST
Create a lead extraction campaign
Requires lead_sourcing:run and the creator’s ALLOW_LEAD_EXTRACTION workspace permission. Supply name, HTTPS search urls, url_type, mode, limit, and sender_id.
  • url_type: linkedin_search or sales_navigator.
  • mode: extraction_only or with_enrichment.
  • limit: at least 1; REST is capped by available credits rather than MCP’s separate 2,000-lead tool maximum.
  • sender_id: the LinkedIn account the extraction runs on. Use an id from List Senders or a senderId from Sender Quotas. The account must belong to the workspace and be active. To spread extractions across accounts, pass a different sender_id per request.
  • webhook_url: optional public HTTPS completion destination.
Extraction costs 1 credit per lead. The response’s id identifies the extraction job. Despite the URL’s campaigns segment, this does not create an outreach sequence. Poll job status, then read its leads. Sender errors, returned before any credits are reserved: Use an Idempotency-Key to avoid duplicate paid jobs on retries. An identical request (same URLs, url_type, mode and limit) within about two minutes of another returns 409 DUPLICATE_CAMPAIGN_REQUEST with the original job’s campaign_id, even if it names a different sender_id.

Authorizations

X-API-Key
string
header
required

API key for authentication (prefix: sp_live_ or sp_test_)

Body

application/json
name
string
required

Campaign name

urls
string[]
required

Search URLs (LinkedIn or Sales Navigator). Must be HTTPS.

url_type
enum<string>
required

Type of URLs provided

Available options:
linkedin_search,
sales_navigator
mode
enum<string>
required

Extraction mode

Available options:
extraction_only,
with_enrichment
limit
number
required

Maximum leads to extract (no hard limit - capped by available credits)

Required range: x >= 1
sender_id
string
required

ID of the LinkedIn account (sender) to run the extraction on. Get it from GET /v1/senders/quotas or GET /v1/inbox/senders.

Example:

"sender_123"

webhook_url
string

HTTPS URL to receive a completion notification. Must be a public host.

Example:

"https://my-app.example.com/webhooks/sendpilot"

Response

Campaign created successfully

id
string
required
name
string
required
status
string
required
created_at
string
required
estimated_credits
number
required

Estimated credits to be consumed