Google Maps Places & Business Scraper
Pricing
from $2.00 / 1,000 dataset items
Google Maps Places & Business Scraper
Scrape Google Maps business listings at scale — name, category, full address, GPS, phone, website, rating, review count, opening hours and photos as clean JSON. Built for lead generation, local SEO and market research. Simple, transparent pricing — pay only for the results you get.
Pricing
from $2.00 / 1,000 dataset items
Rating
0.0
(0)
Developer
axly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Turn any keyword + location into a clean, structured list of Google Maps businesses — name, category, full address, GPS, phone, website, rating, review count, opening hours and photos — exported as JSON, CSV, or Excel, ready for your CRM, spreadsheet, or data pipeline.
No Google API key, no quotas, no login. Just search terms and a place.
Who it's for
- Agencies & lead generation — build call/outreach lists with phone numbers, websites and full addresses for any niche in any city.
- Local SEO & market research — map competitors by category with ratings, review counts, categories and hours.
- PropTech / SaaS / directory builders — a stable JSON schema with
place_id,cidandftidfor clean joins and deduplication, callable from code, MCP, or an AI assistant.
What you get (output fields)
| Field | Type | Description |
|---|---|---|
name | string | Business / place name |
primary_category / categories | string / array | Business category and all labels |
rating / review_count | number / int | Average star rating and number of reviews |
phone / phone_display | string | Phone in E.164 (+1415…) and local format |
website / website_domain | string | Business website and bare domain |
full_address | string | Complete formatted address |
street / city / state / postal_code / country_code | string | Structured address parts |
neighborhood / timezone / plus_code | string | District, IANA timezone, Plus Code |
latitude / longitude | number | GPS coordinates |
opening_hours | object | {today, status, week[]} (full week with detail enrichment) |
price_level | string | Relative price band, e.g. $$ |
photos | array | {photo_id, url, width, height, caption, media_type} |
thumbnail / description | string | Primary image and editorial summary |
attributes | object | Grouped amenities/accessibility (e.g. Service options) |
place_id / cid / ftid / kgmid | string | Stable Google identifiers |
maps_url | string | Canonical Google Maps place URL |
search_query / search_location / scraped_at | string | Row provenance |
High-value use cases
- B2B lead lists — "dentists in Chicago", "law firms in London" → a CSV of names, phones, websites and addresses for outreach.
- Local competitor analysis — pull every "coffee shop" in a district with ratings and review counts to benchmark your location.
- Store/agent locators & directories — power a niche directory site with a
fresh, deduplicated business dataset keyed by
place_id. - Territory & market sizing — count and map businesses per category across neighborhoods for sales planning.
- Data enrichment — join
place_id/cidinto your existing records to add phone, hours, GPS and categories.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | (required) | Keywords/categories, e.g. ["restaurants","dentist"] |
location | string | "" | City/area to search within (geocoded), e.g. "San Francisco, CA" |
customCoordinates | object | — | {lat,lng,zoom} to override geocoding for an exact viewport |
zoom | integer | 14 | Viewport zoom (11≈city, 14≈district, 16≈neighborhood) |
maxItems | integer | 100 | Stop after this many total places |
enrichPlaceDetails | boolean | false | Extra per-place call: full-week hours, full gallery, editorial summary |
includePhotos | boolean | true | Include the photo array in each row |
language | string | "en" | Response language |
countryCode | string | "us" | Country bias |
proxyConfiguration | object | Residential | Apify Proxy (rotated on rate-limit) |
Example input
{"searchQueries": ["coffee shops"],"location": "San Francisco, CA","maxItems": 50,"includePhotos": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example output row
{"name": "Blue Bottle Coffee","primary_category": "Coffee shop","categories": ["Coffee shop", "Cafe"],"rating": 4.5,"review_count": 1280,"phone": "+14156538205","phone_display": "(415) 653-8205","website": "https://bluebottlecoffee.com/","full_address": "66 Mint St, San Francisco, CA 94103","city": "San Francisco","state": "CA","postal_code": "94103","country_code": "US","latitude": 37.782,"longitude": -122.407,"opening_hours": { "today": "7 AM–6 PM", "status": "Open", "week": [] },"photos": [{ "photo_id": "AF1…", "url": "https://lh3.googleusercontent.com/…=s0", "width": 4032, "height": 3024, "media_type": "Photo" }],"place_id": "ChIJ8_Ju2YSAhYARz1234567890","cid": "16472…","maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJ8_Ju2YSAhYARz1234567890","search_query": "coffee shops","search_location": "San Francisco, CA","scraped_at": "2026-09-04T12:00:00Z"}
Scheduling, webhooks & integrations
- Schedule runs (hourly/daily/weekly) from the Apify Console to keep a fresh dataset.
- Webhooks notify your system on run finish; push results straight to Google Sheets, Make, Zapier, Slack, or S3.
- API — start runs and fetch the dataset in JSON/CSV/Excel with the Apify API or any Apify client library.
Use it from an AI assistant (MCP)
This actor works with the Apify MCP server, so AI assistants (Claude, ChatGPT,
Cursor, VS Code) can call it as a tool — e.g. "Get me every dentist in Austin
with a phone number and website." Point your MCP client at Apify and invoke
axlymxp/google-maps-places-scraper.
FAQ
How many places can I get per search?
Google returns roughly 120–200 places per term + viewport. To go wider, add more
search terms or split a city into smaller location/customCoordinates areas.
Do I get email addresses?
No. This actor returns the data Google Maps exposes — phone and website, not
email. Pipe the website field into an email-finder actor if you need emails.
Do I get individual review text? No. You get the rating, review count and a reviews URL; full review text is not part of this actor's scope.
How fresh is the data?
Every row is scraped live at run time (scraped_at timestamp included).
Is it reliable? Yes — it calls Google Maps' own public endpoints and rotates Apify Residential proxies, backing off automatically if Google rate-limits an IP.
Is scraping Google Maps legal? The actor collects publicly available business information. You are responsible for using the data in line with applicable laws and Google's terms.
Something looks off — how do I get help? Open an issue on the actor's page; issues are monitored and addressed quickly.