Google Maps Places Scraper - Fast & Cheap Bulk Places
Pricing
from $0.01 / 1,000 results
Google Maps Places Scraper - Fast & Cheap Bulk Places
Fast, low-cost Google Maps places scraper. Get business names, addresses, phone numbers, websites, ratings, categories, coordinates, and opening hours as clean structured JSON. Built for bulk research and dataset building.
Pricing
from $0.01 / 1,000 results
Rating
5.0
(4)
Developer
John
Maintained by CommunityActor stats
6
Bookmarked
25
Total users
15
Monthly active users
an hour ago
Last modified
Categories
Share
Pull Google Maps places in bulk and get clean, structured JSON, fast and cheap. Business names, addresses, phone numbers, websites, ratings, categories, GPS coordinates, opening hours, price levels, and Google Place IDs. Search by keyword and location, run many searches at once, and export thousands of places.
This is the Lite option: just the place data, fast, no enrichment and no fuss. It talks to a structured search API instead of driving a slow, breakable headless browser, so it is quick and reliable. If you need emails, reviews, or popular times, this is not the tool - see the comparison below.
What you get
One clean row per place:
- Name, full address, latitude, longitude
- Rating and review count
- Category (
type) and all categories (types) - Phone number and website
- Opening hours
- Price level and a short description
- Photo thumbnail, plus Google
cid,fid, andplaceId
What you do NOT get
- Emails and contact discovery
- Individual reviews and review text
- Popular times / busyness graphs
- Photo galleries, owner info, social links
Need those? Use a dedicated lead-generation or enrichment scraper. This actor is the fast, cheap complement for everyone who just needs the place data.
Use cases
- Build local business datasets for market research or site-selection analysis
- Pull competitor locations, ratings, and price levels across whole cities
- Assemble location-intelligence layers (names, categories, GPS coordinates) for mapping and GIS work
- Collect training data for machine-learning models that need real-world place attributes
- Refresh a directory or listings product with current phone numbers, websites, and opening hours
When to use this actor
| This actor (Lite) | Full enrichment scrapers | |
|---|---|---|
| Price | $0.80 - $2.00 / 1,000 places | $0.76 - $4.00 / 1,000 places |
| Emails, reviews, popular times | Not included | Included |
| Speed | API-based, fast | Browser-based, slower |
| Best for | Bulk research, datasets, location intelligence, ML training | Lead generation, sales prospecting |
Rule of thumb: bulk place data → this actor; sales enrichment → a full enrichment scraper.
🔌 Integrations: Automate Local Lead Collection with This Google Maps Scraper
A single run answers one question ("who are the coffee shops in Austin?"). The real value comes from running this Google Maps scraper on a schedule, so fresh place data, new phone numbers, and updated ratings land in your stack automatically. See the full list of Apify platform integrations.
Tasks and Schedules (the core recipe). Save one task per area or niche you track (for example "roofing contractors in Tampa" or "med spas in Miami"), then attach a schedule from the Actor's Actions, then Schedule menu. Useful cron strings: 0 7 * * * (daily at 7 AM), 0 */6 * * * (every six hours), 0 9 * * 1 (Mondays). One schedule can trigger many saved tasks at once, so a whole city of niches refreshes in a single pass.
n8n. This Actor ships an n8n community node (see the n8n integration section below). A four-step lead pipeline: Schedule Trigger, then the Google Maps Places node, then a Filter on rating or ratingCount, then Slack or a Google Sheet.
Make and Zapier. The same pattern works no-code with Make and Zapier: trigger on a schedule, run the Actor, then route each new place where you need it.
Store the history (Supabase). Send each run's rows into a table so a place and lead history accumulates across runs. No-code: the n8n Actor node, then a Supabase node. Or in Python (each row carries title, address, phoneNumber, website, rating, ratingCount, latitude, longitude, and placeId):
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")run = apify.actor("johnvc/google-maps-places-api").call(run_input={"searchTerms": ["coffee shops in Austin, TX"],"maxResultsPerSearch": 40,})rows = list(apify.dataset(run["defaultDatasetId"]).iterate_items())supabase.table("places").upsert(rows).execute()
MCP and AI agents. Add this API as a tool in Claude Code (free trial) or Cursor through the Apify MCP server so an agent can pull local businesses on request (see the Use from an AI agent section below).
Webhooks. For anything custom, fire an Apify webhook on ACTOR.RUN.SUCCEEDED to push each run's dataset into your own service.
Pricing
Pay-per-result: you are charged only for the unique places returned (duplicates across pages are removed before billing). The per-place price scales down with your Apify plan:
| Plan | Per place | Per 1,000 places |
|---|---|---|
| Free | $0.0020 | $2.00 |
| Bronze | $0.0017 | $1.70 |
| Silver | $0.0014 | $1.40 |
| Gold | $0.0012 | $1.20 |
| Platinum | $0.0010 | $1.00 |
| Diamond | $0.0008 | $0.80 |
No per-run fee, no monthly minimum. You only pay for places you receive.
Input
| Field | Type | Description |
|---|---|---|
searchTerms | array of strings | One or more searches, e.g. coffee shops in Austin, TX. Each is searched independently. Required. |
location | string | Optional place to focus every search term on, e.g. Austin, TX, United States. |
maxResultsPerSearch | integer | Places per search term. Minimum 20, default 20. |
language | string | Optional language code, e.g. en, es, fr. |
Example input
{"searchTerms": ["coffee shops in Austin, TX", "bookstores in Austin, TX"],"location": "Austin, TX, United States","maxResultsPerSearch": 40}
Sample output
{"searchTerm": "coffee shops in Austin, TX","position": 1,"title": "Epoch Coffee","address": "221 W N Loop Blvd, Austin, TX 78751","latitude": 30.3186037,"longitude": -97.7245402,"rating": 4.5,"ratingCount": 2481,"priceLevel": "$1-10","type": "Coffee shop","types": ["Coffee shop"],"phoneNumber": "(512) 454-3762","website": "https://www.epochcoffee.com/","description": "Cool, vibrant small-chain cafe featuring nibbles, tea & carefully brewed espresso drinks.","openingHours": { "Monday": "12 AM-11:30 PM", "Tuesday": "6 AM-12 AM", "Wednesday": "Open 24 hours" },"thumbnailUrl": "https://lh3.googleusercontent.com/...","cid": "140078896924485689","fid": "0x8644ca6bc309e81b:0x1f1a903bbb66839","placeId": "ChIJG-gJw2vKRIYROWi2uwOp8QE"}
How to get started
- Open Google Maps Places Scraper on the Apify Store.
- Enter one or more
searchTerms(add alocationto focus them). - Set
maxResultsPerSearch, then run the Actor. - Export the dataset as JSON, CSV, or Excel, or pull it from the API.
Data source: Google Maps.
Prefer to start from code? See the example repo on GitHub for a Python quick-start and step-by-step MCP setup walkthroughs.
Run from the API
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-maps-places-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms":["coffee shops in Austin, TX"],"maxResultsPerSearch":40}'
Use from an AI agent (MCP)
This Actor is compatible with the Model Context Protocol (MCP). Connect your agent to the Apify MCP server at https://mcp.apify.com and it becomes a callable tool for requests like "find every hardware store in Denver." If you run agents from Claude Code (free trial) or Claude Cowork (free trial), add the Apify MCP server and call this Actor directly.
Add it with this Actor-specific URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-places-api
Setup walkthrough:
Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp
🔗 Related Tools
Pair this Google Maps scraper with other tools in the same local-data family:
- Google Maps Contributor Reviews API: after you find a place, pull the full review and contribution history behind a reviewer to judge how trustworthy a rating is.
- Google Local API: capture the Local Pack and local business SERP for a keyword, a different angle on which businesses rank in a city.
- Google Maps Directions API: get routes, distances, and drive times between the places you collect, useful for territory planning and field-sales routing.
- Google Maps Reviewer Geo Profile API: profile the geographic spread of the reviewers behind a place's ratings.
For contrast, a free Google Maps places scraper such as Free Google Maps Scraper exists, but its Store listing carries no description, reports a lower run success rate (around 91 percent), and has no user ratings yet. This API is actively maintained, returns clean structured fields, and holds a 100 percent run success rate.
FAQ
How do I get emails?
This actor does not return emails. Use a dedicated lead-generation or enrichment scraper.
Does it return reviews or popular times?
No. It returns place and business listing data only. For reviews, use a reviews scraper; for popular times, use a full enrichment scraper.
How many places per search?
Set maxResultsPerSearch (minimum 20). Results come in pages of about 20 and are trimmed to your count; a search stops early when the area runs out of places, so you only pay for what exists.
Why did I get fewer results than I asked for?
maxResultsPerSearch is a ceiling, not a guarantee. Some areas simply have fewer matching places.
Can I search many areas at once?
Yes. Pass multiple searchTerms; each is searched independently and tagged with its source term in the output.
Can I schedule this Google Maps Places Scraper?
Yes, and this is where the tool earns its keep. Any run can be automated on a schedule: create a saved task with your searchTerms and location, then attach a schedule from the Actor's Actions, then Schedule menu. Handy cron strings are 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, and 0 9 * * 1 for Mondays, and one schedule can trigger many saved tasks at once. See the Integrations section above for the full monitoring recipe.
Should I use an API or a web scraper for Google Maps?
Both, and here you get the best of each. An official API is rate limited, quota bound, and often missing fields like phone numbers or opening hours. This Actor gives you the same place data through web scraping, delivered either as a no-code run in the Apify console or a clean endpoint you call yourself, with no per-request quota to manage.
Can I integrate this Google Maps scraper with other apps?
Yes. The Actor connects to almost any cloud service through Apify integrations: Make, Zapier, Slack, Google Drive, and more, plus webhooks that fire on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for copy-paste recipes.
Can I use this Google Maps Places API with the Apify API?
Yes. The Apify API gives programmatic access to run the Actor, schedule it, and fetch datasets, and the apify-client package is available for both Node.js and Python. There is a ready-to-run curl example in the Run from the API section above.
Can I use this scraper through an MCP server?
Yes. Add it as a tool to any MCP client, including Claude Code (free trial) and Cursor, through the hosted Apify MCP server using the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-places-api. See the Use from an AI agent section above and the Apify MCP docs.
How else can I collect Google Maps data?
Chain this Actor with its neighbors. Use the Google Local API for Local Pack SERP results, the Google Maps Contributor Reviews API for reviewer history, and the Google Maps Directions API for routes and drive times between the places you collect. See Related Tools above for the full list.
Do I need a Google Maps API key to use this?
No. You do not need a Google Cloud project or a Google Maps Platform key, and you are not bound by Google's usage quotas or per-request billing. You run this Actor with your Apify account and it handles access to Google Maps for you, then bills only for the unique places you receive.
Is it legal to scrape Google Maps?
Scraping publicly visible business listings is widely practiced, and this Actor collects only public place data (names, addresses, ratings, and the like), not private or personal information. For a plain-language overview see Apify's note on the legality of web scraping. If you plan to scrape at scale or reuse the data commercially, check the current terms and take your own legal advice.
What is Google Maps scraping?
Google Maps scraping is the automated collection of public business listings from Google Maps into structured data you can analyze, using web scraping rather than manual copy and paste. This Actor does exactly that in bulk: you pass search terms, and it returns clean rows of place data.
n8n integration
Available as an n8n community node, n8n-nodes-google-maps-places-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-maps-places-api, then use it in any workflow (it also works as an AI Agent tool).
Featured Tasks
Ready-made use cases you can run in one click:
- Find roofing contractor leads in Tampa with phone numbers - pull roofing contractors in Tampa from Google Maps: business name, phone number, address, rating, reviews, and website for each lead as JSON..
- Extract phone numbers from Google Maps by zip code - scrape phone numbers from Google Maps for any zip code search.
- Build a list of med spas in Miami with phone numbers - build a med spa lead list for Miami from Google Maps: name, phone number, address, rating, review count, and website for every spa as JSON..
- Extract local business leads from Google Maps by API - google Maps leads extractor by API: feed it search terms and get business names, phone numbers, addresses, ratings, and websites in bulk as JSON..
- Generate local leads in Claude via Google Maps MCP - connect this MCP-ready Google Maps API to Claude and pull local business leads with phone numbers and websites directly in chat. (free trial available).
- Export Google Maps Places to CSV
- 批量导出谷歌地图商家数据到 CSV - 按关键词批量抓取谷歌地图商家: 名称、地址、电话、评分、坐标、营业时间, 一键导出 CSV/JSON/Excel。
- 抓取洛杉矶中餐馆名单(含电话和评分) - 从谷歌地图提取洛杉矶中餐馆: 店名、电话、地址、评分、评论数、网站, 结构化 JSON 输出。
Last Updated: 2026.07.11