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
[π° $2.5 / 1K] 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
(2)
Developer
SolidCode
Actor stats
0
Bookmarked
30
Total users
15
Monthly active users
1.3 hours
Issues response
2 days 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.
Why This Scraper?
- Up to 15,000+ results per run - Cover large cities or regions in a single run
- 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
- Claimed vs unclaimed detection - Every result is flagged
claimedBusiness: true/falseso you can instantly filter for listings whose owners have not yet verified their Google Business Profile - prime outreach targets - 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
- Works well for broad searches - Useful for both quick lookups and large area discovery
- Pairs with the Google Maps Photos Scraper - Feed this actor's
urlcolumn into the Photos Scraper to pull every categorized photo (Menu, Food & drink, Vibe, By owner, Street View & 360Β°, and more) for each place
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
- Find unclaimed Google Business Profiles - filter results by
claimedBusiness: falseto surface owners who have not yet claimed their listing, a high-intent pitch for agencies and local marketing services - 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 Search
Search a rectangular area:
{"searchQueries": ["coffee shops"],"boundingBox": {"south": 52.29,"west": 4.73,"north": 52.43,"east": 5.02},"maxResults": 1000}
Polygon Area Search
Define custom geographic boundaries using GeoJSON coordinates. 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 area search | |
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 |
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": "$$","claimedBusiness": true,"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 ($-$$$$) |
claimedBusiness | boolean | true if the owner has verified the listing, false if unclaimed (visible "Claim this business" CTA) |
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 (a small sample β use the Google Maps Photos Scraper for the full, categorized photo library) |
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
Maximizing Coverage
- Use bounding box or polygon mode when you want to cover a whole area
- The scanner automatically drills deeper in dense urban areas and stays shallow in sparse/rural ones β no tuning knobs required
Large-Scale Scraping
- Best for collecting many places across large areas or multiple search terms
- Useful for market research, lead generation, directory building, and local discovery
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
Related Actors
- Google Maps Photos Scraper β Complete, categorized photo libraries for any Google Maps place. This scraper returns a small random photo sample per place; pipe its
urlcolumn into the Photos Scraper to pull every Menu, Food & drink, Vibe, By owner, and Street View photo β ideal for menu digitization, food-delivery catalogs, hospitality listings, and ML training sets.
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.