Documentation Blog Free tools [email protected]Log in

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.

$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 / lead200 leads on the free $2 every month
Trade + citydiscovery and enrichment in a single call
Up to 500 leadsper run, bounded per website
only_with_contactsdrop rows with no email or phone before billing

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 instead, at $0.02 per site.

What comes back for every lead

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

FieldTypeWhat it holds
name · categorystringBusiness name and Google category.
rating · reviewsnumber · integerStar rating and review count.
addressstringAddress as listed.
phone · websitestringPhone and website from the Maps listing.
emailsstring[]Emails found on the business site (mailto, JSON-LD, page text).
phonesstring[]Phones found on the site (tel: links) plus the Google number.
socialsobjectFacebook, Instagram, LinkedIn, X, YouTube, TikTok URLs when found.
source_pagesstring[]The pages actually scanned for this business.
site_statusstringscanned · no_website · unreachable · blocked.
place_id · data_id · maps_urlstringGoogle 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.

InputTypeRequiredWhat it does
querystringyesBusiness type — "plumber", "dentist", "officina meccanica".
locationstringyesCity or area — "Manchester, UK", "Torino".
only_with_contactsbooleannoDeliver only leads with at least one email or phone. Default false.
country · langstringnoExit geo and language — essential outside the US.
max_resultsintegerno1–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.01per delivered lead$10 per 1,000 enriched leads
200 leadson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe 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

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. 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 }'

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 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 softwareManual researchThis collector
Deliverya licensed app on one machinea person and a spreadsheetan HTTP endpoint, any language
Enrichmentoften a separate paid stepopen every website yourselfincluded in the same run
Billingmonthly seat or licencetime$0.01 per delivered lead
Empty resultsseat is paid anywaytime is spent anywaynot delivered, not charged
Provenancerarely shownin your headsource_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 →

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 [email protected] 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 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
Get my free API key