# Lead Scraper API — $0.01 per Enriched Lead

> Lead scraper API: a trade and a city return local businesses enriched from their own sites with emails, phones and socials. $0.01 per delivered lead.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*Lead scraper API*

# Lead scraper API

The lead scraper API takes a trade and a city — "plumber", "Manchester, UK" — finds the businesses on Google Maps, then visits each business website to collect emails, phones and social profiles. One call, one enriched row per business, $0.01 per delivered lead, and rows without contacts can be dropped before you are billed.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/lead-scraper-api/#integration)

$0.01 per delivered lead · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/local_business_leads/run

```
$ curl $QD/local_business_leads/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{ "query": "plumber", "location": "Manchester, UK",
          "only_with_contacts": true, "max_results": 25 }'
{ "status": "done", "count": 21,
  "results": [
    { "name": "Northside Plumbing", "rating": 4.9,
      "website": "https://…", "phone": "+44 161…",
      "emails": ["info@…"], "phones": ["+44 161…"],
      "socials": { "facebook": "https://…" },
      "source_pages": ["https://…/contact"] } ],
  "cost": 0.21 }
# 21 leads × $0.01 · the 4 without contacts were not billed
```

**$0.01 / lead**200 leads on the free $2 every month

**Trade + city**discovery and enrichment in a single call

**Up to 500 leads**per run, bounded per website

**only_with_contacts**drop rows with no email or phone before billing

On this page: [What it is](/collectors/lead-scraper-api/#what) [Output fields](/collectors/lead-scraper-api/#output) [Inputs](/collectors/lead-scraper-api/#input) [Pricing](/collectors/lead-scraper-api/#pricing) [Integration](/collectors/lead-scraper-api/#integration) [Use cases](/collectors/lead-scraper-api/#use-cases) [Versus the alternatives](/collectors/lead-scraper-api/#compare) [FAQ](/collectors/lead-scraper-api/#faq)

## What a lead scraper API does

**A lead scraper API returns local businesses as contactable rows: who they are, and how to reach them.** Maps gives you the business and its phone; the email almost never lives there. This collector does both steps — the local search, then the business’s own website — and hands back one merged record per business.

Per lead it loads the homepage and one contact or about page, and reads emails from `mailto:` links, JSON-LD and page text, phones from `tel:` links plus the Google number, and social profiles from the site’s own links. The pages it used are on the row in `source_pages`, so any value can be traced back to where it was published rather than trusted blindly.

The market around "local business lead scraper" is desktop software and monthly seats. This is an endpoint billed per delivered lead — and with `only_with_contacts` on, a business with no reachable contact is not delivered and not charged. Already have the domains? Use the [email scraper API](https://quanticdata.io/collectors/email-scraper-api/) instead, at $0.02 per site.

Discovery and enrichment in one call *query* *location* *country* *lang* *only_with_contacts* *max_results*

## What comes back for every lead

The Maps record and the website enrichment merged into one row, with the provenance kept.

| Field | Type | What it holds |
| --- | --- | --- |
| `name` · `category` | string | Business name and Google category. |
| `rating` · `reviews` | number · integer | Star rating and review count. |
| `address` | string | Address as listed. |
| `phone` · `website` | string | Phone and website from the Maps listing. |
| `emails` | string[] | Emails found on the business site (mailto, JSON-LD, page text). |
| `phones` | string[] | Phones found on the site (tel: links) plus the Google number. |
| `socials` | object | Facebook, Instagram, LinkedIn, X, YouTube, TikTok URLs when found. |
| `source_pages` | string[] | The pages actually scanned for this business. |
| `site_status` | string | scanned · no_website · unreachable · blocked. |
| `place_id` · `data_id` · `maps_url` | string | Google ids and the listing link. |

## Inputs: the trade and the place

Set `only_with_contacts` when you only want rows you can act on — filtering happens before billing.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `query` | string | yes | Business type — "plumber", "dentist", "officina meccanica". |
| `location` | string | yes | City or area — "Manchester, UK", "Torino". |
| `only_with_contacts` | boolean | no | Deliver only leads with at least one email or phone. Default false. |
| `country` · `lang` | string | no | Exit geo and language — essential outside the US. |
| `max_results` | integer | no | 1–50, default 10. Runs above 5 leads go async and return a `run_id` to poll. |

Pricing

## What an enriched lead costs

A delivered lead is $0.01 — website visits, parsing and retries included, not billed separately. A thousand enriched leads is $10 at list price, against a market that sells desktop licences and monthly seats; the free $2 covers about 200 leads a month.

**$0.01**per delivered lead*$10 per 1,000 enriched leads*

**200 leads**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/local_business_leads/run`.

```
# 25 plumbers in Manchester, contacts required
curl https://api.quanticdata.io/v1/scraper/collectors/local_business_leads/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "plumber", "location": "Manchester, UK",
        "country": "gb", "only_with_contacts": true,
        "max_results": 25 }'
```

```
import requests, time

BASE = "https://api.quanticdata.io/v1/scraper/collectors"
H = {"Authorization": f"Bearer {KEY}"}

# bigger runs come back as a job: 202 + run_id
r = requests.post(f"{BASE}/local_business_leads/run", headers=H,
    json={"query": "dentist", "location": "Austin, TX",
          "only_with_contacts": True, "max_results": 40}).json()

run = r["data"]
while run["status"] in ("queued", "running"):
    time.sleep(5)
    run = requests.get(f"{BASE}/runs/{run['run_id']}",
                       headers=H).json()["data"]

for lead in run["results"]:
    print(lead["name"], lead["emails"], lead["phones"])
```

```
const BASE = "https://api.quanticdata.io/v1/scraper/collectors";
const h = { Authorization: `Bearer ${process.env.QD_API_KEY}`,
            "Content-Type": "application/json" };

// one run per city, then export the rows as CSV
const start = await (await fetch(`${BASE}/local_business_leads/run`, {
  method: "POST", headers: h,
  body: JSON.stringify({ query: "roofer", location: "Leeds, UK",
    country: "gb", only_with_contacts: true, max_results: 50 })
})).json();

const csv = await fetch(
  `${BASE}/runs/${start.data.run_id}?format=csv`, { headers: h });
console.log((await csv.text()).split("\n")[0]);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, from the agent:
run_collector  slug="local_business_leads"
               input={ "query": "plumber",
                       "location": "Manchester, UK",
                       "only_with_contacts": true,
                       "max_results": 25 }
```

## What people run it for

Local B2B outreach is the whole market around this keyword — these are the shapes it takes.

### Agency prospecting

One run per trade and city gives a callable list with emails, phones and socials, plus rating and review count to qualify by size before anyone picks up the phone.

### Territory mapping for field sales

Run the same trade across the towns in a rep’s patch and you have coverage: who exists, who has a website, who is reachable, who is not.

### Marketplace and directory seeding

Populate a vertical directory with real businesses and verified-looking contact points, keeping `source_pages` so every value can be re-checked later.

### CRM hygiene

Re-run a segment quarterly and diff it: closed businesses, changed numbers, new websites. Pair with the [company data API](https://quanticdata.io/collectors/company-data-api/) when you want the full profile per domain.

## Collector vs lead software vs doing it by hand

What the "local business lead scraper" market sells, and how an endpoint differs.

|  | Desktop lead software | Manual research | This collector |
| --- | --- | --- | --- |
| Delivery | a licensed app on one machine | a person and a spreadsheet | an HTTP endpoint, any language |
| Enrichment | often a separate paid step | open every website yourself | included in the same run |
| Billing | monthly seat or licence | time | $0.01 per delivered lead |
| Empty results | seat is paid anyway | time is spent anyway | not delivered, not charged |
| Provenance | rarely shown | in your head | `source_pages` on every row |

## Where a contact database stops and a website starts

Commercial B2B databases are strong at mapping named people to companies, and no amount of website reading substitutes for a verified direct dial. Their coverage skews to companies with a professional-network footprint, which means the dentist, the plumber and the independent restaurant are thin or absent — and their records age between verification passes.

This reads what the business publishes about itself today. That is a different consent posture from an inferred personal address, and for local businesses it is frequently the only contact route that exists. The two are complements: buy a database for named decision-makers at larger firms, collect local businesses in a category and city.

## Limits, bounded crawling and the legal bit

Up to 500 leads per run, lower than the search collectors because each lead is a Maps result plus two website fetches. Enrichment is deliberately bounded — homepage plus one contact page — so a contact buried five clicks deep is missed rather than chased with an unbounded crawl. `source_pages` records where every contact came from, and `site_status` separates "no website" from "site failed to load". Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Collection and use are governed separately, and this is the collector where that matters most. Collecting contacts a business publishes is generally lawful in most jurisdictions. *Sending* to them is governed by GDPR and PECR in Europe, CAN-SPAM in the US and CASL in Canada — and some of those require consent before the first message. A sole trader's address is personal data even on a business site. Get advice on the outreach, not just on the collection. None of this is legal advice — get some for your actual use case.

## FAQ

The practical and the legal questions people ask before scraping business contacts.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### How do you find business emails for free?

The $2 monthly allowance covers about 200 enriched leads with no card. Beyond that it is $0.01 per delivered lead — and with `only_with_contacts` enabled, businesses where no email or phone could be found are not delivered and not billed.

### Can I scrape emails from Google Maps?

Not from Maps itself: Google shows a phone and a website, not an email. This collector takes the extra step for you, visiting each business website and reading emails from mailto links, JSON-LD and page text, then returns them on the same row as the Maps data.

### Is scraping business contact details legal?

Business contact details published on a company’s own website are public, and collecting public data is generally lawful in most jurisdictions — but an address like name@company.com can still be personal data under the GDPR, and outreach is regulated separately. Have a lawful basis, honour opt-outs, and take proper advice.

### How accurate are the emails?

They are the addresses actually published on the business’s own pages — not guessed patterns and not a bought database. The `source_pages` field lists the pages each row was built from, so anything questionable can be verified at the source. No deliverability verification is performed.

### How long does a run take?

Small runs answer inline; anything above five leads goes asynchronous, returns a `run_id` immediately and is polled — each lead means real page loads. Rows are exportable as CSV from the run endpoint with `?format=csv`.

### What if a business has no website?

You still get the Maps record, with `site_status: no_website` and whatever phone Google shows. If those rows are not useful to you, set `only_with_contacts` and they will not be delivered — or billed — at all.

### Why does it cost ten times the Maps collector?

Because each lead is three fetches rather than one: the Maps result, then the homepage and a contact page on the business's own site. If you do not need contacts beyond the listed phone number, the [Maps collector](https://quanticdata.io/collectors/google-maps-scraper-api/) is the cheaper and correct choice.

### How do I avoid paying for businesses I cannot contact?

Set only_with_contacts. Rows with neither an email nor a phone are then suppressed and unbilled, which on most categories is a meaningful share of the result set.

## Start with the Lead scraper API

$0.01 per delivered lead, $10 per 1,000 enriched leads. $2 of free credit every month, no card — and a run that delivers nothing is never billed.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 32 collectors](https://quanticdata.io/collectors/) [Google Maps Scraper API](https://quanticdata.io/collectors/google-maps-scraper-api/) [Email Scraper API](https://quanticdata.io/collectors/email-scraper-api/) [Business Directory API](https://quanticdata.io/collectors/business-directory-api/) [Company Data API](https://quanticdata.io/collectors/company-data-api/) [Scrape Company Data](https://quanticdata.io/scrape-company-data/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/lead-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt
