Quick Actions
Recent Runs
| Company |
|---|
Lists
Start New Run
All Runs
Integrations
Connect a CRM to push leads straight to it when you export - same credits as a CSV download.
Loading…
Profile
Change Password
Email Preferences
Danger Zone
Requesting deletion notifies our team to permanently remove your account. This cannot be undone.
API Keys
Transaction History
API Documentation
Authentication
All API requests require authentication via Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Base URL: https://api.leadlance.io/scraper
Sandbox - Try It Live
Pick an endpoint, fill in the parameters, and send a real request against your account. Leave the API key field blank to use your current dashboard session instead of a saved key.
Response:
-
Start Scraping Run
/v2/runs/start
Start a new scraping run
B2B Leads Request:
Include a url and cookies
together to run a live search against a search URL. Leave both out and pass
filters instead to search. The
source is always "b2b" either way.
POST https://api.leadlance.io/scraper/v2/runs/start
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"source": "b2b",
"cookies": [{...}, {...}]
"url": "https://your-search-url-here",
"totalResults": 1000,
"additionalEnrichmentPercent": 0
}
Or, search our database with filters instead:
POST https://api.leadlance.io/scraper/v2/runs/start
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"source": "b2b",
"totalResults": 10000,
"filters": {
"personTitle": ["sales rep"],
"seniority": ["Chairman", "Founder"],
"functional": ["Analytics"],
"companyEmployeeSize": ["2 - 10", "11 - 50"],
"personCountry": ["United States"],
"contactEmailStatus": "verified",
"industry": ["Financial Services"],
"revenue": ["< 1M", "1M-10M"],
"businessModel": ["Product"]
}
}
LinkedIn Profile Request:
POST https://api.leadlance.io/scraper/v2/runs/start
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"source": "linkedin",
"profileUrls": [
"https://www.linkedin.com/in/profile1/",
"https://www.linkedin.com/in/profile2/",
"https://www.linkedin.com/in/profile3/"
],
"totalResults": 100,
"additionalEnrichmentPercent": 0
}
GET /v2/reseller/enrichment-info) come back with emails at no
extra cost. Set additionalEnrichmentPercent to a number from
0-100 to enrich that percentage of the remaining leads beyond the
free portion - 100 enriches everything. Each additional email spends one
enrichment credit (rate also configurable, same endpoint). Leave it at 0
or omit it entirely to only ever get the free portion - it's off by
default. The actual charge is calculated once the run completes and is
capped automatically at however many leads actually came back, so
requesting more than a run finds never overcharges you.
Response:
{
"success": true,
"runId": "user123_1234567890",
"source": "b2b",
"status": "started",
"message": "Scraping started successfully"
}
Get Run Status
/v2/runs/:runId
Get detailed information about a specific run
Example Request:
GET https://api.leadlance.io/scraper/v2/runs/user123_1234567890 Authorization: Bearer YOUR_API_KEY
Response:
{
"run": {
"run_id": "user123_1234567890",
"user_id": "user123",
"source": "b2b",
"url": "https://your-search-url-here",
"status": "running",
"total_results": 1000,
"total_collected": 450,
"total_duplicates": 23,
"download_url": null,
"started_at": "2025-01-03T10:30:00Z",
"completed_at": null,
"error_message": null
}
}
List All Runs
/v2/runs?limit=50&offset=0
List all runs with pagination
Query Parameters:
limit(optional): Number of results per page (default: 50)offset(optional): Pagination offset (default: 0)
Example Request:
GET https://api.leadlance.io/scraper/v2/runs?limit=50&offset=0 Authorization: Bearer YOUR_API_KEY
Response:
{
"runs": [
{
"run_id": "user123_1234567890",
"source": "b2b",
"status": "completed",
"total_collected": 1000,
"total_duplicates": 45,
"started_at": "2025-01-03T10:30:00Z",
"completed_at": "2025-01-03T11:45:00Z"
}
],
"total": 15,
"limit": 50,
"offset": 0
}
Download Results
/v2/runs/:runId/download
Download completed run results as CSV file
Example Request:
GET https://api.leadlance.io/scraper/v2/runs/user123_1234567890/download Authorization: Bearer YOUR_API_KEY
Response:
Returns a CSV file download with all collected leads data
Error Responses:
// Run not completed yet
{ "error": "Run is not completed yet" }
// No file available
{ "error": "No download available" }
Cancel Run
/v2/runs/:runId/cancel
Cancel an active running search
Example Request:
POST https://api.leadlance.io/scraper/v2/runs/user123_1234567890/cancel Authorization: Bearer YOUR_API_KEY
Response:
{
"success": true,
"message": "Run cancelled successfully"
}
Error Response:
{ "error": "Run is not active" }
Your Enrichment Rate
/v2/reseller/enrichment-info
Check your account's free enrichment percentage and the cost per additional enrichment before starting a run - the free percentage can vary by plan.
Example Request:
GET https://api.leadlance.io/scraper/v2/reseller/enrichment-info Authorization: Bearer YOUR_API_KEY
Response:
{
"freePercent": 50,
"enrichmentCreditCost": 1
}
Supported Sources
- b2b - B2B leads: pass a search
url+cookiesfor a live search (loading…), or passfiltersto search our own database instead (loading…) - linkedin - LinkedIn profile scraping (Requires array of profile URLs) - loading…
- realtor - Realtor agent scraping (requires locations, optional min rating/agent type)
- maps - Google Maps business scraping (requires location + keywords)
Important Notes
- Email generation is automatically enabled for all runs
- Each lead costs from 1 credit varies per source.
- Concurrent Runs: You can run multiple scrapes simultaneously using different API keys (1 active run per API key)
- Run results are available for download immediately after completion
Status Values
running- search is currently in progresscompleted- search finished successfullyfailed- search encountered an errorcancelled- search was cancelled by user