Google Maps Scraper — Places, Storefront vs Service-Area avatar

Google Maps Scraper — Places, Storefront vs Service-Area

Pricing

from $0.70 / 1,000 places

Go to Apify Store
Google Maps Scraper — Places, Storefront vs Service-Area

Google Maps Scraper — Places, Storefront vs Service-Area

Scrape Google Maps business listings by keyword and city: name, category, phone, website, address, hours, rating and booking link. Flags service-area businesses that hide their address. Clean, de-duplicated, no personal data. $1 per 1,000 places.

Pricing

from $0.70 / 1,000 places

Rating

0.0

(0)

Developer

Jaybird Technologies

Jaybird Technologies

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Google Maps Places Scraper do?

Google Maps Places Scraper searches Google Maps for any type of business in a city or region and exports one clean record per place: name, categories, phone, website, address, coordinates, rating, review count, opening hours, open/closed status, description and booking link.

It also tells you whether each business shows a street address (storefront) or hides it and serves customers at their location (a service-area business: plumbers, cleaners, mobile detailers, mobile IV nurses, contractors). That one flag makes it easy to build lists of mobile and home-service businesses.

Use it as a lightweight Google Maps API alternative (Google Places API) for local business data: no Google Cloud key, no login, $1 per 1,000 places.

Why use this Google Maps scraper?

  • 🏷️ Storefront vs service-area flag. hasStorefront: false marks businesses that hide their address, the usual sign of a mobile or home-service business.
  • 🧹 Clean, fixed output. Every record has the same 24 fields; missing values are null, never absent. Ready for a spreadsheet, CRM or database without cleanup.
  • 🔁 De-duplicated across searches. Search "plumber", "emergency plumber" and "drain cleaning" in one run and each business appears once, with every term that found it in matchedSearchTerms.
  • 📍 Stays in your area. Google pads results with other cities once local ones run out; the scraper drops anything outside your city's radius or your custom polygon.
  • 🗺️ Big areas covered. One Google Maps view tops out around 200 places, so for larger requests the scraper automatically splits the map into tiles and keeps going.
  • 🔒 Business data only. No reviews, reviewer names, photos, owner names or emails, so you aren't collecting personal data you don't need.
  • ⚡ Fast and cheap. No browser: about 1,000 places in 4 minutes, 2,500 in 9.

Run it on the Apify platform with scheduling, the API, webhooks, and integrations (Make, Zapier, Google Sheets, n8n), plus proxy rotation and monitoring built in.

What data can I extract from Google Maps?

FieldExampleNotes
nameIV Bird
primaryCategory, categoriesMedical spa, IV therapy serviceGoogle's categories, main one first
phone+1 512-434-0651International format
websitehttps://ivbird512.com/Campaign tags (utm_*) removed
hasStorefronttrue / falseDoes the listing show a street address?
address1023 Springdale Rd Bldg 8e, Austin, TX 78721null for service-area businesses
lat, lng, plusCode30.2610, -97.6970, 7885+R2 Austin, Texas
rating, reviewCount4.9, 212Counts only, no review text
openingHoursMonday: 8 AM–8 PM …Monday first
businessStatusOPERATIONALOr CLOSED_TEMPORARILY / CLOSED_PERMANENTLY
description"Mobile IV therapy delivered…"Owner description or Google's summary
attributesWheelchair accessible entrance, Identifies as women-owned
bookingUrlhttps://booking.mangomint.com/…The listing's "Book online" link
placeId, mapsUrlChIJ…, https://www.google.com/maps/place/?q=place_id:…Stable Google IDs
matchedSearchTerms["plumber", "emergency plumber"]Every term that found the place

How to scrape Google Maps

  1. Click Try for free and open the Input tab.
  2. Enter one or more search terms, as you'd type them into Google Maps ("plumber", "coffee shop").
  3. Enter a location: a city, metro or region ("Austin, TX, USA", "Manchester, UK").
  4. Set max places per search term (20 for a quick look, 500+ for a whole city).
  5. Click Start, then download the results as JSON, CSV, Excel or HTML, or pull them through the API.

How much does it cost to scrape Google Maps?

You pay $1 per 1,000 places saved (less on higher Apify plans: down to $0.70 per 1,000 on Gold), plus a tiny start fee per run. There are no separate charges for details, contact fields or filters: every field above is included. Places that appear under several search terms are charged once.

PlacesCost (Free plan pricing)
100$0.10
1,000$1.00
10,000$10.00

Apify's free plan includes monthly credit, enough for thousands of places. Set a maximum cost per run in the run options and the scraper stops collecting when it reaches it, so you are never charged more.

Input

See the Input tab for every option. Example:

{
"searchTerms": ["plumber", "emergency plumber"],
"location": "Austin, TX, USA",
"maxPlacesPerSearch": 100,
"language": "en",
"skipPermanentlyClosed": true
}
  • customGeolocation (optional): a GeoJSON Polygon or MultiPolygon for an exact area, such as a metro outline or a set of ZIP codes. Places outside it are dropped.
  • maxDistanceKm (optional): how far from the location's centre to keep places. Left empty, it is sized to the location automatically (about 63 km for Austin). 0 keeps everything Google returns.

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. One record per unique place:

{
"placeId": "ChIJcWJvCp6zRIYRlvUjxSjqGuQ",
"name": "Mobile IV Medics",
"mapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJcWJvCp6zRIYRlvUjxSjqGuQ",
"matchedSearchTerms": ["mobile iv therapy", "mobile iv"],
"searchLocation": "Austin, TX, USA",
"primaryCategory": "IV therapy service",
"categories": ["IV therapy service", "Health consultant", "Wellness program"],
"website": "https://mobileivmedics.com/service-areas/texas/austin/",
"phone": "+1 833-483-7477",
"hasStorefront": false,
"address": null,
"serviceAreaText": null,
"serviceAreas": [],
"lat": 30.2801215,
"lng": -97.771258,
"plusCode": null,
"rating": 4.9,
"reviewCount": 60,
"openingHours": [{ "day": "Monday", "hours": "8 AM–8 PM" }],
"businessStatus": "OPERATIONAL",
"description": "Mobile IV Medics brings IV hydration therapy directly to you in Austin, Texas…",
"attributes": ["LGBTQ+ friendly"],
"bookingUrl": "https://mobileivmedics.com/booking/",
"scrapedAt": "2026-10-24T22:35:00.000Z"
}

The OUTPUT record in the key-value store summarizes each run: places found per term, unique places, how many were skipped (closed, outside the area) and how many were charged.

Tips

  • More places per city: add related terms ("plumber", "plumbing service", "drain cleaning"). Each finds businesses the others miss, and duplicates are removed for free.
  • Mobile and home-service businesses: filter the results on hasStorefront = false.
  • Exact areas: use customGeolocation with a polygon (for example from geojson.io) instead of a city name.
  • Keep runs cheap: start with a small maxPlacesPerSearch to check the results, then scale up.

Feedback and reviews

Something not working, or a field you need? Open an issue on the Issues tab and we'll take a look.

If this Actor saved you time, a short review on Apify Store helps other people decide whether it fits their needs.

FAQ

Does it extract emails or reviews?

No. It collects business-level data only: no review text, reviewer names, photos, owner names or emails.

Why are serviceAreaText and most About attributes empty?

Since 2026 Google shows the "Serves … and nearby areas" line and most of a listing's About tab (such as "Onsite services") only to signed-in users. This scraper doesn't log in, so those fields are usually empty. Every other public scraper has the same limit. The hasStorefront flag still reliably separates storefronts from service-area businesses, and the scraper fills the service-area fields automatically if Google shows them again.

One Google Maps view returns up to about 200 places. Above that, the scraper splits the area into map tiles automatically, typically reaching several thousand places per term in a large city. Very common categories in huge metros (for example "restaurants" in New York) are best split into several runs by borough or polygon.

Can I search outside the US?

Yes. Enter any city or region as the location and set language for local category names. Results come from Google Maps for that area.

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Can I use it through the API?

Yes. See the API tab for ready-made code in JavaScript, Python and cURL, or call it from Make, Zapier, n8n or any HTTP client.

Other Jaybird Actors