Google Maps Scraper | Skips Leads You Already Have avatar

Google Maps Scraper | Skips Leads You Already Have

Pricing

from $1.50 / 1,000 place scrapeds

Go to Apify Store
Google Maps Scraper | Skips Leads You Already Have

Google Maps Scraper | Skips Leads You Already Have

Scrape Google Maps business listings by search query: name, category, address, phone, website, rating, review count, hours, coordinates. No login, no email guessing. Pay only per place delivered. Works in Claude, ChatGPT & any MCP agent.

Pricing

from $1.50 / 1,000 place scrapeds

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Google Maps Scraper: 12 Fields, Cross-Run Dedupe, No Login

Pay only for results delivered. Browse all Actors.

šŸ’° From $1.50 / 1,000 results.

Scrape Google Maps business listings by search query: 12 fields per place including name, category, address, phone, website, rating, opening hours, coordinates and the canonical Google Maps URL.

No login, no Places API key, no email guessing. Cross-run de-duplication is on by default, schedule the same query and pay only for businesses you have not already been charged for.

Why use this Google Maps scraper

  • deduplicateAcrossRuns turns a repeated query into a new-listings monitor. The actor remembers the places it has already delivered, so a weekly run bills for newly appearing businesses only.
  • Phone and website on the same row, the two fields that make a local-business list actionable.
  • Bulk queries. searchQueries runs many searches in one run, and every row carries query_used so merged output stays attributable.
  • skipClosedBusinesses drops permanently closed places before you pay for them.

Find local businesses by category and city

{
"query": "dentist",
"location": "Austin, TX",
"maxResults": 50
}

Run many searches in one go

Best for covering a category across a metro, or several categories in one city.

{
"searchQueries": [
"plumber in Austin, TX",
"plumber in Round Rock, TX",
"plumber in Cedar Park, TX"
],
"maxResults": 40
}

Monitor a market for newly opened businesses

Schedule this input. With de-duplication on, later runs return and charge for places that were not in earlier runs.

{
"query": "coffee shop",
"location": "Brooklyn, NY",
"maxResults": 60,
"deduplicateAcrossRuns": true,
"skipClosedBusinesses": true
}

Scrape results in another language

{
"query": "boulangerie",
"location": "Paris, France",
"language": "fr",
"maxResults": 50
}

What data does the Google Maps scraper return

FieldDescription
place_idGoogle place identifier
nameBusiness name
categoryPrimary category
addressStreet address, with the business name stripped from the prefix
phonePhone number, where published
websiteWebsite URL, where published
ratingAverage star rating
opening_hoursParsed opening hours
latitude, longitudeCoordinates
google_maps_urlCanonical Maps URL
query_usedThe search that produced this row
scraped_atISO capture timestamp

Two keys, review_count and business_status, are present in the record shape but are not populated from the compact map-search response this actor reads. They are stated here rather than counted as delivered fields.

What people build with Google Maps business data

Local lead generation, a category plus a metro gives a call list with phone and website already attached, no enrichment step.

Agency prospecting, businesses with a phone but no website are a ready-made list for web and marketing agencies.

New-business monitoring, de-duplicated scheduled runs surface businesses as they open, which is when they buy.

Market and territory mapping, coordinates and category density across a metro for franchise or field-sales planning.

Google Maps scraper FAQ

Do I need a Google Places API key? No. No key, no billing account, no quota.

Are email addresses included? No. Google Maps does not publish them, and this actor does not guess or pattern-generate them. You get website, which is the honest starting point.

How does cross-run de-duplication work? The actor keeps a record of place IDs already delivered under your account and skips them on later runs. Leave deduplicateAcrossRuns on for monitoring; turn it off for a full snapshot.

Why is review_count empty? The compact search response Google returns for map searches does not carry it. Rather than fabricate a number, the field is left unpopulated.

Can I search many cities at once? Yes, with searchQueries. Each entry is a full search string.

What does it cost? Pay per place delivered, see the Pricing tab for the current rate.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/google-maps-search-scraper

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/google-maps-search-scraper').call({
query: 'coffee shops',
location: 'Austin, TX',
maxResults: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((i) => !i._type));

šŸ› ļø Complete your Google Maps pipeline

This actor is the entry point to a full Google Maps and lead-gen suite:

Typical flow: google-maps-search-scraper finds the businesses, maps-leads adds verified emails for outbound, google-maps-reviews pulls reviews for reputation and market research on the same businesses.

Your feedback

Found a field that doesn't match what Google Maps shows, or want a field added? Reach out through the Apify profile. Bug reports with a query and location that reproduce the issue get fixed fastest.

Last verified: 2026-08