Google Maps Scraper | $0.25/1K Results πŸ’° avatar

Google Maps Scraper | $0.25/1K Results πŸ’°

Pricing

from $0.25 / 1,000 results

Go to Apify Store
Google Maps Scraper | $0.25/1K Results πŸ’°

Google Maps Scraper | $0.25/1K Results πŸ’°

πŸ”₯ $0.25/1K resultsπŸ”₯ **CHEAPEST** Google Maps Scraper on Apify β€” 10Γ— cheaper than competitors. Proxies & platform costs included. Results in seconds. Extract names, phones, addresses, ratings, hours & more. Multi-query, up to 200 results per search.

Pricing

from $0.25 / 1,000 results

Rating

5.0

(31)

Developer

ScraperLink

ScraperLink

Maintained by Community

Actor stats

66

Bookmarked

5.5K

Total users

860

Monthly active users

9.1 hours

Issues response

a day ago

Last modified

Share

Google Maps Scraper

From $0.25 per 1,000 Google Maps results. Detail enrichment costs $0.25 per 1,000 places, and full reviews cost $0.25 per 1,000 reviews returned.

Pull structured business data from Google Maps at a fraction of what other actors charge. Every Google Maps run is fast, lightweight, and billed only for Google Maps results you actually receive β€” each Google Maps business listing lands as its own row in the dataset.

Compass charges $4.00 per 1,000 places without a pricing discount and $1.50 at its highest discount tier. This actor costs $0.50 and $0.25 at the corresponding tiers β€” 6–8Γ— cheaper, with rich Google Maps data and straightforward result-based pricing.


What makes this Google Maps scraper different

This Google Maps actorTop competitor
Base price per 1,000 Google Maps resultsFrom $0.25$1.50+
Detail enrichment: Place Details, images, and Popular Times+$0.25 per 1,000 placesVaries
Full Google reviews+$0.25 per 1,000 reviewsOften $0.30+
Google Maps data fields per result80+~20
Google Maps output organized into tabs6 tabsBasic table
Bulk Google Maps queries in one runYesYes
Google Maps results as individual rowsYesSometimes nested
Max Google Maps results per query200 normally; 500 with area search120–200

Choose your searches and optional add-ons, then receive one structured dataset row per place.


Google Maps data you get (80+ fields across 6 tabs)

Overview

Name, rating, review count, price level, category, full address, website, phone, and direct Google Maps URL β€” everything you need at a glance from Google Maps.

Contact Info

Full Google Maps address broken into components (street, number, neighborhood, city, postal code, state, country), domain, all three phone formats (international, formatted, digits-only), Google Maps coordinates (lat/lng), plus code, and the building or complex the business is located in.

Hours

Live Google Maps open/closed status, weekly opening hours, service-specific hours (lunch, dinner, brunch, happy hour, and more), and booking/reservation links from Google Maps.

Ratings & Reviews

Google Maps total score, star rating, rating count, review count, full 1–5 star distribution, price tier, and optional full reviews with reviewer metadata, dates, text, photos, ratings, and owner responses.

Media & Identity

Google Maps Place ID, Data ID, CID, FID, Google Maps URL, optional image galleries and contributor attribution, thumbnail, logo, owner information, menus, order links, and related places.

Metadata

Original Google Maps search query, rank and position, language, advertisement flag, timezone, temporarily/permanently closed flags, about text, dynamic Google place tags and attribute groups (service options, highlights, offerings, dining options, accessibility, amenities, atmosphere, crowd, planning, payments, parking, and any future groups Google returns), plus optional compact Popular Times and live busyness data.


Input

FieldTypeRequiredDefaultDescription
querystring listβ€”One or more Google Maps search queries; optional with URLs or Place IDs
startUrlsURL listβ€”Direct Google Maps place URLs; API object entries may include userData, returned as inputUserData
placeIdsstring listβ€”Direct Google Maps Place IDs; API object entries may include userData, returned as inputUserData
locationstringβ€”Named location separate from the search term; explicit geometry takes precedence
locationsstring listβ€”Run every query in every listed location; replaces location when provided
latitude, longitudenumberβ€”Precise Google Maps search center
radiusKmnumberβ€”Search radius around the coordinates
boundingBoxobjectβ€”Area as south, west, north, east
polygonarrayβ€”Area as [latitude, longitude] points
customGeolocationobjectβ€”Area as a GeoJSON Polygon using [longitude, latitude] coordinates; takes precedence over polygon
gridSpacingKmnumber2Coverage spacing for area searches
searchWorkersinteger4Concurrent map-center searches; from 1 to 4
skipClosedPlacesbooleanfalseExclude temporarily or permanently closed places before saving or billing
geoStrictMatchbooleantrueExclude results whose coordinates fall outside an explicit radius, bounding box, or polygon
keepUnverifiedLocationsbooleantrueKeep service-area businesses and places for which Google exposes no address
skipPlacesNotMatchingSearchbooleanfalseKeep only results whose title or Google categories match a meaningful search term
numinteger200Unique results per query; up to 500 with an explicit area search
glstringusCountry for Google Maps results β€” match this to the country you're searching in (ca, gb, de, etc.)
hlstringenInterface language for Google Maps results (fr, es, de, etc.)
languagesstring listβ€”Run every query or direct source once per language; replaces hl when provided
placeDetailsbooleanfalseInclude descriptions, amenities, accessibility, menus, booking options, related places, and additional metadata. Adds $0.25 per 1,000 returned places.
includeImagesbooleanfalseInclude available image galleries, dimensions, identifiers, and capture dates. Uses the same place add-on charge.
includeImageAuthorsbooleanfalseInclude available contributor identifiers and Google Maps profile links. Uses the same place add-on charge.
maxImagesinteger20Maximum images retained per place, up to 100
popularTimesbooleanfalseInclude Popular Times when Google provides it. Adds $0.25 per 1,000 places with Popular Times data; unavailable places are not charged unless another detail option is enabled.
reviewsbooleanfalseFetch full Google review records. Adds $0.25 per 1,000 reviews actually returned.
maxReviewsinteger10Maximum reviews per place, up to 1,000
reviewsSortstringmost_relevantmost_relevant, newest, highest_rating, or lowest_rating
fieldsstringβ€”Comma-separated list of Google Maps fields to keep β€” leave blank to get everything

Example: multi-city Google Maps lead generation

{
"query": [
"personal injury lawyers in houston",
"personal injury lawyers in dallas",
"personal injury lawyers in austin"
],
"num": 200,
"gl": "us",
"hl": "en"
}
{
"query": ["coffee shops in london"],
"num": 100,
"gl": "gb",
"hl": "en"
}

Example: multiple languages and a strict GeoJSON area

{
"query": ["restaurants"],
"languages": ["en", "fr"],
"gl": "ca",
"num": 500,
"geoStrictMatch": true,
"customGeolocation": {
"type": "Polygon",
"coordinates": [[
[-79.50, 43.60],
[-79.20, 43.60],
[-79.20, 43.80],
[-79.50, 43.80],
[-79.50, 43.60]
]]
}
}
{
"query": ["restaurants in toronto"],
"num": 200,
"gl": "ca",
"hl": "en",
"popularTimes": true
}

Example: include place details and attributed images

{
"placeIds": ["ChIJ243-C381K4gRHMKWCGU86iM"],
"placeDetails": true,
"includeImages": true,
"includeImageAuthors": true,
"maxImages": 20
}

Example: include reviews

{
"query": ["restaurants in toronto"],
"num": 100,
"gl": "ca",
"reviews": true,
"maxReviews": 20,
"reviewsSort": "newest"
}

Add-on pricing

Detail enrichment and full review records are optional paid add-ons. Add-on rates are fixed across every Apify plan.

Apify pricing tierBase resultsDetail enrichmentBase + Detail enrichment
No discount$0.50 / 1,000$0.25 / 1,000$0.75 / 1,000
Bronze$0.45 / 1,000$0.25 / 1,000$0.70 / 1,000
Silver$0.40 / 1,000$0.25 / 1,000$0.65 / 1,000
Gold$0.25 / 1,000$0.25 / 1,000$0.50 / 1,000

Detail enrichment is charged once for each returned place when Place Details, Images, or image attribution is enabled. Place Details includes Google's payload-driven place tags and all available attribute groups rather than a hardcoded category list. Popular Times-only requests are charged only for places where Google returns Popular Times data. Enabling Popular Times together with another detail option does not multiply the charge. Google does not publish every field for every business, so some enriched values may be null.

Full reviews are charged separately at $0.25 per 1,000 review records actually returned. Billing uses the number of reviews received, not maxReviews, so unavailable reviews are never charged. Base result, Detail enrichment, and review charges are additive when enabled together.

total cost = base result charge + optional Detail enrichment + actual review records Γ— $0.00025


Sample Google Maps result

{
"query": "restaurants in toronto",
"searchString": "restaurants in toronto",
"rank": 1,
"position": 1,
"title": "Black+Blue Toronto",
"categoryName": "Restaurant",
"type": "Restaurant",
"categories": [
"Restaurant",
"Brunch restaurant",
"Event venue",
"Fine dining restaurant",
"Lounge bar",
"Seafood restaurant",
"Steak house",
"Sushi restaurant",
"Wine bar"
],
"types": [
"Restaurant",
"Brunch restaurant",
"Event venue",
"Fine dining restaurant",
"Lounge bar",
"Seafood restaurant",
"Steak house",
"Sushi restaurant",
"Wine bar"
],
"address": "130 King St W, Toronto, ON M5X 2A2, Canada",
"neighborhood": "Old Toronto",
"street": "130 King St W",
"streetNumber": "130",
"city": "Toronto",
"postalCode": "M5X 2A2",
"state": "Ontario",
"countryCode": "CA",
"locatedIn": "Old Toronto",
"timezone": "America/Toronto",
"totalScore": 4.7,
"rating": 4.7,
"reviewsCount": 5589,
"ratingCount": 5589,
"reviewsDistribution": null,
"priceLevel": "CA$100 or above",
"phone": "+1 647-368-8283",
"phoneNumber": "(647) 368-8283",
"phoneUnformatted": "+16473688283",
"website": "https://blackandbluesteakhouse.ca/toronto-home/",
"domain": "blackandbluesteakhouse.ca",
"placeId": "ChIJ243-C381K4gRHMKWCGU86iM",
"dataId": "/g/11s9wnk_vb",
"cid": "2587947340511232540",
"cidHex": "0x882b357f0bfe8ddb:0x23ea3c650896c21c",
"fid": "0x882b357f0bfe8ddb:0x23ea3c650896c21c",
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ243-C381K4gRHMKWCGU86iM",
"url": "https://www.google.com/maps/search/?api=1&query=Black%2BBlue+Toronto&query_place_id=ChIJ243-C381K4gRHMKWCGU86iM",
"imageUrl": "https://lh3.googleusercontent.com/gps-cs-s/APNQkA...",
"thumbnailUrl": "https://lh3.googleusercontent.com/gps-cs-s/APNQkA...",
"logoUrl": "https://lh3.googleusercontent.com/-ih84iASeZ7Y/AAAAAAA.../photo.jpg",
"owner": {
"name": "Black+Blue Toronto (Owner)",
"googleId": "102477914189084708456"
},
"location": {
"lat": 43.6480996,
"lng": -79.3831247
},
"latitude": 43.6480996,
"longitude": -79.3831247,
"plusCode": null,
"temporarilyClosed": null,
"permanentlyClosed": null,
"openingHours": {
"Friday": "11:30 AM–12 AM",
"Saturday": "10:30 AM–12 AM",
"Sunday": "10:30 AM–12 AM",
"Monday": "11:30 AM–12 AM",
"Tuesday": "11:30 AM–12 AM",
"Wednesday": "11:30 AM–12 AM",
"Thursday": "11:30 AM–12 AM"
},
"openingHoursDetailed": [
{ "day": "Friday", "hours": ["11:30 AM–12 AM"] },
{ "day": "Saturday", "hours": ["10:30 AM–12 AM"] },
{ "day": "Sunday", "hours": ["10:30 AM–12 AM"] },
{ "day": "Monday", "hours": ["11:30 AM–12 AM"] },
{ "day": "Tuesday", "hours": ["11:30 AM–12 AM"] },
{ "day": "Wednesday", "hours": ["11:30 AM–12 AM"] },
{ "day": "Thursday", "hours": ["11:30 AM–12 AM"] }
],
"openingHoursState": "Open Β· Closes 12 AM",
"serviceHours": {
"Lunch": { "Friday": "11:30 AM–2 PM" },
"Happy hours": { "Friday": "2:30–5:30 PM" },
"Kitchen": { "Friday": "11:30 AM–12 AM" },
"Dinner": { "Friday": "3 PM–12 AM" },
"Brunch": { "Friday": "Closed" }
},
"bookingLinks": [
"https://party-request.tripleseat.com/venues/8qsUeRbI/?rwg_token=...",
"https://www.google.com/maps/reserve/v/dine/c/DUtUFyMlWBE?source=pa",
"https://party-request.tripleseat.com/venues/8qsUeRbI/?rwg_token=..."
],
"popularTimesStatus": "unavailable",
"popularTimes": null,
"popularTimesLiveText": null,
"popularTimesLivePercent": null,
"about": null
}

Google Maps use cases

  • Lead generation β€” Build targeted prospect lists from Google Maps by business type and location
  • Competitor research β€” Monitor Google Maps competitor ratings, hours, and pricing across cities
  • Market analysis β€” Map Google Maps business density and coverage in any region
  • Directory building β€” Populate local business directories with verified Google Maps contact data
  • CRM enrichment β€” Append Google Maps phone, website, coordinates, and hours to existing records

Notes

  • Multiple Google Maps queries run in one actor invocation β€” no need to start separate Google Maps runs per city or keyword.
  • Set gl to match the country you're targeting for the most accurate local Google Maps results (gl=ca for Canada, gl=gb for UK, gl=de for Germany).
  • Use fields to trim Google Maps output to only the columns you need β€” useful for large Google Maps runs where you want a lean dataset.
  • When popularTimes is enabled, its output fields are included even when fields contains a custom field list.
  • When place details or images are enabled, their output fields are included even when fields contains a custom field list.
  • Popular Times is not available for every Google Maps place. Check popularTimesStatus for available or unavailable.
  • Popular Times is returned as a compact day -> hour -> occupancy percent map.
  • Direct Google Maps URLs and Place IDs can be used without a text query.
  • Radius, bounding-box, and polygon inputs are processed incrementally and returned places are filtered to the requested area.
  • Duplicate places from overlapping centers, continuation requests, or multiple inputs are returned and charged once per run. The query field identifies the first input that emitted the place.
  • Results are written incrementally. The CHECKPOINT key-value-store record can resume an interrupted run without retaining full result rows in Actor memory.
  • A restarted execution can paste a prior run's CHECKPOINT record into resumeState. The input fingerprint must match, and the new run continues at the saved query and map-center offset.
  • The 500-place area limit applies per query, not per Actor run. A list of 100 queries continues through all 100 and can therefore emit up to 50,000 rows before run-wide deduplication.
  • Review output is limited by maxReviews; fewer reviews may be returned when Google has fewer available.
  • Failed or empty sources are logged and saved in the run's ERRORS key-value-store record; they are not written to the result dataset or billed as results.
  • Rich details can include image galleries, contributor attribution, review links, descriptions, accessibility, amenities, menus, order links, and related places.