Google Maps Places Scraper
Pricing
from $2.99 / 1,000 results
Google Maps Places Scraper
Scrape Google Maps places data including business name, address, phone, website, ratings, reviews, and more. Extract leads and business information from Google Maps search results.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
336
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Share
Extract source-backed business places from public Google Maps search pages. The Actor captures structured Maps response data and visible business-specific Maps links, then applies optional rating, category, contact, and closure filters.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | required | 1–50 unique Google Maps searches |
searchStringsArray | string[] | — | Legacy alias for searchTerms |
locationQuery | string | blank | Optional location appended to every term |
maxPlaces | integer | 20 | Exact per-search cap, 1–500 |
maxCrawledPlacesPerSearch | integer | — | Legacy alias for maxPlaces |
minimumRating | number | blank | Source-backed rating threshold from 1 to 5 |
placeMinimumStars | string | blank | Legacy alias for minimumRating |
closedPlacesFilter | string | all | all, skipClosed, or onlyClosed |
onlyWithWebsite | boolean | false | Only scrape places that have a listed official website |
onlyWithPhone | boolean | false | Only scrape places that have a contact telephone number |
onlyOpenNow | boolean | false | Only scrape places that are currently reported as open |
categoryFilter | string[] | blank | Filter places by category keywords (e.g. ["pizza", "italian"]) |
maximumPhotos | integer | 10 | Maximum photo URLs to extract per place (0–50) |
language / country | string | en / US | Maps locale and country |
fingerprintProfile | string | chrome-windows | Retained browser compatibility input; not written to dataset rows |
proxySessionId / proxyConfiguration | string / object | blank / Residential | Optional proxy settings for live public-page access |
fixtureFile | string | blank | Local-only relative .html/.htm fixture for deterministic QA |
Output
Normal rows contain rich business details and source provenance:
- Identity:
recordId,businessName,name(compatibility alias),placeId,cid,entityId - Classification:
category,categories - Location:
address,street,city,state,postalCode,countryCode,countryName,latitude,longitude,timezone,plusCode - Contact & Web:
phone,website,domain,email - Rating & Reviews:
rating,reviewCount,priceLevel - Status & Schedule:
openNow,openingStatus,openingHours(7-day schedule),permanentlyClosed,temporarilyClosed - Media:
thumbnailUrl,photoUrls,photoCount - Actions & Details:
description,menuUrl,orderOnlineUrl,reservationUrl - Provenance:
mapsUrl,sourceUrl,searchTerm,searchTermIndex,resultRank,position,scrapedAt
When Google shows a CAPTCHA, consent page, traffic block, or the run cannot produce usable places, the Actor writes a diagnostic row with exactly url, error, errorCode, and scrapedAt. Operational status, counters, source mode, proxy mode, and profile name are stored in OUTPUT and RUN_HEALTH in the default key-value store.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Access and responsible use
Use public Google Maps pages in accordance with Google terms, robots guidance, applicable law, and reasonable rate limits. The Actor does not log in, solve CAPTCHAs, bypass WAFs, or evade access controls. A source boundary is recorded and the run fails closed.
Local development
npm installnpm testnpm run validate
Deterministic fixture run:
node src/main.js
The fixture is synthetic and local-only. Apify authentication is required only for cloud Console/API operations.