Google Maps Scraper
Pricing
from $2.90 / 1,000 results
Google Maps Scraper
Extract data from thousands of Google Maps locations and businesses, including reviews, reviewer details, images, contact info, including full name, email, opening hours, prices & more. Export data, run via API, schedule and monitor runs, or integrate with other tools.
Pricing
from $2.90 / 1,000 results
Rating
5.0
(2)
Developer

Boztek LTD
Actor stats
3
Bookmarked
501
Total users
242
Monthly active users
17 hours ago
Last modified
Categories
Share
A fast, reliable Google Maps scraping actor built for clean, consistent place data. Give it search terms and a location — get a structured dataset with the fields you actually need.
What it does
- Searches Google Maps by keywords, URLs, or Place IDs
- Divides the target area into a geographic grid for maximum coverage
- Scrolls through Google Maps search results and extracts place data
- Fast Mode (default): captures data directly from search result cards — no individual page visits
- Detail Mode: visits each place's detail page for complete data including phone, opening hours, and website
Scraping Modes
Fast Mode (detailGeneration: false, default)
Captures data directly from Google Maps search result lists without opening individual place pages.
Fields captured: Title, Rating, Review Count, Category, Partial Address, Google Maps URL.
Best for: large-scale searches where speed matters and basic info is sufficient.
Detail Mode (detailGeneration: true)
Visits each place's individual page to extract the full dataset.
Fields captured: Everything in Fast Mode, plus — Full Address (street, city, postal code, state), Phone, Website, Coordinates (precise), Plus Code, Opening Hours, Additional Info (amenities, accessibility, etc.), Place ID.
Best for: complete business profiles where phone numbers, hours, and websites are needed.
Pricing
| Mode | Cost |
|---|---|
| Fast Mode results | $2.90 per 1,000 places |
| Detail Mode results | $2.90 per 1,000 places + $100 per 1,000 detail pages |
An initial actor fee of $0.008 is charged per run.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchStringsArray | Array | — | One or more search terms (e.g. ["restaurant", "cafe"]) |
locationQuery | String | — | Free-text location (e.g. "Istanbul", "Kadıköy, Istanbul") |
maxCrawledPlacesPerSearch | Integer | 50 | Global maximum number of places to scrape across all grid cells |
language | String | en | Language for Google Maps results |
detailGeneration | Boolean | false | Enable Detail Mode (visits each place page) |
startUrls | Array | — | Direct Google Maps search or place URLs |
placeIds | Array | — | List of Google Maps Place IDs |
proxyConfiguration | Object | — | Apify Proxy or custom proxy settings |
maxRequestRetries | Integer | 3 | Retries per failed request |
maxConcurrency | Integer | 5 | Parallel browser pages |
navigationTimeoutSecs | Integer | 60 | Page load timeout in seconds |
verboseLog | Boolean | false | Enable debug-level logging |
How Geographic Search Works
When locationQuery is provided alongside searchStringsArray:
- Geocode the area — Nominatim (OpenStreetMap) converts the location text into geographic boundaries (polygon/bounding box).
- Generate a search grid — The polygon is divided into a grid of coordinate points. Denser grids for small areas, wider spacing for large ones.
- Search Google Maps at each grid point — For each point, a Google Maps search URL is opened (
/maps/search/{query}/@{lat},{lon},{zoom}z). - Scroll and collect — The search result feed is scrolled until no new results appear (stagnation) or the global limit is reached.
- Detail page visits (Detail Mode only) — Each collected place URL is visited individually for full data extraction.
This approach uses Google Maps' own index, which is far more complete than any third-party database.
Example Output
Fast Mode
{"title": "Karadeniz Pide Fırını","totalScore": 4.6,"reviewsCount": 892,"categories": ["Pide restaurant"],"address": "Moda Cd. No:12, Kadıköy","url": "https://www.google.com/maps/place/Karadeniz+Pide+Fırını/...","scrapedAt": "2025-03-06T14:22:10.000Z"}
Detail Mode
{"title": "Karadeniz Pide Fırını","totalScore": 4.6,"reviewsCount": 892,"categories": ["Pide restaurant"],"address": "Moda Cd. No:12, 34710 Kadıköy/İstanbul","phone": "+90 216 345 67 89","website": "https://karadenizpide.com","coordinates": { "lat": 40.9897, "lng": 29.0275 },"plusCode": "3GXJ+R2 Istanbul","openingHours": [{ "day": "Monday", "hours": "08:00 to 22:00" },{ "day": "Tuesday", "hours": "08:00 to 22:00" }],"additionalInfo": {"Service options": [{ "Dine-in": true }, { "Takeaway": true }]},"placeId": "ChIJ...","url": "https://www.google.com/maps/place/Karadeniz+Pide+Fırını/...","scrapedAt": "2025-03-06T14:22:10.000Z"}
Tips
- Use a specific
locationQuery(e.g."Kadıköy, Istanbul"rather than"Istanbul") for faster, more targeted results. maxCrawledPlacesPerSearchis a global ceiling — the actor stops as soon as this many places are collected, regardless of how many grid cells remain.- Fast Mode is recommended for discovery and lead generation at scale. Switch to Detail Mode only when phone numbers or opening hours are required.
- For direct place lookups, use
placeIdsorstartUrls— these skip the search step entirely.