Google Maps Scraper | ๐ฐ$2.5 per 1,000 results
Pricing
from $2.50 / 1,000 results
Google Maps Scraper | ๐ฐ$2.5 per 1,000 results
Scrape Google Maps search results at scale. Extract business names, addresses, phone numbers, websites, ratings, reviews count, opening hours, photos, popular times, and 30+ data points for any search query and location worldwide.
Pricing
from $2.50 / 1,000 results
Rating
5.0
(1)
Developer
SolidCode
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
16 hours ago
Last modified
Categories
Share
Google Maps Scraper
Extract complete business data from Google Maps at scale. Get names, addresses, phone numbers, websites, ratings, reviews, opening hours, photos, popular times, and 30+ data fields for any search query and location worldwide - with advanced geographic targeting, smart filtering, and the lowest pricing on Apify.
Why This Scraper?
- Up to 15,000+ results per run - Systematically scan entire cities or regions with grid-based area coverage
- Advanced geographic targeting - Search by location name, coordinates with radius, bounding box, or custom GeoJSON polygon boundaries
- 30+ data fields - Business details, contact info, ratings, reviews, opening hours, photos, popular times, service options, accessibility, reservation/menu/order URLs, and more
- Distance calculation - Get distance in miles from your search center for every result
- Lowest price on Apify - $2.50 per 1,000 results with no hidden fees
- Resume support - Interrupted runs pick up exactly where they left off
- Reliable at scale - Built-in proxy rotation, automatic retries, and rate-limit detection
Use Cases
Market Research & Competitive Intelligence
- Map competitor locations and density across regions
- Identify underserved areas and market opportunities
- Analyze business distribution by category, rating, or price level
Lead Generation & Sales
- Build targeted prospect lists by location and category
- Find businesses with or without websites for outreach campaigns
- Target established businesses by sorting on rating and review count in your dataset
Real Estate & Site Selection
- Analyze business density around potential locations
- Map all businesses within a radius of a target address
- Compare neighborhoods using polygon area scanning
App Development & Data Enrichment
- Populate location databases with fresh Google Maps data
- Enrich existing business records with phone, website, hours, and ratings
- Build local search features powered by comprehensive POI data
Getting Started
Simple Search
Enter one or more search terms - the simplest way to get started:
{"searchQueries": ["restaurants in Amsterdam", "hotels in Paris"],"maxResults": 100}
Search with Location
Separate your search term from the location for cleaner results:
{"searchQueries": ["dentist", "pharmacy"],"locationName": "Berlin","maxResults": 200}
Google Maps URL
Paste any Google Maps search URL directly:
{"searchUrls": [{ "url": "https://www.google.com/maps/search/coffee+shops/@52.3676,4.9041,14z" }]}
Coordinate + Radius Search
Search within a precise radius around any point:
{"searchQueries": ["pizza restaurants"],"lat": 40.7128,"lon": -74.006,"radius": 5,"maxResults": 500}
Every result includes a distanceMiles field showing how far it is from your center point.
Bounding Box Grid Scan
For systematic coverage of a rectangular area:
{"searchQueries": ["coffee shops"],"boundingBox": {"south": 52.29,"west": 4.73,"north": 52.43,"east": 5.02},"maxResults": 1000}
Polygon Area Scan
Define custom geographic boundaries using GeoJSON coordinates for complex area coverage. Use geojson.io or the Keene Polyline Tool to draw your polygon and copy the coordinates.
{"searchQueries": ["restaurants"],"polygon": {"type": "Polygon","coordinates": [[[-74.041885, 40.570396],[-73.855682, 40.570396],[-73.855682, 40.739234],[-74.041885, 40.739234],[-74.041885, 40.570396]]]},"maxResults": 2000}
Note: GeoJSON uses [longitude, latitude] coordinate order.
Input Reference
Search Options
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | [] | Search queries (e.g. "restaurants in London") |
searchUrls | URL[] | [] | Google Maps search URLs to scrape directly |
locationName | string | Location name appended to queries (e.g. "New York") |
Geographic Targeting
| Parameter | Type | Default | Description |
|---|---|---|---|
lat / lon | number | Center coordinates for area search | |
radius | number | Search radius in miles (1-100). Requires lat/lon | |
boundingBox | object | {south, west, north, east} for rectangular grid scanning | |
polygon | object | GeoJSON polygon for custom area boundaries |
Result & Language Settings
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Max places to return (0 = unlimited) |
language | string | "en" | Result language (en, nl, de, fr, es, ja...) |
countryCode | string | Auto-detect | Country code (US, NL, DE, GB, FR...). Auto-detected from coordinates when not set |
Search Mode
| Parameter | Type | Default | Description |
|---|---|---|---|
searchMode | string | "default" | "fast" = quicker but may miss results, "default" = good balance, "thorough" = street-level scan |
Output
Each result contains up to 30+ structured fields. Here's an example in clean format:
{"name": "Carmine's - Times Square","placeId": "ChIJifIePKtZwokRVZ-UdRGkZzs","url": "https://www.google.com/maps/place/?q=place_id:ChIJifIePKtZwokRVZ-UdRGkZzs","categoryName": "Italian restaurant","categories": ["Italian restaurant", "Caterer", "Family restaurant", "Restaurant"],"address": "200 W 44th St, New York, NY 10036","neighborhood": "Manhattan","street": "200 W 44th St","city": "New York","state": "New York","postalCode": "10036","countryCode": "US","latitude": 40.757498,"longitude": -73.986654,"distanceMiles": 2.3,"phone": "(212) 221-3800","phoneInternational": "+12122213800","website": "https://carminesnyc.com","totalScore": 4.5,"reviewsCount": 17231,"priceLevel": "$$","openingHours": [{"day": "Saturday", "hours": "11:30 AM-12 AM"}],"isOpen": true,"description": "Relaxed, family-friendly restaurant serving homestyle Southern Italian meals.","imageUrls": ["https://lh3.googleusercontent.com/..."],"imageCount": 1,"serviceOptions": {"dine_in": true, "takeout": true, "delivery": true},"accessibility": {"wheelchair_accessible_entrance": true},"reservationUrl": "https://carminesnyc.com/bookings","menuUrl": "https://carminesnyc.com/menu"}
All Available Fields
| Field | Type | Description |
|---|---|---|
name | string | Business name |
placeId | string | Google Place ID |
cid | string | Google CID identifier |
url | string | Google Maps place URL |
googleUrl | string | Google internal URL |
categoryName | string | Primary business category |
categories | string[] | All categories |
categoryTypes | string[] | Category type labels |
subtypes | string[] | Specific business subtypes |
address | string | Full formatted address |
neighborhood | string | Neighborhood name |
street | string | Street address |
city | string | City |
state | string | State / province |
postalCode | string | Postal / ZIP code |
countryCode | string | Country code |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
distanceMiles | number | Distance from search center (when lat/lon provided) |
phone | string | Phone number |
phoneInternational | string | International phone format |
website | string | Business website URL |
totalScore | number | Star rating (1.0-5.0) |
reviewsCount | number | Total review count |
priceLevel | string | Price indicator ($-$$$$) |
openingHours | object[] | Opening hours |
isOpen | boolean | Currently open |
permanentlyClosed | boolean | Permanently closed |
temporarilyClosed | boolean | Temporarily closed |
description | string | Business description |
editorialSummary | string | Google editorial summary |
imageUrls | string[] | Photo URLs |
imageCount | number | Number of photos |
thumbnailUrl | string | Main thumbnail URL |
popularTimes | object[] | Weekly busyness data |
currentPopularity | number | Current busyness level |
serviceOptions | object | Dine-in, takeout, delivery, etc. |
accessibility | object | Wheelchair access, etc. |
reservationUrl | string | Reservation booking URL |
menuUrl | string | Menu URL |
orderUrl | string | Online ordering URL |
Tips for Best Results
Search Mode Guide
- Fast: Uses wider tiles for quicker scans โ good for sparse areas or quick estimates
- Default: Balanced tile size โ recommended for most searches
- Thorough: Street-level scanning โ catches small businesses, best for dense urban areas
Maximizing Coverage
- Use bounding box or polygon mode for systematic area coverage
- Use thorough search mode for dense urban areas where businesses are close together
- Use residential proxies for best success rates on large scrapes
Large-Scale Scraping
- Concurrent scanning processes multiple tiles in parallel for faster results
- Automatic refresh keeps sessions healthy during long runs
- Proxy rotation distributes requests for reliable large scans
- Resume support means you can stop and restart without losing progress
- Streaming output pushes results to your dataset as they're found
Creating Polygon Boundaries
Use these free tools to draw custom search areas:
- geojson.io - Draw polygons on an interactive map and copy GeoJSON
- Keene Polyline Tool - Simple polygon drawing tool
Copy the coordinates array from either tool directly into the polygon input field.
Pricing
$2.50 per 1,000 results - among the lowest prices on Apify for Google Maps data.
| Results | Cost |
|---|---|
| 100 | $0.25 |
| 1,000 | $2.50 |
| 10,000 | $25.00 |
| 100,000 | $250.00 |
Platform fees (compute, proxy, storage) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n - Workflow automation
- Google Sheets - Direct spreadsheet export
- Slack / Email - Notifications on new results
- Webhooks - Custom API integrations
- Apify API - Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate business intelligence, market research, and lead generation. Users are responsible for complying with applicable laws and Google's Terms of Service. Do not use scraped data for spam, harassment, or any illegal purpose.