Google Maps Places Scraper - Fast & Cheap Bulk Places avatar

Google Maps Places Scraper - Fast & Cheap Bulk Places

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Google Maps Places Scraper - Fast & Cheap Bulk Places

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

John

Maintained by Community

Actor stats

6

Bookmarked

25

Total users

15

Monthly active users

an hour ago

Last modified

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, and placeId

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 timesNot includedIncluded
SpeedAPI-based, fastBrowser-based, slower
Best forBulk research, datasets, location intelligence, ML trainingLead 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 ApifyClient
from supabase import create_client
apify = 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:

PlanPer placePer 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

FieldTypeDescription
searchTermsarray of stringsOne or more searches, e.g. coffee shops in Austin, TX. Each is searched independently. Required.
locationstringOptional place to focus every search term on, e.g. Austin, TX, United States.
maxResultsPerSearchintegerPlaces per search term. Minimum 20, default 20.
languagestringOptional 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

  1. Open Google Maps Places Scraper on the Apify Store.
  2. Enter one or more searchTerms (add a location to focus them).
  3. Set maxResultsPerSearch, then run the Actor.
  4. 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

Pair this Google Maps scraper with other tools in the same local-data family:

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.

No. It returns place and business listing data only. For reviews, use a reviews scraper; for popular times, use a full enrichment scraper.

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.

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).

Ready-made use cases you can run in one click:

Last Updated: 2026.07.11