Loading...

You are viewing this account as an administrator. Exit
Dashboard
Total Runs
0
Active Runs
0
Total Leads
0
Available Credits
0

Quick Actions

Purchase Credits

Recent Runs

Lists

Start New Run

Finds results live from a search URL you paste in below.

Pricing: loading…
Both the URL and cookies are required together to start a run.

Searches leads using the filters you set below.

Loading filters…
Pricing: loading…
Pricing: loading…
Enter one city + state per line using 2-letter state codes (e.g., TX, CA, NY). Results are distributed across all provided locations. Pricing: loading…
Enter one city + country Each keyword will be converted into a Google Maps search URL for the location above. Pricing: loading…
The first 50% of leads found are enriched with emails for free. Enter what percentage of the remaining leads you also want enriched. 100 means every lead gets enriched; each one beyond the free portion spends a credit. Leave at 0 to skip extra enrichment.

All Runs

Integrations

Connect a CRM to push leads straight to it when you export - same credits as a CSV download.

Loading…

Profile

Changing your email requires confirming both your current and new address.

Change Password

Email Preferences

Account related emails (billing, run status, security) are always sent regardless of this setting.

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

POST /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"]
  }
}
Tip: Create your filters using our Filter Builder, see results live, and generate JSON when you're ready.
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
}
Enrichment: the first portion of leads a run finds (your account's free enrichment percentage - check 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.
LinkedIn Pricing: loading… Final charges calculated after scraping completes.
Response:
{
  "success": true,
  "runId": "user123_1234567890",
  "source": "b2b",
  "status": "started",
  "message": "Scraping started successfully"
}

Get Run Status

GET /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

GET /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

GET /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

POST /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

GET /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 + cookies for a live search (loading…), or pass filters to 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 progress
  • completed - search finished successfully
  • failed - search encountered an error
  • cancelled - search was cancelled by user

Same credit cost either way - pick where the leads go.