Google Maps Scraper & Lead Scraper (No Add-on Fees) avatar

Google Maps Scraper & Lead Scraper (No Add-on Fees)

Pricing

from $2.00 / 1,000 place scrapeds

Go to Apify Store
Google Maps Scraper & Lead Scraper (No Add-on Fees)

Google Maps Scraper & Lead Scraper (No Add-on Fees)

Scrape data from Google Maps with all 60+ attributes included. Extract full business details, opening hours, and coordinates without per-detail add-on fees. Reviews available.

Pricing

from $2.00 / 1,000 place scrapeds

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

2

Monthly active users

8 days ago

Last modified

Share

Scrape every business in any city from Google Maps. This Google Maps scraper extracts full business details, opening hours, and 60+ attributes included in every result. No per-detail add-on fees. Reviews available as an add-on. Run via API, schedule runs, or integrate with webhooks.

Google Maps only shows 120 results per search. This Google Maps extractor automatically breaks that limit by searching across your entire target area and deduplicating the results. Type a city name, and get every matching business.

Why use this Google Maps scraper

Most Google Maps scrapers have two problems: they charge extra for every data field you actually need, and they cap out before you've even scraped a whole neighborhood. This actor solves both. Every result includes all 60+ attributes by default, no per-detail add-on fees, and the scraper automatically divides your target area into sections to break Google Maps' 120-result display limit.

Common use cases:

  • B2B lead generation: build prospect lists with phone numbers, websites, and business details for any industry in any city
  • Local SEO and GMB audits: compare Google My Business profiles across clients and competitors
  • Market research: analyze business density, popular categories, and price levels across regions
  • Competitive analysis: map every competitor in a market with ratings, reviews, and service offerings
  • Review and sentiment analysis: track reputation across entire markets at once
  • Site selection: find areas with high or low density of specific business types

Only need reviews, not business data? If you already have Google Maps place URLs and just want to scrape their reviews (no business details, no search-by-city), use my Google Maps Reviews Scraper instead. It's cheaper for review-only workflows because you don't pay for the base business scraping, just the reviews. The two actors work well together: scrape a market with this actor to collect place URLs, then pass those URLs into the Reviews Scraper for deep review analysis.

Google Places API alternative (no $17 per 1,000 requests)

Google's official Places API (New) costs $17 per 1,000 requests, caps at 60 results per query, and charges separately for Place Details, Photos, and Contact fields. Most third-party scrapers charge $4 per 1,000 for the base listing plus another $2-3 per 1,000 for hours, service options, and business attributes.

This actor is a Google Places API alternative that works differently:

  • All 60+ attributes included: no per-detail charges for hours, phone, website, or service options
  • Unlimited results per area: the scraper breaks the 60-result and 120-result caps by searching across sub-regions
  • No API key to manage: authenticate with your Apify token, same as any other actor
  • Reviews as optional add-on: $0.40 per 1,000 reviews, only when you enable them
  • JSON, CSV, and Excel export: direct from the Apify console or via the Dataset API

For most lead generation, market research, and local SEO use cases, this actor replaces the Google Places API entirely at a fraction of the cost.

How to scrape Google Maps by city or region

  1. Enter what you want to find in the search_query field (e.g. restaurant, plumber, dentist)
  2. Set a location: a city, region, full address, or country — the actor geocodes it automatically
  3. Cap max_results if you only need a sample, or leave it open for full coverage
  4. Optionally enable scrape_reviews to collect full review history per place
  5. Set language and country for localized results (70+ locales supported)
  6. Run the actor and export results as JSON, CSV, or Excel

The actor handles the rest: geocoding the target area, dividing it into sub-regions to bypass Google Maps' 120-result cap, searching each section, and deduplicating results across the entire area.

Input parameters

ParameterDescriptionExample
Search queryWhat to search for, just like the Google Maps search barrestaurant, plumber, hotel
LocationAny city, region, or country — geocoded automaticallyNew York, USA, Berlin, Germany, Tokyo
Max resultsCap the number of places returned100, 500, 2000
Scrape reviewsFetch the full review history for every place (on by default)true, false
Max reviews per placeLimit how many reviews to collect per place100, 500, 5000
LanguageLanguage for results (70+ locales supported)en, nl, de, ja, fr
CountryCountry code for Google localeus, be, de, jp

Just provide a search term and a location. The scraper handles the rest — geocoding the area, searching across the full region, and deduplicating results.

Use with Python

Call the actor from Python using the Apify SDK:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("thodor/google-maps-scraper-with-reviews").call(run_input={
"search_query": "restaurant",
"location": "Brooklyn, NY",
"max_results": 500,
"scrape_reviews": False,
"language": "en",
"country": "us",
})
for place in client.dataset(run["defaultDatasetId"]).iterate_items():
print(place["name"], place["phone"], place["website"])

Google Maps data extractor: what you get for every place

  • Business name, categories, type
  • Full address, street, city, country, neighborhood
  • Phone number (local + international)
  • Website URL + domain
  • Rating + review count
  • Price level
  • GPS coordinates (lat/lng)
  • Full weekly opening hours
  • Current open/closed status
  • Service options (dine-in, takeaway, delivery)
  • Accessibility (wheelchair entrance, parking, toilet)
  • Atmosphere (casual, romantic, trendy, upmarket)
  • Highlights (great coffee, live music, fireplace)
  • Offerings (vegetarian, halal, organic, alcohol)
  • Payments accepted (cards, NFC, cash)
  • Parking info
  • Photo URL
  • Place ID, CID, Google Maps path
  • Timezone

Other scrapers charge $4/1,000 for the base listing and another $2-3/1,000 for hours, service options, and business attributes. Here, everything above is included in every result.

Google Maps reviews scraper (add-on)

Enable review scraping to get the full review history for every place — text, star ratings, detailed ratings, dates, author details, owner responses, and review images.

{
"review_id": "Ci9DQUlRQUNvZENodHljRjlvT2pkRmVVVlRhazVoUjJwT2VqbEtkRWgzVUdOc2IyYxAB",
"name": "Isatta Bassie",
"reviewer_photo_url": "https://lh3.googleusercontent.com/a-/ALV-UjVPL1SQUdvuxpHveWTjFNQhM2p-HIjkqB7TLLPFXR0QboWq4BQ=s120-c-rp-mo-br100",
"reviewer_id": "109283811363605044639",
"reviewer_number_of_reviews": 5,
"is_local_guide": false,
"reviewer_url": "https://www.google.com/maps/contrib/109283811363605044639/reviews?hl=en",
"published_at_date": "2026-01-11T02:01:27Z",
"publish_at": "2 months ago",
"stars": 5,
"text": "10/10! Super friendly staff and everything was delicious. I went in anticipating oxtails but they were out, so I opted for jerk chicken, Mac and cheese and rice and peas...",
"text_translated": null,
"review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2pkRmVVVlRhazVoUjJwT2VqbEtkRWgzVUdOc2IyYxAB!2m1!1s0x0:0x148b4752f2b99ae2...",
"review_detailed_rating": [
{"category": "Food", "rating": 5},
{"category": "Service", "rating": 5},
{"category": "Atmosphere", "rating": 5}
],
"likes_count": 1,
"review_origin": "Google",
"response_from_owner_text": null,
"response_from_owner_date": null,
"review_image_urls": [
"https://lh3.googleusercontent.com/geougc-cs/ABOP9puDf15-ns4L2OZGnMjr2tuFgPevIH10FxjRdejn5Yfe3I..."
],
"review_context": "en"
}

Reviews are charged separately at $0.40 per 1,000 reviews.

Example output

{
"name": "La Donna Re's",
"place_id": "0x89c25d8a10261a7d:0x148b4752f2b99ae2",
"cid": "ChIJfRomEIpdwokR4pq58lJHixQ",
"gmap_path": "/g/11t6hj5f6q",
"address_parts": ["325 Lewis Ave", "Brooklyn, NY 11221"],
"full_address": "La Donna Re's, 325 Lewis Ave, Brooklyn, NY 11221",
"street": "325 Lewis Ave, Brooklyn, NY 11221",
"city": "Bedford-Stuyvesant",
"country": "US",
"neighborhood": "Bedford-Stuyvesant",
"timezone": "America/New_York",
"rating": 4.7,
"review_count": 117,
"price_level": "$$",
"categories": ["Soul food restaurant", "Restaurant"],
"lat": 40.684546,
"lng": -73.9351578,
"phone": "(347) 601-8264",
"phone_intl": "+1 347-601-8264",
"hours_status": "Open · Closes 9 PM",
"opening_hours": [
{"day": "Friday", "hours": "3–9 PM"},
{"day": "Saturday", "hours": "1:30–9 PM"},
{"day": "Sunday", "hours": "1:30–7 PM"},
{"day": "Monday", "hours": "Closed"},
{"day": "Tuesday", "hours": "Closed"},
{"day": "Wednesday", "hours": "3–9 PM"},
{"day": "Thursday", "hours": "3–9 PM"}
],
"photo_url": "https://lh6.googleusercontent.com/...",
"type": "SearchResult.TYPE_AMERICAN_RESTAURANT",
"additional_info": [
{"category": "From the business", "name": "Identifies as Black-owned", "value": true},
{"category": "From the business", "name": "Identifies as women-owned", "value": true},
{"category": "Service options", "name": "Delivery", "value": true},
{"category": "Service options", "name": "Takeout", "value": true},
{"category": "Service options", "name": "Dine-in", "value": true},
{"category": "Highlights", "name": "Great dessert", "value": true},
{"category": "Popular for", "name": "Lunch", "value": true},
{"category": "Accessibility", "name": "Wheelchair accessible parking lot", "value": true},
{"category": "Offerings", "name": "Comfort food", "value": true},
{"category": "Atmosphere", "name": "Casual", "value": true},
{"category": "Atmosphere", "name": "Cozy", "value": true},
{"category": "Payments", "name": "Credit cards", "value": true},
{"category": "Payments", "name": "NFC mobile payments", "value": true},
{"category": "Children", "name": "Good for kids", "value": true},
{"category": "Parking", "name": "Free street parking", "value": true}
],
"reviews": ["... see Reviews section below"]
}

Business attributes

FieldTypeDescription
namestringBusiness name
place_idstringGoogle Maps hex place ID
cidstringGoogle Maps CID
gmap_pathstringShort Google Maps path (/g/...)
address_partsstring[]Street and postal code as separate parts
full_addressstringFull formatted address
streetstringStreet address with postal code
citystringCity name
countrystringCountry code (e.g. BE, US)
neighborhoodstringNeighborhood or district
timezonestringIANA timezone (e.g. Europe/Brussels)
ratingfloatAverage rating (0-5)
review_countintNumber of reviews
price_levelstringPrice indicator (e.g. $, $$, €€)
categoriesstring[]Business categories
websitestringBusiness website URL
website_domainstringDomain name only
latfloatLatitude
lngfloatLongitude
phonestringLocal phone number
phone_intlstringInternational phone number
hours_statusstringCurrent open/closed status
opening_hours{day, hours}[]Full weekly schedule
photo_urlstringPrimary photo URL
typestringGoogle Maps place type
additional_info{category, name, value}[]Business attributes (see below)

The additional_info field contains detailed business attributes. These vary by business type but commonly include:

  • Service options — Dine-in, Takeaway, Delivery, Outdoor seating
  • Highlights — Great cocktails, Great coffee, Live music, Fireplace
  • Popular for — Lunch, Dinner, Solo dining
  • Accessibility — Wheelchair-accessible entrance, parking, seating, toilet
  • Offerings — Alcohol, Vegetarian options, Halal food, Organic dishes
  • Dining options — Breakfast, Brunch, Lunch, Dinner, Catering
  • Amenities — Bar on site, Toilet, Gender-neutral toilets
  • Atmosphere — Casual, Cosy, Romantic, Trendy, Upmarket
  • Crowd — Family friendly, Groups, LGBTQ+ friendly
  • Planning — Accepts reservations, Reservations required
  • Payments — Credit cards, Debit cards, NFC mobile payments
  • Children — Good for kids, Kids' menu, High chairs
  • Parking — Free parking, Paid street parking

All attributes use a flat {"category": "...", "name": "...", "value": true/false} format — easy to filter in spreadsheets, sort in databases, and import into any tool without nested parsing.

Google My Business scraper for local SEO

The actor works as a Google My Business scraper for SEO agencies and local businesses auditing GMB presence at scale. For every place, you get the business name, categories, rating, review count, opening hours, service options, photo URL, and 60+ additional attributes — everything visible on a GMB profile, scraped in one run.

Use it to:

  • Audit GMB profile completeness for clients
  • Compare GMB data against local competitors across entire cities
  • Track rating and review count changes over time by scheduling recurring runs
  • Export GMB data to CSV for agency reports or client dashboards

Google Maps lead generation and B2B prospecting

For B2B sales teams and agencies, this actor is a Google Maps lead scraper that builds prospect lists in minutes instead of hours. Every result includes phone number, website, full address, and business categories — the core fields you need for outbound prospecting.

Typical workflow:

  1. Pick your target industry (dentist, accountant, plumber)
  2. Pick your target geography (a city, region, or list of neighborhoods)
  3. Run the actor with reviews disabled for maximum speed
  4. Export to CSV and import directly into your CRM or cold email tool

Since all attributes are included without add-on fees, a typical 1,000-lead list costs only the base scraping price, no hidden per-field charges.

FAQ

How is this different from the Google Places API? The official Google Places API caps at 60 results per query and costs $17 per 1,000 requests. This scraper returns unlimited results per search area at a fraction of the cost, with richer data (business attributes, full hours, service options) included.

How does it get more than 120 results? Google Maps displays a maximum of 120 businesses per search view. The scraper automatically divides your target area into smaller sections, searches each one, and merges the results — giving you complete coverage of the entire area.

What locations are supported? Any location Google Maps supports. Type a city name (Paris), a region (Bavaria, Germany), a full address, or even a country. The location is geocoded automatically.

What languages are supported? All 70+ languages supported by Google Maps. Set the language parameter to any Google locale code: en, de, fr, ja, nl, es, pt, zh, ko, ar, etc.

What output formats are available? Results are available as JSON, CSV, and Excel. You can also export directly to Google Sheets via the Apify platform.

I only need reviews, not business data. Is there a cheaper option? Yes. My Google Maps Reviews Scraper is dedicated to reviews only: you pass Google Maps place URLs as input and get every review per place, up to ~25,000 per place. It's cheaper than this actor for review-only workflows because you skip the base business scraping cost. Use this actor when you need to discover businesses by search query and location, and use the Reviews Scraper when you already have the place URLs.

Are there rate limits? No artificial limits. You can run multiple searches concurrently. The scraper automatically scales across the search area.

Can I use this for lead generation? Yes. The actor is widely used as a Google Maps lead scraper for B2B prospecting. Every result includes phone numbers, websites, addresses, and business categories, so you can export directly to CSV and import into your CRM or cold outreach tool.

Can I scrape Google Maps reviews? Yes. Enable scrape_reviews in the input to get full review history: text, star ratings, detailed category ratings, dates, author details, owner responses, and review images. Reviews are charged at $0.40 per 1,000.

How is this different from Outscraper, Phantombuster, or Bright Data? Most competing Google Maps scrapers charge $4 per 1,000 for the base listing and another $2-3 per 1,000 for hours, service options, and business attributes. This actor includes all 60+ attributes in every result with no per-detail add-on fees.

Do I need a Google Maps API key to use this? No. Authenticate with your Apify token, same as any other actor. You don't need a Google Cloud project, billing account, or API key. This removes the setup friction of the official Google Maps API for most scraping use cases.

Can I use this Google Maps scraper with Python?

Yes. See the Python example above. Call the actor using the Apify SDK (apify-client), no Google Maps API key needed, authenticate with your Apify token instead. The actor works as a drop-in Python alternative to the official Google Maps API for scraping and lead generation workflows.