Start an export
POST /api/v1/leads/exports
Cost: 1 credit per lead delivered (max 50,000 per export)
Always asynchronous, at every size. Returns 202 with a job id to poll.
Try it
curl https://app.leadsonar.io/api/v1/leads/exports \
-H "X-API-Key: $LS_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobTitles": ["Head of Sales"],
"exactMatch": true,
"industry": ["Software Development"],
"companySize": ["51-200"],
"country": ["US"],
"limit": 3
}'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Lead Finder filters. Singular and plural spellings are both accepted (industry / industryNames).
object
ISO country codes. The source is ~99.9% US.
Free text, whole-word matched against the job title.
Matched against the company description, not the title.
Cap contacts per company.
Required. Rows to export; requests above 50,000 are capped and report capped_to_max.
Company type, derived from each company’s industry (the source has no ownership field). Values OR together. Public (listed) company filtering is not available yet; sending “public” or any other value returns 400 with code COMPANY_TYPE_NOT_AVAILABLE or UNKNOWN_COMPANY_TYPE.
Match jobTitles (and keywords) as whole words. Without it titles match as substrings, so “CFO” can hit unrelated titles. The app always sends true; set it yourself.
Drop anyone whose job title contains any of these words, e.g. [“intern”, “assistant”].
Example
{ "jobTitles": ["Head of Sales"], "exactMatch": true, "industry": ["Software Development"], "companySize": ["51-200"], "country": ["US"], "limit": 3}Responses
Section titled “ Responses ”Export queued. Poll poll until status is completed, then GET download. Note: this response is snake_case (job_id); the status endpoint answers in camelCase (id).
object
Export id — use it in /exports/{id}
Example
queuedExample
5000Set to 50000 when you asked for more than the per-export maximum; otherwise null
Example
/api/v1/leads/exports/4fad85cd-3e37-4797-ab77-07ed02d8f408Example
/api/v1/leads/exports/4fad85cd-3e37-4797-ab77-07ed02d8f408/csvExample
{ "job_id": "4fad85cd-3e37-4797-ab77-07ed02d8f408", "status": "queued", "requested_limit": 3, "capped_to_max": null, "poll": "/api/v1/leads/exports/4fad85cd-3e37-4797-ab77-07ed02d8f408", "download": "/api/v1/leads/exports/4fad85cd-3e37-4797-ab77-07ed02d8f408/csv"}Limit missing (LIMIT_REQUIRED) or export unavailable for this account
object
Human-readable error message
Additional details