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

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

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Google Maps Scraper | ๐Ÿ’ฐ$2.5 per 1,000 results

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

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.

Pricing

from $2.50 / 1,000 results

Rating

5.0

(1)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

16 hours ago

Last modified

Share

Google Maps Scraper

Extract complete business data from Google Maps at scale. Get names, addresses, phone numbers, websites, ratings, reviews, opening hours, photos, popular times, and 30+ data fields for any search query and location worldwide - with advanced geographic targeting, smart filtering, and the lowest pricing on Apify.

Why This Scraper?

  • Up to 15,000+ results per run - Systematically scan entire cities or regions with grid-based area coverage
  • Advanced geographic targeting - Search by location name, coordinates with radius, bounding box, or custom GeoJSON polygon boundaries
  • 30+ data fields - Business details, contact info, ratings, reviews, opening hours, photos, popular times, service options, accessibility, reservation/menu/order URLs, and more
  • Distance calculation - Get distance in miles from your search center for every result
  • Lowest price on Apify - $2.50 per 1,000 results with no hidden fees
  • Resume support - Interrupted runs pick up exactly where they left off
  • Reliable at scale - Built-in proxy rotation, automatic retries, and rate-limit detection

Use Cases

Market Research & Competitive Intelligence

  • Map competitor locations and density across regions
  • Identify underserved areas and market opportunities
  • Analyze business distribution by category, rating, or price level

Lead Generation & Sales

  • Build targeted prospect lists by location and category
  • Find businesses with or without websites for outreach campaigns
  • Target established businesses by sorting on rating and review count in your dataset

Real Estate & Site Selection

  • Analyze business density around potential locations
  • Map all businesses within a radius of a target address
  • Compare neighborhoods using polygon area scanning

App Development & Data Enrichment

  • Populate location databases with fresh Google Maps data
  • Enrich existing business records with phone, website, hours, and ratings
  • Build local search features powered by comprehensive POI data

Getting Started

Enter one or more search terms - the simplest way to get started:

{
"searchQueries": ["restaurants in Amsterdam", "hotels in Paris"],
"maxResults": 100
}

Search with Location

Separate your search term from the location for cleaner results:

{
"searchQueries": ["dentist", "pharmacy"],
"locationName": "Berlin",
"maxResults": 200
}

Google Maps URL

Paste any Google Maps search URL directly:

{
"searchUrls": [
{ "url": "https://www.google.com/maps/search/coffee+shops/@52.3676,4.9041,14z" }
]
}

Search within a precise radius around any point:

{
"searchQueries": ["pizza restaurants"],
"lat": 40.7128,
"lon": -74.006,
"radius": 5,
"maxResults": 500
}

Every result includes a distanceMiles field showing how far it is from your center point.

Bounding Box Grid Scan

For systematic coverage of a rectangular area:

{
"searchQueries": ["coffee shops"],
"boundingBox": {
"south": 52.29,
"west": 4.73,
"north": 52.43,
"east": 5.02
},
"maxResults": 1000
}

Polygon Area Scan

Define custom geographic boundaries using GeoJSON coordinates for complex area coverage. Use geojson.io or the Keene Polyline Tool to draw your polygon and copy the coordinates.

{
"searchQueries": ["restaurants"],
"polygon": {
"type": "Polygon",
"coordinates": [[
[-74.041885, 40.570396],
[-73.855682, 40.570396],
[-73.855682, 40.739234],
[-74.041885, 40.739234],
[-74.041885, 40.570396]
]]
},
"maxResults": 2000
}

Note: GeoJSON uses [longitude, latitude] coordinate order.

Input Reference

Search Options

ParameterTypeDefaultDescription
searchQueriesstring[][]Search queries (e.g. "restaurants in London")
searchUrlsURL[][]Google Maps search URLs to scrape directly
locationNamestringLocation name appended to queries (e.g. "New York")

Geographic Targeting

ParameterTypeDefaultDescription
lat / lonnumberCenter coordinates for area search
radiusnumberSearch radius in miles (1-100). Requires lat/lon
boundingBoxobject{south, west, north, east} for rectangular grid scanning
polygonobjectGeoJSON polygon for custom area boundaries

Result & Language Settings

ParameterTypeDefaultDescription
maxResultsinteger100Max places to return (0 = unlimited)
languagestring"en"Result language (en, nl, de, fr, es, ja...)
countryCodestringAuto-detectCountry code (US, NL, DE, GB, FR...). Auto-detected from coordinates when not set

Search Mode

ParameterTypeDefaultDescription
searchModestring"default""fast" = quicker but may miss results, "default" = good balance, "thorough" = street-level scan

Output

Each result contains up to 30+ structured fields. Here's an example in clean format:

{
"name": "Carmine's - Times Square",
"placeId": "ChIJifIePKtZwokRVZ-UdRGkZzs",
"url": "https://www.google.com/maps/place/?q=place_id:ChIJifIePKtZwokRVZ-UdRGkZzs",
"categoryName": "Italian restaurant",
"categories": ["Italian restaurant", "Caterer", "Family restaurant", "Restaurant"],
"address": "200 W 44th St, New York, NY 10036",
"neighborhood": "Manhattan",
"street": "200 W 44th St",
"city": "New York",
"state": "New York",
"postalCode": "10036",
"countryCode": "US",
"latitude": 40.757498,
"longitude": -73.986654,
"distanceMiles": 2.3,
"phone": "(212) 221-3800",
"phoneInternational": "+12122213800",
"website": "https://carminesnyc.com",
"totalScore": 4.5,
"reviewsCount": 17231,
"priceLevel": "$$",
"openingHours": [
{"day": "Saturday", "hours": "11:30 AM-12 AM"}
],
"isOpen": true,
"description": "Relaxed, family-friendly restaurant serving homestyle Southern Italian meals.",
"imageUrls": ["https://lh3.googleusercontent.com/..."],
"imageCount": 1,
"serviceOptions": {"dine_in": true, "takeout": true, "delivery": true},
"accessibility": {"wheelchair_accessible_entrance": true},
"reservationUrl": "https://carminesnyc.com/bookings",
"menuUrl": "https://carminesnyc.com/menu"
}

All Available Fields

FieldTypeDescription
namestringBusiness name
placeIdstringGoogle Place ID
cidstringGoogle CID identifier
urlstringGoogle Maps place URL
googleUrlstringGoogle internal URL
categoryNamestringPrimary business category
categoriesstring[]All categories
categoryTypesstring[]Category type labels
subtypesstring[]Specific business subtypes
addressstringFull formatted address
neighborhoodstringNeighborhood name
streetstringStreet address
citystringCity
statestringState / province
postalCodestringPostal / ZIP code
countryCodestringCountry code
latitudenumberGPS latitude
longitudenumberGPS longitude
distanceMilesnumberDistance from search center (when lat/lon provided)
phonestringPhone number
phoneInternationalstringInternational phone format
websitestringBusiness website URL
totalScorenumberStar rating (1.0-5.0)
reviewsCountnumberTotal review count
priceLevelstringPrice indicator ($-$$$$)
openingHoursobject[]Opening hours
isOpenbooleanCurrently open
permanentlyClosedbooleanPermanently closed
temporarilyClosedbooleanTemporarily closed
descriptionstringBusiness description
editorialSummarystringGoogle editorial summary
imageUrlsstring[]Photo URLs
imageCountnumberNumber of photos
thumbnailUrlstringMain thumbnail URL
popularTimesobject[]Weekly busyness data
currentPopularitynumberCurrent busyness level
serviceOptionsobjectDine-in, takeout, delivery, etc.
accessibilityobjectWheelchair access, etc.
reservationUrlstringReservation booking URL
menuUrlstringMenu URL
orderUrlstringOnline ordering URL

Tips for Best Results

Search Mode Guide

  • Fast: Uses wider tiles for quicker scans โ€” good for sparse areas or quick estimates
  • Default: Balanced tile size โ€” recommended for most searches
  • Thorough: Street-level scanning โ€” catches small businesses, best for dense urban areas

Maximizing Coverage

  • Use bounding box or polygon mode for systematic area coverage
  • Use thorough search mode for dense urban areas where businesses are close together
  • Use residential proxies for best success rates on large scrapes

Large-Scale Scraping

  • Concurrent scanning processes multiple tiles in parallel for faster results
  • Automatic refresh keeps sessions healthy during long runs
  • Proxy rotation distributes requests for reliable large scans
  • Resume support means you can stop and restart without losing progress
  • Streaming output pushes results to your dataset as they're found

Creating Polygon Boundaries

Use these free tools to draw custom search areas:

Copy the coordinates array from either tool directly into the polygon input field.

Pricing

$2.50 per 1,000 results - among the lowest prices on Apify for Google Maps data.

ResultsCost
100$0.25
1,000$2.50
10,000$25.00
100,000$250.00

Platform fees (compute, proxy, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n - Workflow automation
  • Google Sheets - Direct spreadsheet export
  • Slack / Email - Notifications on new results
  • Webhooks - Custom API integrations
  • Apify API - Full programmatic access

This actor is designed for legitimate business intelligence, market research, and lead generation. Users are responsible for complying with applicable laws and Google's Terms of Service. Do not use scraped data for spam, harassment, or any illegal purpose.