Google Maps Scraper & Lead Scraper (No Add-on Fees)
Pricing
from $2.00 / 1,000 place scrapeds
Google Maps Scraper & Lead Scraper (No Add-on Fees)
Scrape data from Google Maps with all 60+ attributes included. Extract full business details, opening hours, and coordinates without per-detail add-on fees. Reviews available.
Pricing
from $2.00 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
Thodor
Actor stats
1
Bookmarked
4
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape every business in any city from Google Maps. This Google Maps scraper extracts full business details, opening hours, and 60+ attributes included in every result. No per-detail add-on fees. Reviews available as an add-on. Run via API, schedule runs, or integrate with webhooks.
Google Maps only shows 120 results per search. This Google Maps extractor automatically breaks that limit by searching across your entire target area and deduplicating the results. Type a city name, and get every matching business.
Why use this Google Maps scraper
Most Google Maps scrapers have two problems: they charge extra for every data field you actually need, and they cap out before you've even scraped a whole neighborhood. This actor solves both. Every result includes all 60+ attributes by default, no per-detail add-on fees, and the scraper automatically divides your target area into sections to break Google Maps' 120-result display limit.
Common use cases:
- B2B lead generation: build prospect lists with phone numbers, websites, and business details for any industry in any city
- Local SEO and GMB audits: compare Google My Business profiles across clients and competitors
- Market research: analyze business density, popular categories, and price levels across regions
- Competitive analysis: map every competitor in a market with ratings, reviews, and service offerings
- Review and sentiment analysis: track reputation across entire markets at once
- Site selection: find areas with high or low density of specific business types
Only need reviews, not business data? If you already have Google Maps place URLs and just want to scrape their reviews (no business details, no search-by-city), use my Google Maps Reviews Scraper instead. It's cheaper for review-only workflows because you don't pay for the base business scraping, just the reviews. The two actors work well together: scrape a market with this actor to collect place URLs, then pass those URLs into the Reviews Scraper for deep review analysis.
Google Places API alternative (no $17 per 1,000 requests)
Google's official Places API (New) costs $17 per 1,000 requests, caps at 60 results per query, and charges separately for Place Details, Photos, and Contact fields. Most third-party scrapers charge $4 per 1,000 for the base listing plus another $2-3 per 1,000 for hours, service options, and business attributes.
This actor is a Google Places API alternative that works differently:
- All 60+ attributes included: no per-detail charges for hours, phone, website, or service options
- Unlimited results per area: the scraper breaks the 60-result and 120-result caps by searching across sub-regions
- No API key to manage: authenticate with your Apify token, same as any other actor
- Reviews as optional add-on: $0.40 per 1,000 reviews, only when you enable them
- JSON, CSV, and Excel export: direct from the Apify console or via the Dataset API
For most lead generation, market research, and local SEO use cases, this actor replaces the Google Places API entirely at a fraction of the cost.
How to scrape Google Maps by city or region
- Enter what you want to find in the
search_queryfield (e.g.restaurant,plumber,dentist) - Set a
location: a city, region, full address, or country — the actor geocodes it automatically - Cap
max_resultsif you only need a sample, or leave it open for full coverage - Optionally enable
scrape_reviewsto collect full review history per place - Set
languageandcountryfor localized results (70+ locales supported) - Run the actor and export results as JSON, CSV, or Excel
The actor handles the rest: geocoding the target area, dividing it into sub-regions to bypass Google Maps' 120-result cap, searching each section, and deduplicating results across the entire area.
Input parameters
| Parameter | Description | Example |
|---|---|---|
| Search query | What to search for, just like the Google Maps search bar | restaurant, plumber, hotel |
| Location | Any city, region, or country — geocoded automatically | New York, USA, Berlin, Germany, Tokyo |
| Max results | Cap the number of places returned | 100, 500, 2000 |
| Scrape reviews | Fetch the full review history for every place (on by default) | true, false |
| Max reviews per place | Limit how many reviews to collect per place | 100, 500, 5000 |
| Language | Language for results (70+ locales supported) | en, nl, de, ja, fr |
| Country | Country code for Google locale | us, be, de, jp |
Just provide a search term and a location. The scraper handles the rest — geocoding the area, searching across the full region, and deduplicating results.
Use with Python
Call the actor from Python using the Apify SDK:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("thodor/google-maps-scraper-with-reviews").call(run_input={"search_query": "restaurant","location": "Brooklyn, NY","max_results": 500,"scrape_reviews": False,"language": "en","country": "us",})for place in client.dataset(run["defaultDatasetId"]).iterate_items():print(place["name"], place["phone"], place["website"])
Google Maps data extractor: what you get for every place
- Business name, categories, type
- Full address, street, city, country, neighborhood
- Phone number (local + international)
- Website URL + domain
- Rating + review count
- Price level
- GPS coordinates (lat/lng)
- Full weekly opening hours
- Current open/closed status
- Service options (dine-in, takeaway, delivery)
- Accessibility (wheelchair entrance, parking, toilet)
- Atmosphere (casual, romantic, trendy, upmarket)
- Highlights (great coffee, live music, fireplace)
- Offerings (vegetarian, halal, organic, alcohol)
- Payments accepted (cards, NFC, cash)
- Parking info
- Photo URL
- Place ID, CID, Google Maps path
- Timezone
Other scrapers charge $4/1,000 for the base listing and another $2-3/1,000 for hours, service options, and business attributes. Here, everything above is included in every result.
Google Maps reviews scraper (add-on)
Enable review scraping to get the full review history for every place — text, star ratings, detailed ratings, dates, author details, owner responses, and review images.
{"review_id": "Ci9DQUlRQUNvZENodHljRjlvT2pkRmVVVlRhazVoUjJwT2VqbEtkRWgzVUdOc2IyYxAB","name": "Isatta Bassie","reviewer_photo_url": "https://lh3.googleusercontent.com/a-/ALV-UjVPL1SQUdvuxpHveWTjFNQhM2p-HIjkqB7TLLPFXR0QboWq4BQ=s120-c-rp-mo-br100","reviewer_id": "109283811363605044639","reviewer_number_of_reviews": 5,"is_local_guide": false,"reviewer_url": "https://www.google.com/maps/contrib/109283811363605044639/reviews?hl=en","published_at_date": "2026-01-11T02:01:27Z","publish_at": "2 months ago","stars": 5,"text": "10/10! Super friendly staff and everything was delicious. I went in anticipating oxtails but they were out, so I opted for jerk chicken, Mac and cheese and rice and peas...","text_translated": null,"review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2pkRmVVVlRhazVoUjJwT2VqbEtkRWgzVUdOc2IyYxAB!2m1!1s0x0:0x148b4752f2b99ae2...","review_detailed_rating": [{"category": "Food", "rating": 5},{"category": "Service", "rating": 5},{"category": "Atmosphere", "rating": 5}],"likes_count": 1,"review_origin": "Google","response_from_owner_text": null,"response_from_owner_date": null,"review_image_urls": ["https://lh3.googleusercontent.com/geougc-cs/ABOP9puDf15-ns4L2OZGnMjr2tuFgPevIH10FxjRdejn5Yfe3I..."],"review_context": "en"}
Reviews are charged separately at $0.40 per 1,000 reviews.
Example output
{"name": "La Donna Re's","place_id": "0x89c25d8a10261a7d:0x148b4752f2b99ae2","cid": "ChIJfRomEIpdwokR4pq58lJHixQ","gmap_path": "/g/11t6hj5f6q","address_parts": ["325 Lewis Ave", "Brooklyn, NY 11221"],"full_address": "La Donna Re's, 325 Lewis Ave, Brooklyn, NY 11221","street": "325 Lewis Ave, Brooklyn, NY 11221","city": "Bedford-Stuyvesant","country": "US","neighborhood": "Bedford-Stuyvesant","timezone": "America/New_York","rating": 4.7,"review_count": 117,"price_level": "$$","categories": ["Soul food restaurant", "Restaurant"],"lat": 40.684546,"lng": -73.9351578,"phone": "(347) 601-8264","phone_intl": "+1 347-601-8264","hours_status": "Open · Closes 9 PM","opening_hours": [{"day": "Friday", "hours": "3–9 PM"},{"day": "Saturday", "hours": "1:30–9 PM"},{"day": "Sunday", "hours": "1:30–7 PM"},{"day": "Monday", "hours": "Closed"},{"day": "Tuesday", "hours": "Closed"},{"day": "Wednesday", "hours": "3–9 PM"},{"day": "Thursday", "hours": "3–9 PM"}],"photo_url": "https://lh6.googleusercontent.com/...","type": "SearchResult.TYPE_AMERICAN_RESTAURANT","additional_info": [{"category": "From the business", "name": "Identifies as Black-owned", "value": true},{"category": "From the business", "name": "Identifies as women-owned", "value": true},{"category": "Service options", "name": "Delivery", "value": true},{"category": "Service options", "name": "Takeout", "value": true},{"category": "Service options", "name": "Dine-in", "value": true},{"category": "Highlights", "name": "Great dessert", "value": true},{"category": "Popular for", "name": "Lunch", "value": true},{"category": "Accessibility", "name": "Wheelchair accessible parking lot", "value": true},{"category": "Offerings", "name": "Comfort food", "value": true},{"category": "Atmosphere", "name": "Casual", "value": true},{"category": "Atmosphere", "name": "Cozy", "value": true},{"category": "Payments", "name": "Credit cards", "value": true},{"category": "Payments", "name": "NFC mobile payments", "value": true},{"category": "Children", "name": "Good for kids", "value": true},{"category": "Parking", "name": "Free street parking", "value": true}],"reviews": ["... see Reviews section below"]}
Business attributes
| Field | Type | Description |
|---|---|---|
name | string | Business name |
place_id | string | Google Maps hex place ID |
cid | string | Google Maps CID |
gmap_path | string | Short Google Maps path (/g/...) |
address_parts | string[] | Street and postal code as separate parts |
full_address | string | Full formatted address |
street | string | Street address with postal code |
city | string | City name |
country | string | Country code (e.g. BE, US) |
neighborhood | string | Neighborhood or district |
timezone | string | IANA timezone (e.g. Europe/Brussels) |
rating | float | Average rating (0-5) |
review_count | int | Number of reviews |
price_level | string | Price indicator (e.g. $, $$, €€) |
categories | string[] | Business categories |
website | string | Business website URL |
website_domain | string | Domain name only |
lat | float | Latitude |
lng | float | Longitude |
phone | string | Local phone number |
phone_intl | string | International phone number |
hours_status | string | Current open/closed status |
opening_hours | {day, hours}[] | Full weekly schedule |
photo_url | string | Primary photo URL |
type | string | Google Maps place type |
additional_info | {category, name, value}[] | Business attributes (see below) |
The additional_info field contains detailed business attributes. These vary by business type but commonly include:
- Service options — Dine-in, Takeaway, Delivery, Outdoor seating
- Highlights — Great cocktails, Great coffee, Live music, Fireplace
- Popular for — Lunch, Dinner, Solo dining
- Accessibility — Wheelchair-accessible entrance, parking, seating, toilet
- Offerings — Alcohol, Vegetarian options, Halal food, Organic dishes
- Dining options — Breakfast, Brunch, Lunch, Dinner, Catering
- Amenities — Bar on site, Toilet, Gender-neutral toilets
- Atmosphere — Casual, Cosy, Romantic, Trendy, Upmarket
- Crowd — Family friendly, Groups, LGBTQ+ friendly
- Planning — Accepts reservations, Reservations required
- Payments — Credit cards, Debit cards, NFC mobile payments
- Children — Good for kids, Kids' menu, High chairs
- Parking — Free parking, Paid street parking
All attributes use a flat {"category": "...", "name": "...", "value": true/false} format — easy to filter in spreadsheets, sort in databases, and import into any tool without nested parsing.
Google My Business scraper for local SEO
The actor works as a Google My Business scraper for SEO agencies and local businesses auditing GMB presence at scale. For every place, you get the business name, categories, rating, review count, opening hours, service options, photo URL, and 60+ additional attributes — everything visible on a GMB profile, scraped in one run.
Use it to:
- Audit GMB profile completeness for clients
- Compare GMB data against local competitors across entire cities
- Track rating and review count changes over time by scheduling recurring runs
- Export GMB data to CSV for agency reports or client dashboards
Google Maps lead generation and B2B prospecting
For B2B sales teams and agencies, this actor is a Google Maps lead scraper that builds prospect lists in minutes instead of hours. Every result includes phone number, website, full address, and business categories — the core fields you need for outbound prospecting.
Typical workflow:
- Pick your target industry (
dentist,accountant,plumber) - Pick your target geography (a city, region, or list of neighborhoods)
- Run the actor with reviews disabled for maximum speed
- Export to CSV and import directly into your CRM or cold email tool
Since all attributes are included without add-on fees, a typical 1,000-lead list costs only the base scraping price, no hidden per-field charges.
FAQ
How is this different from the Google Places API? The official Google Places API caps at 60 results per query and costs $17 per 1,000 requests. This scraper returns unlimited results per search area at a fraction of the cost, with richer data (business attributes, full hours, service options) included.
How does it get more than 120 results? Google Maps displays a maximum of 120 businesses per search view. The scraper automatically divides your target area into smaller sections, searches each one, and merges the results — giving you complete coverage of the entire area.
What locations are supported?
Any location Google Maps supports. Type a city name (Paris), a region (Bavaria, Germany), a full address, or even a country. The location is geocoded automatically.
What languages are supported?
All 70+ languages supported by Google Maps. Set the language parameter to any Google locale code: en, de, fr, ja, nl, es, pt, zh, ko, ar, etc.
What output formats are available? Results are available as JSON, CSV, and Excel. You can also export directly to Google Sheets via the Apify platform.
I only need reviews, not business data. Is there a cheaper option? Yes. My Google Maps Reviews Scraper is dedicated to reviews only: you pass Google Maps place URLs as input and get every review per place, up to ~25,000 per place. It's cheaper than this actor for review-only workflows because you skip the base business scraping cost. Use this actor when you need to discover businesses by search query and location, and use the Reviews Scraper when you already have the place URLs.
Are there rate limits? No artificial limits. You can run multiple searches concurrently. The scraper automatically scales across the search area.
Can I use this for lead generation? Yes. The actor is widely used as a Google Maps lead scraper for B2B prospecting. Every result includes phone numbers, websites, addresses, and business categories, so you can export directly to CSV and import into your CRM or cold outreach tool.
Can I scrape Google Maps reviews?
Yes. Enable scrape_reviews in the input to get full review history: text, star ratings, detailed category ratings, dates, author details, owner responses, and review images. Reviews are charged at $0.40 per 1,000.
How is this different from Outscraper, Phantombuster, or Bright Data? Most competing Google Maps scrapers charge $4 per 1,000 for the base listing and another $2-3 per 1,000 for hours, service options, and business attributes. This actor includes all 60+ attributes in every result with no per-detail add-on fees.
Do I need a Google Maps API key to use this? No. Authenticate with your Apify token, same as any other actor. You don't need a Google Cloud project, billing account, or API key. This removes the setup friction of the official Google Maps API for most scraping use cases.
Can I use this Google Maps scraper with Python?
Yes. See the Python example above. Call the actor using the Apify SDK (apify-client), no Google Maps API key needed, authenticate with your Apify token instead. The actor works as a drop-in Python alternative to the official Google Maps API for scraping and lead generation workflows.

