VOOZH about

URL: https://apify.com/abotapi/google-maps-scraper

โ‡ฑ Google Maps Scraper ยท Apify


Pricing

from $2.70 / 1,000 results

Go to Apify Store

Extract business data from Google Maps at scale. Get names, addresses, phone numbers, websites, ratings, reviews, opening hours, popular times, photos, and 40+ data points per listing.

Pricing

from $2.70 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

65

Total users

9

Monthly active users

5 days ago

Last modified

Share

Google Maps Business Scraper

๐Ÿ‘ Google Maps Business Scraper

Extract business data from Google Maps at scale. Get names, addresses, phone numbers, websites, ratings, reviews, opening hours, popular times, photos, and 40+ data points per listing.

What Data Can You Extract?

Business Information

  • Business name, category, subcategories
  • Full address with street, city, state, postal code, country
  • Phone number and website URL
  • Google Place ID and Maps URL

Ratings & Reviews

  • Average rating (1-5 stars)
  • Total review count
  • Individual reviews with text, rating, date, author
  • Owner responses to reviews

Location Data

  • Latitude and longitude coordinates
  • Plus Code (Google's location code)
  • "Located in" parent location (e.g., mall, airport)

Operational Details

  • Opening hours (daily schedule)
  • Popular times (hourly occupancy by day)
  • Temporarily/permanently closed status
  • Price level ($, $$, $$$, $$$$)

Rich Content

  • Photo URLs (configurable limit)
  • Menu URL
  • Order/delivery links (DoorDash, UberEats, etc.)
  • "People also search" related businesses

Search Context

  • Search query that found the business
  • Rank in search results
  • Sponsored/advertisement indicator

Quick Start

Basic Search

{
"searchStringsArray":["restaurants"],
"location":"New York, NY",
"maxResultsPerSearch":100
}

Search by Coordinates

{
"searchStringsArray":["coffee shops"],
"lat":40.7128,
"lng":-74.0060,
"zoom":15,
"maxResultsPerSearch":50
}

Large Area with Grid Search

{
"searchStringsArray":["hotels"],
"customGeolocation":{
"type":"Polygon",
"coordinates":[[[-122.5,37.7],[-122.3,37.7],[-122.3,37.85],[-122.5,37.85],[-122.5,37.7]]]
},
"zoom":16,
"maxResultsPerSearch":200
}

With Reviews

{
"searchStringsArray":["dentists"],
"location":"Chicago, IL",
"maxResultsPerSearch":50,
"maxReviews":20,
"reviewsSort":"newest"
}

Direct Place ID Lookup

{
"searchStringsArray":["place_id:ChIJN1t_tDeuEmsRUsoyG83frY4"]
}

Input Parameters

Search Options

ParameterTypeDefaultDescription
searchStringsArraystring[]["restaurants"]Search queries or Place IDs (place_id:ChIJ...)
startUrlsobject[][]Direct Google Maps URLs to scrape
locationstring"New York, NY"Location text appended to search

Geographic Targeting

ParameterTypeDefaultDescription
latnumber-Latitude for coordinate search (-90 to 90)
lngnumber-Longitude for coordinate search (-180 to 180)
customGeolocationobject-GeoJSON Polygon/MultiPolygon for grid search
zoominteger14Map zoom level (1-21). Higher = smaller grid cells
countrystring-Country filter
statestring-State/region filter
citystring-City filter
postalCodestring-Postal/ZIP code filter

Extraction Limits

ParameterTypeDefaultDescription
maxResultsPerSearchinteger5Max results per search query (up to 10,000)
maxReviewsinteger0Max reviews per business (0 = skip reviews)
maxImagesinteger10Max photo URLs per business

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape โ€” the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record โ€” not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify โ†’ Settings โ†’ Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Output Options

ParameterTypeDefaultDescription
reviewsSortstring"relevant"Sort reviews: relevant, newest, highest, lowest
skipClosedPlacesbooleanfalseSkip closed businesses
oneReviewPerRowbooleanfalseOutput one row per review (for CSV)
languagestring"en"Language code for results

Performance

ParameterTypeDefaultDescription
maxConcurrencyinteger5Parallel browser pages (1-20)
proxyConfigurationobject-Apify proxy settings

Resume Options

ParameterTypeDescription
resumeRunIdstringRun ID to resume from (loads previously scraped Place IDs)

Output Schema

Each business is saved with the following structure:

{
"placeId":"ChIJ49sQuK-AhYARM6U646SA12Y",
"title":"Blue Bottle Coffee",
"url":"https://www.google.com/maps/place/...",
"categoryName":"Coffee shop",
"address":"315 Linden St, San Francisco, CA 94102",
"street":"315 Linden St",
"city":"San Francisco",
"state":"CA",
"postalCode":"94102",
"countryCode":"US",
"phone":"+1 510-653-3394",
"website":"https://bluebottlecoffee.com",
"totalScore":4.5,
"reviewsCount":1842,
"priceLevel":"$$",
"location":{
"lat":37.7763,
"lng":-122.4158
},
"plusCode":"QHFJ+8R Hayes Valley, San Francisco, CA",
"openingHours":[
{"day":"Monday","hours":"7 AM - 6 PM"},
{"day":"Tuesday","hours":"7 AM - 6 PM"}
],
"popularTimes":[
{
"day":"Monday",
"hours":[
{"hour":7,"occupancyPercent":20},
{"hour":8,"occupancyPercent":45},
{"hour":9,"occupancyPercent":65}
]
}
],
"imageUrls":["https://lh3.googleusercontent.com/..."],
"peopleAlsoSearch":[
{"title":"Sightglass Coffee","placeId":"ChIJ...","url":"..."}
],
"menuUrl":"https://bluebottlecoffee.com/menu",
"orderLinks":[
{"platform":"DoorDash","url":"https://..."}
],
"temporarilyClosed":false,
"permanentlyClosed":false,
"searchString":"coffee shops",
"rank":3,
"isAdvertisement":false,
"scrapedAt":"2025-12-06T10:30:00.000Z",
"reviews":[
{
"name":"John D.",
"text":"Great coffee and atmosphere!",
"rating":5,
"date":"2 weeks ago",
"responseFromOwner":"Thanks for visiting!"
}
]
}

Scaling to Millions of Records

Google Maps limits search results to ~120-400 per query. To scrape millions of businesses:

Strategy 1: Grid Search (Recommended)

Use customGeolocation to define a polygon. The scraper auto-generates grid points based on zoom level:

ZoomGrid Cell SizeExample: California
14~6 km~2,500 cells
15~3 km~10,000 cells
16~1.5 km~40,000 cells

Each cell runs a separate search, so:

  • 10,000 cells ร— 200 results/cell = 2 million potential results
{
"searchStringsArray":["restaurants"],
"customGeolocation":{
"type":"Polygon",
"coordinates":[[[...california boundary...]]]
},
"zoom":15,
"maxResultsPerSearch":200
}

Strategy 2: Multiple Search Terms

Different queries return different businesses:

{
"searchStringsArray":[
"restaurants","cafes","bars","hotels",
"gyms","dentists","plumbers","lawyers"
],
"location":"Los Angeles, CA"
}

Strategy 3: Neighborhood Batching

Run separate Actor calls per area:

# Run 1: Downtown
{"searchStringsArray":["restaurants"], "location":"Downtown, Los Angeles"}
# Run 2: Hollywood
{"searchStringsArray":["restaurants"], "location":"Hollywood, Los Angeles"}

Resume & Recovery

Automatic Protection

  • Deduplication: Place IDs saved to persistent storage
  • Incremental saves: Results pushed immediately (never lost)
  • Migration handling: State saved when Apify migrates servers

Manual Resume

If a run crashes, start a new run with resumeRunId:

{
"searchStringsArray":["restaurants"],
"location":"San Francisco, CA",
"resumeRunId":"abc123xyz"
}

The scraper loads Place IDs from the previous run and skips already-scraped businesses.

Anti-Detection Features

Built-in protections for reliable scraping:

  • Browser fingerprint rotation
  • Webdriver detection masking
  • Human-like scrolling with random delays
  • Rate limiting (30 requests/minute)
  • CAPTCHA detection with exponential backoff
  • Automatic retry with session rotation

Tip: For high-volume scraping, use residential proxies via proxyConfiguration.

Performance

MetricTypical Value
Speed800-1,200 listings/hour
Memory< 1 GB
Concurrency1-20 parallel pages
Retry attempts3 per failed request

Export Formats

Download from Apify Dataset:

  • JSON - Full nested structure
  • CSV - Flattened for spreadsheets
  • Excel - .xlsx format
  • XML - For integrations

Use Cases

  • Lead Generation: Build prospect lists with contact info
  • Market Research: Analyze competitors, pricing, ratings
  • Local SEO: Track rankings and reviews
  • Real Estate: Map amenities near properties
  • Investment: Assess retail density and competition
  • Data Enrichment: Add location data to existing records

You might also like

Google Maps Scraper | ๐Ÿ’ฐ$2.5 per 1,000 results

solidcode/google-maps-scraper-2-5-per-1-000-results

[๐Ÿ’ฐ $2.5 / 1K] Scrape Google Maps search results at scale. Extract business names, addresses, phone numbers, websites, ratings, reviews count, opening hours, photos, popular times, and 30+ data points for any search query and location worldwide.

554

4.7

Google Maps Scraper

automationhub/google-maps-scraper

Scrape Google Maps search results at scale. Extract business names, addresses, phone numbers, websites, ratings, reviews, opening hours, and GPS coordinates. Ideal for lead generation, market research, and local SEO.

43

Google Maps Place Scraper

romy/google-maps-place-scraper

Extract place details and reviews from Google Maps using keyword search โ€” no API key required. Get business names, addresses, ratings, phone numbers, websites, opening hours, and user reviews at scale

Google Maps Scraper

mvpeav/google-maps-scraper

Scrape Google Maps business listings. Extract business names, addresses, phone numbers, websites, ratings, reviews, hours of operation, coordinates, and more from Google Maps search results.

๐Ÿ‘ User avatar

MItchell Peavler

3

Google Maps Scraper โ€” Extract Business Data at Scale

fascinating_lentil/google-maps-scraper

Collect public Google Maps business listing data including names, categories, addresses, websites, ratings, review counts, hours, coordinates, and Maps URLs. Export structured data to JSON, CSV, or Excel.

๐Ÿ‘ User avatar

Md Jakaria Mirza

2