Lead Scraping for Local Businesses: What You Actually Get
GuideJuly 27, 2026 · 12 min read · The LeadMarina team
Scraping 5,000 local businesses takes an afternoon and costs less than lunch. Then you open the file. Most rows have no email. The phone numbers are bare strings — mobile, landline, or dead VoIP box, no way to tell. Nothing says which of these places quietly closed last spring. Turning rows into contacts you can dial or email is the other 90% of the job, and nobody prices that part before they start.
Here's what lead scraping genuinely returns from local listings, the four places that data breaks, the legal picture as industry facts, and a worksheet for deciding between running a scraper and buying verified data.
What lead scraping actually returns from local listings
Lead scraping, in the local-business context, means programmatically collecting business listings — usually from Google's map results, sometimes from Yelp or Yellow Pages — into a spreadsheet, whether via a no-code platform like Apify, an API-first scraper like Outscraper or Bright Data, or your own Playwright script.
The confusion that wrecks most projects is treating a row and a lead as the same unit. They aren't, and the gap between them is where every hidden cost lives.
Fields a listings scrape reliably gives you
- Business name, category, and full address — near-universal, because listings can't function without them.
- The primary public phone number, exactly as displayed, with no indication of line type.
- Website URL, when the business has one. A large share of one-person local operations don't.
- Star rating and review count — the best free freshness proxies you get.
- Hours, photos, and the listing's attributes.
- A stable place identifier, if your source exposes one. More on that unglamorous field below.
Fields a scrape gives you unreliably, or not at all
- Email addresses. Listings mostly don't carry them, so scrapers that return emails are running a second job — crawling the business's site for mailto: links and contact pages. Separate crawl, separate failure modes, separate billing.
- The owner's name. Rarely on the listing. It comes from state registries, WHOIS records, review responses, or the About page, and even then it's identifiable for a minority of local businesses.
- Social profiles. Sometimes linked from the website, rarely from the listing.
- Verification of anything. A scraper reports what was displayed; it never tests whether the mailbox exists or the phone rings.
The gap between a phone number and a number you can dial
A scraped phone number is a string. What a calling or SMS workflow needs is the line type — mobile, landline, VoIP, or toll-free — and the current carrier, because those decide whether a text can be delivered at all and which compliance rules attach to the call.
Nor is line type static. Numbers move carriers, and the FCC has cited roughly 35 million US numbers disconnected or reassigned each year — the reason it built the Reassigned Numbers Database, launched in 2021. A carrier field scraped in January describes January. The full process is in how to verify phone numbers before cold calling.
Where scraped lead data breaks in practice
1. Unverified emails and the bounce math
An email harvested from a contact page is a hypothesis. Some are current, some belonged to a bookkeeper who left in 2023, some are images-as-text misread by the parser, some were never real.
The cost isn't proportional. Google and Yahoo's bulk-sender requirements, in force since February 2024, demand SPF, DKIM, and DMARC authentication plus a spam-complaint rate under 0.3%, and deliverability teams broadly keep hard bounces under 2%. Send to a 2,000-address scraped list where 8% are dead and you produce 160 hard bounces in one campaign — four times the danger line. The penalty lands on the sending domain, so the 1,840 good addresses start going to spam too.
Verification doesn't just delete bad rows; it grades the rest. Safe, risky, invalid, and catch-all are different decisions, as we break down in email verification statuses explained.
2. Local listing decay
Local-business data ages faster than almost any other B2B dataset, for the mundane reason that local businesses close. US Bureau of Labor Statistics survival data has consistently shown roughly one in five new businesses failing within the first year and about half within five. HubSpot has long cited B2B contact databases decaying around 22.5% a year — and those are corporate contacts, who change jobs in orderly ways.
Listings lag reality in both directions — a closed restaurant keeps a live-looking profile for months — so a scrape has a shelf life in weeks, not quarters. Any list you'll work more than once needs a re-collection plan, which is a recurring cost, not a setup cost.
3. Duplicates and the identifier problem
Run the same scrape across 30 cities and you'll pull the same multi-location businesses repeatedly, each time with a slightly different address string and phone format. Import that into a CRM keyed on name or email and you get duplicates; import again next month and you get more.
The fix is matching on a stable business identifier rather than fuzzy text. If your source exposes a persistent place ID, capture it on the first pass — retrofitting one onto a million name-and-address strings is miserable. Most homegrown scrapes skip the field because it isn't human-readable, then pay for it at import time.
4. The maintenance you didn't budget for
Scrapers are not build-once assets. They're infrastructure coupled to a website you don't control, and they break on that site's schedule, not yours. This one decides the build-versus-buy question, so it gets its own section.
The real maintenance cost of running a lead scraper
What breaks, and how often
- Layout changes. Selectors that worked last month return empty strings this month, and the failure is silent — the job completes, the file has rows, the fields are blank.
- Rate limits and blocks. Volume from one IP gets throttled, which pushes you into proxy pools billed by the gigabyte, and a heavy scrape moves a lot of gigabytes.
- Anti-bot challenges. Solving CAPTCHAs is a line you may not want to cross, and it's against most sites' terms.
- Enrichment glue. Email discovery, SMTP verification, and phone lookups are separate services with separate APIs, retries, and error handling. On Outscraper's published rates at the time of writing, the listings scraper, the emails-and-contacts scraper, and the email validator each bill $3 per 1,000 — three meters for one finished contact.
- Dedupe and storage. Somebody owns the matching logic and the database behind it, forever.
A lead scraping cost worksheet for 5,000 businesses a month
Fill in your own numbers, but fill in every line: raw collection at a few dollars per thousand rows; email discovery on the subset with websites, billed again; SMTP verification at roughly $0.003–$0.004 per address at mid volumes (ZeroBounce and NeverBounce publish in that range); phone line-type lookups at up to a cent each (Twilio's Lookup add-on has published at $0.008); proxies; then engineering time.
That last line decides the answer. Four to eight hours a month keeping selectors alive, chasing silent failures, and re-running enrichment is a normal month, not a bad one — at a $50/hour internal cost, $200–$400 before a single row of data is paid for, recurring whether or not you ran a campaign.
Then divide by what survives: rows without a website produce no email, some discovered emails come back invalid, some businesses have closed. The honest denominator is contacts you'd actually dial or send to, and the per-usable-lead figure is the only number worth comparing.
Is web scraping legal? The industry facts, not advice
This section is educational, not legal advice, and none of it is a compliance guarantee. No tool — ours included — makes your outreach lawful. Talk to a lawyer about your jurisdiction, your data, and your campaigns before you rely on any of it.
With that stated plainly: "is web scraping legal" isn't one question. It's at least four, governed by different bodies of law that can each answer differently for the same project.
Public data vs. data behind a login
The distinction US courts keep returning to is whether you passed an authorization gate. In Van Buren v. United States (2021), the Supreme Court narrowed the Computer Fraud and Abuse Act's "exceeds authorized access" to a gates-up-or-down question rather than a violation-of-purpose test, and in hiQ Labs v. LinkedIn the Ninth Circuit held in 2022 that scraping publicly available data isn't access "without authorization" under the CFAA. The other side of that line is sharper: in Ryanair v. Booking.com, a Delaware federal jury in 2024 found CFAA liability where the scraping involved logging into accounts. Public listing pages and gated data are legally different animals.
Terms of service are a contract, not a criminal statute
Winning on the CFAA is not winning outright: the hiQ case ended in December 2022 with a finding that hiQ had breached LinkedIn's user agreement, plus an injunction. Contract claims aren't automatic either — in Meta v. Bright Data, a California federal court ruled in early 2024 against Meta's breach-of-contract claim over public data scraped while logged out. Read the terms of anything you scrape; they bind you independently of any statute. Many sources also offer an official API, Google Places included, and the sanctioned path removes a whole category of argument.
Collection is one obligation; holding personal data is another
Even lawfully collected data carries duties once it identifies a person. GDPR Article 14 requires notifying individuals when personal data about them came from somewhere other than themselves, generally within a month — the obligation behind the Polish DPA's widely reported 2019 enforcement action against Bisnode over scraped registry data. Contact details for sole traders can be personal data in the EU, and "it was public" is not an exemption.
In California, the CCPA as amended by the CPRA applies to businesses meeting its thresholds, and the Delete Act (SB 362, 2023) requires registered data brokers to honor deletion requests through the state's centralized platform, with obligations phasing in through 2026. If you scrape and resell, check whether you meet the data-broker definition.
Outreach law is separate from collection law
This is the most expensive misunderstanding in cold outreach: having lawfully obtained a phone number tells you nothing about whether you may call or text it.
- CAN-SPAM governs commercial email in the US. No prior opt-in required, but it does require accurate headers and subject lines, a valid physical postal address, and a working opt-out honored within 10 business days. The FTC's inflation-adjusted maximum civil penalty per violating email has exceeded $50,000 in recent years.
- The TCPA governs calls and texts, with statutory damages commonly cited at $500–$1,500 per violation. Autodialed and prerecorded calls to mobile numbers face the strictest requirements, and this area moves: the FCC's one-to-one consent rule was vacated by the Eleventh Circuit in January 2025 in Insurance Marketing Coalition v. FCC. B2B calling has historically had more room than consumer calling, but a sole proprietor's cell number blurs that line — which is why line type matters operationally, not just technically.
- GDPR and the ePrivacy rules add consent and legitimate-interest analysis for EU recipients on top of everything above.
None of this is legal advice, and no vendor's feature list changes any of it. What data quality does is narrow the surface area: knowing a number is a landline at a registered business is a different starting point than dialing an unlabeled string.
Lead scraping vs. buying verified leads: how to decide
Our bias up front: LeadMarina sells verified local-business leads, so we're not neutral. The framework below is still the one we'd use if we sold nothing, and for plenty of teams it points at running a scraper.
Run your own lead scraper when
- You need fields nobody packages — niche directory attributes, menu data, competitor-specific signals.
- Your volume is high enough that per-row economics dominate, and you have engineering capacity for the enrichment stack.
- The dataset itself is the deliverable (market maps, TAM analysis, territory planning) and contactability isn't the point.
- You already run scraping infrastructure, so proxies, monitoring, and dedupe are sunk costs.
Buy already-verified leads when
- You're a small team where the person maintaining the scraper is the person who should be selling.
- Contactability is the product — you need to email and dial this week, not build a pipeline this quarter.
- You need the same niches refreshed monthly without re-collecting and re-deduplicating by hand.
- You'd rather pay a known number per usable lead than an unknown number in engineering hours.
The only comparison that means anything
Price one campaign end to end, both ways, counting collection, enrichment, dedupe, the CRM import, and the hours — then divide by contacts that survive to outreach. Scraping's per-row price is unbeatable, and that's not a knock on it; it's a different unit. Verified per-lead pricing looks expensive until the stack around the scrape is counted honestly.
For the buy side of that comparison, here's what we do specifically. You search by niche and city, up to 30 cities in one bulk run, and every delivered lead arrives fully verified: up to three emails SMTP-checked and labeled safe, risky, or invalid, up to three phones with line type and carrier, the owner's name where identifiable, socials, ratings, reviews, and the full business profile. One lead means one delivered fully-verified business. Exports go to Close, GoHighLevel, Google Sheets, or emailed CSV, Excel, or JSON — matched on a stable Google business identifier, so re-running a search updates in place instead of duplicating.
Scheduling addresses the decay problem: once, daily, weekly, monthly, or yearly to any destination. There's a REST API on every plan including free, plus an MCP server with seven tools for Claude, ChatGPT developer mode, Cursor, or any MCP client. The free plan's 100 leads let you run the per-usable-lead math on your own niche first, and the quick-start guide walks the flow.
Lead scraping FAQ
Is lead scraping legal?
It depends on what you scrape, from where, and what you do next — and this isn't legal advice. US courts have distinguished public data (Van Buren, hiQ) from data behind a login (Ryanair v. Booking.com), a site's terms can bind you contractually regardless, GDPR and CCPA govern personal data once you hold it, and CAN-SPAM and the TCPA govern what you send and dial. Lawful collection never implies lawful outreach.
How fast does scraped local-business data go stale?
Fast. BLS survival data has long shown roughly one in five new businesses closing within a year, and the FCC has pointed to roughly 35 million US numbers disconnected or reassigned annually. Treat any local list older than a few months as needing re-verification before a serious send.
Is it cheaper to scrape leads or buy them?
Per row, scraping wins by a wide margin and always will. Per usable, contactable lead it's genuinely close, turning on your volume, your niche's website coverage, and what engineering hours cost you. Run both numbers on one real campaign rather than trusting either headline price.