Google Maps Scraper avatar

Google Maps Scraper

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

Extracts public place and business results from Google Maps: names, categories, addresses, coordinates, ratings, reviews, hours, phones, websites, and photos.

Pricing

from $1.99 / 1,000 search results

Rating

0.0

(0)

Developer

Search API

Search API

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

a month ago

Last modified

Share

Google Maps Places Search Scraper

Collect public Google Maps place results from one user-friendly query or a batch of search terms. Version 2 extracts list results and, by default, enriches each selected place concurrently from its public detail page.

Modes and input

  • Single: query, maxItems, gl, and hl.
  • Batch: searchTerms (or legacy searchStringsArray), optional locationQuery, and maxPlaces (or maxCrawledPlacesPerSearch).
  • Filters: minimumRating/placeMinimumStars and closedPlacesFilter.
  • Detail controls: includeDetails, requireDetails, and maxDetailConcurrency.
  • Runtime controls: maxRequestRetries, navigationTimeoutSecs, fingerprint profile, and proxyConfiguration.

The Actor retains backward-compatible batch aliases. It rejects GOOGLE_SERP because that product supports HTTP Google Search results, not the interactive Google Maps page. Direct mode is the verified default; an authorized Residential or custom proxy can be used when required.

Output

Each record has a stable Google place identity and requested search context. Detail enrichment reads the public place page and can include the description, category list, full address parts, formatted and unformatted phone, website, coordinates, rating, review count, raw and day-by-day hours, open state, price, place ID, CID, plus code, visible photo URLs and categories, review distribution, review topics, review summary, individual reviews with reviewer metadata and photos, related places, service information, place/search URLs, source, extraction method, and ISO scrape time. detailFetched and detailStatus state whether that row was enriched.

Unavailable optional values are omitted rather than emitted as null/empty placeholders. Writes are atomic across a batch, duplicate identities are removed, listeners/pages are closed, and valid no-results searches finish with an empty dataset. Explicit block/challenge pages fail closed and are never stored; the Actor does not solve CAPTCHAs or bypass access controls.

Validation

npm ci
npm test
npm audit --omit=dev
apify validate-schema
apify run --purge --input-file INPUT.json