Google Maps Place Detail — Photos & Popular Times (No API Key)
Pricing
from $2.00 / 1,000 place scrapeds
Google Maps Place Detail — Photos & Popular Times (No API Key)
Extract full place details from any Google Maps URL — hours, popular times, photos, amenities & ordering links. No API key, no browser.
Pricing
from $2.00 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
Romy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
What it does
This actor extracts the full detail view of any Google Maps place — the same data you see when you tap a place in the Google Maps mobile app — using Google's internal Android gRPC API directly. No browser, no API key, no login required.
Paste any Google Maps URL and get back structured data that's hard to get anywhere else: 7-day × 24-hour popular times, full photo galleries (200+ photos), GoFood/GrabFood/ShopeeFood ordering URLs, 40+ amenity attributes, menu items, and live busyness.
Need to find places by keyword first? Use Google Maps Place Scraper to search and discover places, then pipe results here for the full detail view.
Use cases
| Use Case | How |
|---|---|
| Competitor research | Scrape hours, amenities, and popular times for every competitor in your city |
| Lead enrichment | Add phone, website, and address to a list of business names or URLs |
| Restaurant/hotel directories | Build a database of menus, photos, and ordering links |
| Market research | Extract popular times data to understand foot traffic patterns |
| Delivery app aggregation | Collect GoFood/GrabFood/ShopeeFood ordering URLs for any business |
Quick start
- Open the actor on Apify Console and click Try for free
- Paste one or more Google Maps place URLs into the URLs field
- Click Start — results appear in seconds
- Export as JSON, CSV, Excel, or XML from the Dataset tab
Input
Three input formats are accepted — mix and match freely in a single run:
1. Google Maps URLs (recommended)
Copy directly from your browser after opening any place on Google Maps.
{"urls": ["https://www.google.com/maps/place/Giyanti+Coffee+Roastery/@-6.1952,106.8302,17z/data=!3m1!4b1!4m6!3m5!1s0x2e69f4151ceb7767:0x79ac645c2aef736f!8m2!3d-6.1952!4d106.8302!16s%2Fg%2F12vqtc6zk","https://www.google.com/maps/place/RS+Pondok+Indah+-+Bintaro+Jaya/@-6.2710959,106.6917807,15z/data=!4m6!3m5!1s0x2e69faf2843a31c3:0xb02d6a1a5860823b!8m2!3d-6.2714566!4d106.6970665!16s%2Fg%2F11c7wbqpgh"],"maxPhotos": 20,"includePopularTimes": true}
2. Structured places (from google-maps-place-scraper)
Pipe the output of Place Scraper directly here for batch enrichment.
{"places": [{"place_id": "0x2e69f4151ceb7767:0x79ac645c2aef736f","name": "Giyanti Coffee Roastery","place_path": "/g/12vqtc6zk"}]}
3. Raw feature IDs
{"featureIds": ["0x2e69f4151ceb7767:0x79ac645c2aef736f","0x2e69fb81d3659859:0x83a7983ca17aa370"]}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
urls | string[] | — | Google Maps place URLs |
places | object[] | — | {place_id, name?, place_path?} — from Place Scraper output |
featureIds | string[] | — | Raw 0xHIGH:0xLOW feature IDs |
maxPhotos | integer | 20 | Max photos per place (0 = skip, max 500) |
includePopularTimes | boolean | true | Include 7-day × 24-hour busyness data |
At least one of urls, places, or featureIds is required.
Output
One JSON object per place pushed to the dataset.
Example — RS Pondok Indah - Bintaro Jaya:
{"name": "RS Pondok Indah - Bintaro Jaya","feature_id": "0x2e69faf2843a31c3:0xb02d6a1a5860823b","category": "General hospital","full_address": "CBD Emerald, Jl. Boulevard Bintaro Jaya No.1, Parigi, Pondok Aren, South Tangerang City, Banten 15227","neighborhood": "Parigi, Pondok Aren","timezone": "Asia/Jakarta","plus_code": "PMHW+CR Parigi, South Tangerang City, Banten","phone": "+62 21 2960 5555","website": "https://rspondokindah.co.id","hours": {"Monday": "Open 24 hours","Tuesday": "Open 24 hours","Wednesday": "Open 24 hours","Thursday": "Open 24 hours","Friday": "Open 24 hours","Saturday": "Open 24 hours","Sunday": "Open 24 hours"},"popular_times": {"days": [{"day": "Mon","hours": [{ "hour": 6, "busyness": 20, "label": "Not too busy" },{ "hour": 9, "busyness": 65, "label": "Usually a bit busy" },{ "hour": 12, "busyness": 80, "label": "Usually as busy as it gets" }]}],"live_busyness": 42},"amenities": ["On-site services available","Has toilet","Accepts credit cards","Accepts NFC mobile payments","Has nursing room","Paid parking lot","Drive-through"],"photos": [{"url": "https://gz0.googleusercontent.com/gps-cs-s/...","url_thumb": "https://gz0.googleusercontent.com/...","caption": "Suasana kamar rawat inap","timestamp_ms": 1639353600000}],"photos_total": 201,"place_path": "/g/11c7wbqpgh","maps_url": "https://www.google.com/maps/place/RS+Pondok+Indah+-+Bintaro+Jaya/..."}
Pricing
Pay Per Event — you only pay per place scraped. No subscription, no minimum spend.
| Event | Price |
|---|---|
| Actor start | $0.05 (one-time per run) |
| Per place scraped | $0.002 |
| Scenario | Places | Cost |
|---|---|---|
| Quick lookup | 10 | ~$0.07 |
| Small batch | 100 | ~$0.25 |
| Large batch | 1,000 | ~$2.05 |
| Full campaign | 10,000 | ~$20.05 |
Good value? Competing Google Maps scrapers charge $1.50–$2.50 per 1,000 places and return less data (no popular times, no ordering links, no full photo galleries). This actor returns the deepest available place data at $2.00 per 1,000 places.
Tips
- Getting the URL — open any place on Google Maps in your browser and copy the URL from the address bar. Works for any country and place type.
- Use with Place Scraper — search by keyword using Google Maps Place Scraper, then feed the output directly into the
placesfield here. - Skip photos for speed — set
maxPhotos: 0to skip photo fetching and cut run time roughly in half. - Get all photos — set
maxPhotos: 200(or higher) to retrieve every available photo for a place. - Popular times availability — only places with enough visitor data have this. Some places (hospitals, government offices, 24-hour spots) may not have it.
FAQ
How is this different from Google Places API? The official Places API doesn't expose popular times, full photo galleries, GoFood/GrabFood ordering links, or menu items. This actor calls Google's internal Android gRPC endpoint — the same source the mobile app uses — and returns all of it at a fraction of the Places API cost.
Does it need a browser, API key, or login? No. It uses the Android Maps internal API with the public key embedded in the Maps app — no browser, no OAuth, no account.
What URL format is accepted?
Any URL starting with https://www.google.com/maps/place/. Copy it directly from your browser — no editing needed. Short URLs (goo.gl/maps/...) are not supported; open them in your browser first to get the full URL.
Why is a field missing? Google only returns data that exists for a place. Small or unclaimed businesses often have no phone, hours, or description. Popular times require enough visitor data to generate.
Can I get reviews too? Reviews are not included in this actor. Use Google Maps Reviews Scraper to paginate all reviews for specific places.
Will it get blocked? The actor uses authentic Android app credentials and behaves like a real mobile client. No proxy is required for normal usage volumes.
Issues or feature requests? Open a ticket in the Issues tab.