The Google Maps scraper built for live B2B leads
Find businesses by category and location.
The Kavex Google Maps scraper turns any category-and-location search into a clean spreadsheet of real businesses. Instead of buying a stale contact database, you pull live listings the moment you need them, every name, phone number, website, address and rating exactly as it appears on the map today. It's built for sales teams, agencies and researchers who need accurate local prospects without clicking through Maps by hand. Describe who you want, pick your regions, and export. You pay per result, so a tightly targeted search never costs more than it should.
THE LAST RUN ON THIS SOURCE · 30 LEADS AT 2 CREDITS EACH
Six columns on every row.
These come with the run and cost nothing extra. Add-ons widen the same sheet, and you pay only for the ones you switched on.
| Business name | Category | Phone | Website | Rating | Reviews |
|---|---|---|---|---|---|
| Heilige Boontjes | Coffee shop | +31 10 233 0808 | heiligeboontjes.com | 4.5 | 612 |
| Man Met Bril Koffie | Espresso bar | +31 10 760 0510 | manmetbrilkoffie.nl | 4.6 | 388 |
| Hopper Coffee | Coffee roaster | +31 10 280 9698 | hoppercoffee.nl | 4.4 | 503 |
| Urban Espresso Bar | Coffee shop | +31 10 414 8556 | · | 4.3 | 271 |
| Coffeecompany Blaak | Coffee shop | · | coffeecompany.nl | 4.2 | 159 |
Say what you want. Read the price first.
Everything else is a ceiling or a filter. The estimate moves with the numbers you type, so the run never surprises you at the end.
Give the Kavex Google Maps scraper a search term and a location and it works through Google Maps the way a person would, opening each business listing, reading the details and moving to the next. You can run one city or several regions in a single job. Every result is fetched live during that run, so you are never handed a record that was scraped months ago and quietly went out of date.
Each row comes back with the business name, full address, phone number, website, primary category, star rating and review count, plus opening hours where Google shows them. Listings without a website or phone are still returned and simply marked empty, so you can filter them yourself. Results are de-duplicated on Google's own place ID, so running overlapping regions never leaves you cleaning the same business out twice.
Google caps any single search at roughly 120 results, so the scraper splits a wide area into smaller queries and merges them for you. It handles the awkward cases too, chains with dozens of branches, businesses that share an address, categories Google labels inconsistently between countries. What lands in your export is a clean, structured list ready to drop straight into a CRM or outreach tool.
Behind the scenes, the Google Maps scraper routes its traffic through rotating residential proxies. Each query leaves from a fresh, real-world IP address in or near the country you are targeting, which keeps results geographically accurate and stops Google throttling a job halfway through. Requests are paced to mimic ordinary browsing rather than hammering the site, so a large multi-region run completes reliably.
Because every job is a live scrape rather than a database lookup, the data reflects Google Maps as it stands at run time, a business that closed last week will not appear, and one that opened yesterday will. The scraper is maintained against Google's frequent layout changes, so the same job you run today will still work next month. You only pay for results the scraper actually returns.
Charged per delivered row. If the source holds fewer than you asked for, the rest of the credits go back to your balance the second the run ends.
One thousand leads, itemised.
The base run, then every add-on as its own line. Nothing is bundled, so you can read the bill from top to bottom.
| Line | Rate | Units | Credits |
|---|---|---|---|
| Google Maps | 2 / lead | 1,000 leads | 2,000 |
| +Email enrichment | 2 / lead | 1,000 leads | 2,000 |
| +Leads & contacts enrichment | 3 / lead | 1,000 leads | 3,000 |
| +Email verification | 1 / email | 1,000 emails | 1,000 |
| +Disposable email check | 0.5 / email | 1,000 emails | 500 |
| 1,000 enriched leads | 8.5 / lead | 8,500 credits | $8.50 |
$0.0085 PER FINISHED LEAD · AN ADD-ON IS BILLED ON THE ROWS IT ACTUALLY ENRICHED, SO A REAL BILL LANDS UNDER THIS
What people point it at.
Four ways this source is used today. Every one of them is the same run, the same export and the same credit pool.
- Local SEO agencies prospecting a new city, pull every dentist, plumber or law firm in the area, then pitch the ones with a weak or missing website.
- B2B sales teams building territory lists, generate a region-wide list of restaurants, contractors or salons and hand reps a ready-made call sheet.
- Recruiters mapping an industry, find every employer of a given type in a metro area to source both clients and candidates.
- Market researchers sizing a category, measure how many competitors operate in a region and how their ratings compare before a launch.
The rest of the local & maps stack.
Same credit pool, same export. Chain the output of one run into the next without paying for the list twice.
Asked before the first run.
Short answers, no accordion to click through. If something is still missing, the help pages go deeper.
How fresh is the data?
Every job is scraped live the moment you run it, not pulled from a cached list. The results match what you would see opening Google Maps yourself that day, which keeps bounce rates and wrong numbers to a minimum.
What format do results export in?
Completed jobs download as a structured CSV file with one business per row. It opens directly in Excel, Google Sheets or any CRM import tool, nothing to reformat first.
How many results can one search return?
Google limits a single query to about 120 listings, so the scraper automatically splits a wide area into smaller searches and merges them. In practice you can cover an entire city or region in one job, duplicates removed on Google's place ID.
What if a listing has no website or phone number?
Listings missing a website or phone are still included in your export, those fields are simply left empty rather than the row being dropped. That lets you filter to only fully-contactable businesses, or keep the rest for a different channel.