Google Maps Scraper API — Emails, Reviews, Photos & Leads avatar

Google Maps Scraper API — Emails, Reviews, Photos & Leads

Pricing

from $0.90 / 1,000 place scrapeds

Go to Apify Store
Google Maps Scraper API — Emails, Reviews, Photos & Leads

Google Maps Scraper API — Emails, Reviews, Photos & Leads

Google Maps scraper and Google Places API alternative: extract business names, phones, websites, hours, ratings and reviews — plus emails and 7 social profiles pulled from each place's website. Bypass Google's 120-place limit. Export JSON, CSV, Excel. From $3/1k places, no API key.

Pricing

from $0.90 / 1,000 place scrapeds

Rating

5.0

(1)

Developer

Raven

Raven

Maintained by Community

Actor stats

0

Bookmarked

62

Total users

28

Monthly active users

2 days ago

Last modified

Share

🗺️ Google Maps Scraper — Emails, Reviews & Contact Details

Extract data from thousands of Google Maps places — business name, category, full address, phone number, website, opening hours, rating, reviews, and images — and enrich every place with emails and social media profiles pulled from its website. Export to Excel, CSV, JSON, or HTML, run via API, schedule and monitor runs, or integrate with your favorite tools. No code, no Google Maps API key, no daily quotas.

🚀 Build a lead list of any local business in any city in minutes — every barbershop in Berlin, every dentist in Texas, every coffee shop in Tokyo — with the owner's email already extracted from their website.

📍 What is Google Maps Scraper?

Google Maps Scraper is a no-code web scraping tool that extracts business data from Google Maps at scale. Give it a search term (for example barber shop, dental clinic, or coffee) plus a location, and it returns every matching place with full contact details — names, addresses, phone numbers, websites, ratings, reviews, opening hours, and photos — then enriches each place with emails and social links scraped from its website.

It's a flexible, affordable Google Places API alternative: no per-request key, no small result caps, and no complicated setup — just the business data you actually need, ready to export.

🎯 What can you do with it?

  • 🧲 Lead generation — build targeted B2B lists with verified emails and phone numbers for cold outreach
  • 📍 Local SEO & GMB audits — competitor analysis, listing monitoring, and NAP citation building
  • 🍽️ Market research — analyze competitor density, ratings, and reviews in any area
  • 🛒 Franchise & market-entry research — map every competitor in a region with full contact details
  • 🤖 AI / LLM pipelines — clean, structured business data for downstream models
  • 📊 Real-estate & retail scouting — find the right neighborhood by category density

📦 What data does Google Maps Scraper extract?

GroupFields
Identificationname, place_id, google_maps_url, category, categories[], description
Addressaddress (full), city, state, zip_code, country_code (ISO-2), area (neighborhood), plus_code
Coordinateslatitude, longitude
Contactphone, website, email (primary), emails[] (all found)
Social profilesfacebook, instagram, twitter, linkedin, youtube, tiktok, telegram
Reputationrating (0–5), reviews_count, price_level ($$$$$)
Statuspermanently_closed, temporarily_closed
Hoursopening_hours (full 7-day schedule)
Reviews (add-on)reviews[]text, rating, author, publishedAt, authorAvatar, authorProfileUrl, authorId, reviewId, photos[]
Images (add-on)images[] — direct image URLs (no binaries, just links)

⚡ Why this Google Maps Scraper

  • Emails included in the base price — every place with a website is enriched with business emails. Most competing scrapers charge this as a separate add-on
  • Bypass Google's 120-place limit — turn on deepSearch and the scraper splits any city into sub-areas to return thousands of places per search term
  • Full Google reviews — pull reviews per place with text, rating, author, date, and photos
  • 7 social networks auto-extracted — Facebook, Instagram, X (Twitter), LinkedIn, YouTube, TikTok, and Telegram links from each place's website
  • International-ready — accurate address parsing worldwide: ISO-2 country code, city, state, postal code, and neighborhood, all separated cleanly
  • No code + full API — run from the UI, or via API in Python and Node.js, with scheduling, webhooks, and integrations
  • Export anywhere — Excel, CSV, JSON, or HTML; results stream in real time
  • Pay only for results — transparent pay-per-event pricing, no subscription, no minimum spend

💰 How much does it cost?

From $3 / 1,000 places — with emails included. This scraper uses Apify's pay-per-event pricing, so you only pay for what you actually extract:

EventWhen you payPrice (USD)
placeOne place pushed to the dataset$0.003
contactA unique email enriched from a website$0.002
reviewOne review attached to a place (when includeReviews is on)$0.0005
imageOne image URL attached (when includeImages is on)$0.0002

Real-world cost examples:

  • 🏪 1,000 barbershops with emails → 1,000 × $0.003 + ~400 unique emails × $0.002 ≈ $3.80
  • 🍽️ 100 restaurants + 50 reviews each + 20 photos each → $0.30 + $2.50 + $0.40 ≈ $3.20
  • 🌆 Full coverage of a mid-size city (3,000 places) → ~$10

Cap any run with Default run options → Max total charge so you never overspend. Duplicate emails are charged once per run, and junk/placeholder emails (noreply@, example.com, etc.) are filtered out before billing.

Why pay-per-event pricing?

You pay for concrete results — places, emails, reviews, images — not for compute time or opaque "credits." A run that returns 500 places costs the same whether it takes one minute or ten, so pricing is predictable and easy to budget.

🚀 How do I use Google Maps Scraper?

No coding required:

  1. Click Try for free and open the input form.
  2. Enter one or more search terms (e.g. coffee shop) and a location (e.g. Berlin, Germany).
  3. (Optional) Turn on deep search, reviews, or images, and set your limits.
  4. Click Start and watch results fill in live.
  5. Export to Excel, CSV, JSON, or HTML — or pull the data via API.

⬇️ Input

FieldTypeDefaultDescription
🔍 searchStringsArrayarraySearch terms, one per line (e.g. barber shop, dental clinic)
📍 locationQuerystringFree-text location, e.g. Washington, DC or Berlin, Germany
🏙️ city / 🗺️ state / 🌍 countrystringOptional structured location fields
🧮 maxItemsinteger100Hard cap on total results across all terms and locations — you're never charged past it. Empty = no limit
🌐 deepSearchbooleanfalseSplit the area into sub-areas to get past Google's ~120-place limit per search
🏷️ categoryFilterstringKeep only places whose category matches (e.g. Barber shop)
🗣️ languageselectenGoogle interface language
🚩 countryCodestringus2-letter country code for geolocation and currency
📧 scrapeContactsFromWebsitebooleantrueExtract emails + social links from each place's website
📭 skipPlacesWithoutEmailbooleanfalseLead-list mode — output only places with an email
🔁 skipDuplicateEmailsbooleantrueKeep only the first place per email address — booking platforms put one shared mailbox on dozens of listings
💬 includeReviewsbooleanfalseAdd-on. Attach reviews per place (text, rating, author, date, photos)
🔢 maxReviewsPerPlaceinteger20Cap reviews per place (1–5000)
🖼️ includeImagesbooleanfalseAdd-on. Attach photo URLs per place
🔢 maxImagesPerPlaceinteger20Cap images per place (1–200)
concurrencyinteger3Parallel Google sessions, each on its own IP

🟢 Quick example — every barbershop in Berlin with emails

{
"searchStringsArray": ["barber shop"],
"locationQuery": "Berlin, Germany",
"maxItems": 500,
"deepSearch": true,
"scrapeContactsFromWebsite": true
}

🟡 Example — restaurants in NYC with full review history

{
"searchStringsArray": ["italian restaurant", "ramen", "steakhouse"],
"locationQuery": "New York, NY",
"maxItems": 100,
"includeReviews": true,
"maxReviewsPerPlace": 200,
"includeImages": true,
"maxImagesPerPlace": 30
}

⬆️ Output

Every place is one row/record. View results in the table or JSON tab, or export to Excel, CSV, JSON, or HTML.

{
"place_id": "ChIJZW3FhdK3t4kRLXEtK4yueuE",
"name": "Scissors & Scotch",
"category": "Barber shop",
"categories": ["Barber shop"],
"address": "331 N St NE, Washington, DC 20002, USA",
"city": "Washington",
"state": "DC",
"zip_code": "20002",
"country_code": "US",
"area": "Near Northeast",
"plus_code": "WX4X+PH",
"latitude": 38.9068,
"longitude": -77.001,
"phone": "(202) 481-2850",
"website": "https://scissorsscotch.com/",
"email": "info@scissorsscotch.com",
"emails": ["info@scissorsscotch.com", "dc@scissorsscotch.com"],
"facebook": "https://www.facebook.com/scissorsscotch",
"instagram": "https://www.instagram.com/scissorsscotch/",
"twitter": "https://twitter.com/scissorsscotch",
"rating": 4.7,
"reviews_count": 1422,
"price_level": "$$",
"permanently_closed": false,
"temporarily_closed": false,
"opening_hours": "Monday: 9 AM–8 PM | Tuesday: 9 AM–8 PM | Wednesday: 9 AM–8 PM | Thursday: 9 AM–8 PM | Friday: 9 AM–7 PM | Saturday: 9 AM–7 PM | Sunday: 10 AM–5 PM",
"google_maps_url": "https://www.google.com/maps/search/?api=1&query=Scissors+%26+Scotch&query_place_id=ChIJZW3FhdK3t4kRLXEtK4yueuE",
"reviews": [
{
"rating": 5,
"text": "Best haircut I've had in DC. Stylist took time to understand what I wanted...",
"publishedAt": "2 months ago",
"author": "Mike Visalli",
"authorAvatar": "https://lh3.googleusercontent.com/a/...",
"authorProfileUrl": "https://www.google.com/maps/contrib/111279794912534073117?hl=en-US",
"authorId": "111279794912534073117",
"reviewId": "ChdDSUhNMG9...",
"photos": ["https://lh3.googleusercontent.com/grass-cs/..."]
}
],
"images": [
"https://lh3.googleusercontent.com/grass-cs/...",
"https://lh3.googleusercontent.com/grass-cs/..."
],
"search_query": "barber shop",
"search_location": "Washington, DC",
"scraped_at": "2026-05-12T10:15:30+00:00"
}

🌍 Languages & countries

Search in English, Spanish, French, German, Italian, Portuguese, Russian, Ukrainian, Polish, Turkish, Dutch, Japanese, Korean, and Chinese (Simplified). Address parsing is tested across 60+ countries — US, EU (DE/FR/IT/ES/NL/PL), UK, CIS (RU/UA/BY/KZ), Turkey, Japan, Brazil, and Mexico — with ISO-2 country codes auto-detected.

❓ Frequently asked questions

How does Google Maps Scraper work? You enter one or more search terms and a location. The scraper searches Google Maps just like a person would, collects every matching business, and for each place with a website it also visits that site to pull emails and social profiles. Results stream into your dataset as they're found.

What are the disadvantages of the Google Maps API? The official Google Places API requires an API key and billing, caps results (for example a maximum of 5 reviews per place with no pagination), limits how many places you can pull per query, and doesn't return emails or social profiles at all. This scraper has no key, higher limits, and enriches each place with contact data Google's API never exposes.

Can I scrape places from multiple locations at once? Yes. Add multiple search terms, and combine with deepSearch to cover an entire city or region and get past Google's ~120-place limit per area.

Can I extract Google Maps reviews? Yes — enable includeReviews to attach reviews per place with text, rating, author, date, and photos, up to your maxReviewsPerPlace cap.

Can I get emails and phone numbers for lead generation? Yes. Phone numbers come straight from Google Maps, and emails plus social links are extracted from each place's website — included in the base price. Turn on skipPlacesWithoutEmail for a clean lead list.

Can I integrate Google Maps Scraper with other apps? Yes. Connect it to Make, Zapier, Google Sheets, Slack, and more, or trigger runs and pull data with webhooks and the Apify API.

Can I use Google Maps Scraper as its own API, in Python or Node.js? Yes. Every run and dataset is available through the Apify API, with ready-made Python and JavaScript client libraries, a CLI, and an MCP server.

Is it legal to scrape Google Maps data? Scraping publicly available business data is generally legal. This scraper only collects public information (names, addresses, phones, public websites, ratings, and reviews). You are responsible for how you use the data and for complying with applicable laws such as GDPR/CCPA.

📞 Support & feedback

Found a bug or need a feature? Email africanec@gmail.com — usually fixed and redeployed within 24 hours.

To speed up debugging you can share run data with the developer: Apify Security Settings"Share run data with developers" → enable for this Actor.