Google Maps Scraper
Pricing
from $0.35 / 1,000 results
Google Maps Scraper
Fast HTTP-only Google Maps scraper for places, reviews, photos, phones, emails, websites, social profiles, opening hours and lead data. Export clean business contacts at scale with no browser runtime.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer
Blynx
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
π Google Maps Business Leads Scraper
Find local businesses on Google Maps and export clean place, contact, review, photo, and lead-quality data.
Use it for lead generation, local SEO research, competitor mapping, CRM enrichment, review analysis, and market research by city, keyword, URL, Place ID, or an existing Apify dataset.
β¨ What You Get
- π’ Google Maps places: name, category, address, city, country, coordinates, Maps URL
- β Ratings and reputation: rating, reviews count, review text, reviewer, date, likes, owner replies when available
- π Business contacts: phone, website, domain, public emails, extra phones, contact pages
- π Social profiles: Facebook, Instagram, LinkedIn, Twitter/X, YouTube, TikTok, Pinterest, Discord when found on the business website
- πΌοΈ Photos: main image and spreadsheet-friendly
photo1Urltophoto5Url - π§ Direct place enrichment: scrape from Google Maps URLs, Place IDs, feature IDs, or a previous dataset
- π Lead scoring:
leadScore,contactCompletenessScore, anddataQuality - π©Ί Run diagnostics: clear status and action hints when input, filters, or Google Maps responses produce no results
π Quick Start
Search businesses by keyword and location
{"mode": "FULL","searchStringsArray": ["dentists", "orthodontists"],"locationQueries": ["Austin, TX"],"maxCrawledPlacesPerSearch": 100,"scrapePlaceDetailPage": true,"scrapeContacts": true,"maxContactPages": 3,"website": "withWebsite","placeMinimumStars": 4,"language": "en","countryCode": "US"}
Fast search cards only
{"mode": "SEARCH","searchStringsArray": ["restaurants"],"locationQueries": ["New York, USA"],"maxCrawledPlacesPerSearch": 50,"scrapePlaceDetailPage": false,"scrapeContacts": false,"scrapeReviews": false}
Reviews as separate rows
{"mode": "REVIEWS","startUrls": [{"url": "https://www.google.com/maps/place/?q=place_id:ChIJvSQIgqFZwokRFYQbJdzceSs"}],"maxReviews": 100,"reviewsSort": "newest","outputMode": "REVIEW_ITEMS"}
Enrich your own list
{"mode": "CONTACTS","datasetId": "YOUR_DATASET_ID","scrapeContacts": true,"maxContactPages": 5}
π§ Modes
| Mode | Best for | Main output |
|---|---|---|
FULL | Search + details + optional contacts/reviews | Rich place rows |
SEARCH | Fast discovery from keyword + location | Lightweight place rows |
DETAIL | You already have Maps URLs / Place IDs | Detailed place rows |
REVIEWS | Review text and ratings | Review rows or place rows with reviews |
CONTACTS | Email, phone, and social enrichment | Contact-ready lead rows |
π§© Input Guide
| Field | Description |
|---|---|
searchStringsArray | Search terms such as restaurants, plumbers, hotels, coffee shops. |
locationQueries | Cities, states, countries, neighborhoods, or ZIP/postal codes. |
maxCrawledPlacesPerSearch | Maximum places saved per search term + location pair. |
startUrls | Direct Google Maps place or search URLs. |
placeIds | Google Place IDs. |
featureIds | Google Maps feature/data IDs like 0x...:0x.... |
datasetId | Read places from a previous dataset containing url, googleMapsUrl, placeId, dataId, or featureId. |
scrapePlaceDetailPage | Adds richer place fields such as descriptions, attributes, posts, and extra links. |
scrapeContacts | Looks for public contact data on business websites. |
maxContactPages | Website pages inspected per business. |
scrapeReviews | Fetches review text and ratings when available. |
maxReviews | Maximum reviews per place. Use 1, 10, 50, etc. |
reviewsSort | relevant, newest, highest, or lowest. |
outputMode | PLACE_ITEMS keeps reviews under each place. REVIEW_ITEMS saves one row per review. |
categoryFilterWords | Keep places whose category contains at least one word from your list. |
placeMinimumStars | Skip places below a rating threshold. |
website | Keep all places, only places with websites, or only places without websites. |
skipClosedPlaces | Skip permanently closed places when the status is available. |
language / countryCode | Result language and country context. |
maxImages | Number of image URLs kept per place. |
π€ Output Views
The default dataset includes focused views so users do not have to dig through raw JSON.
| View | What it shows |
|---|---|
| Overview | Main business table: photo, name, category, address, phone, website, rating, reviews count, scores, Maps URL |
| Lead generation | Sales-ready fields: phone, emails, extra phones, website, socials, lead score, address |
| Contacts | Website contact enrichment: emails, phones, social arrays, crawled contact pages, website status |
| Reviews | One review per row when outputMode is REVIEW_ITEMS |
| Photos | Main image and photo1Url to photo5Url |
| Diagnostics | Input warnings, recoverable errors, and suggested next actions |
| All fields | Full dataset rows |
The Actor also saves a Run summary to the key-value store under OUTPUT, including status, counts, filters, diagnostics, and the dataset URL.
π§Ύ Example Place Row
{"recordType": "place","title": "La Grande Boucherie","categoryName": "French restaurant","address": "145 W 53rd St, New York, NY 10019","city": "New York","countryCode": "US","phone": "(212) 510-7714","website": "https://www.boucherieus.com/","domain": "boucherieus.com","totalScore": 4.6,"reviewsCount": 10342,"latitude": 40.7626274,"longitude": -73.9808411,"location": {"lat": 40.7626274,"lng": -73.9808411},"url": "https://www.google.com/maps/place/?q=place_id:...","imageUrl": "https://lh3.googleusercontent.com/...","leadScore": 82,"contactCompletenessScore": 70,"scrapedAt": "2026-07-07T18:38:06.495091+00:00"}
π¬ Example Review Row
{"recordType": "review","placeTitle": "La Grande Boucherie","authorName": "Ryan VanCompernolle","rating": 5,"publishedAt": "7 hours ago","text": "Great food and excellent service.","likesCount": 2,"placeId": "ChIJ...","dataId": "0x...:0x...","placeUrl": "https://www.google.com/maps/place/?q=place_id:...","scrapedAt": "2026-07-07T18:38:06.495091+00:00"}
π©Ί Example Diagnostic Row
{"recordType": "run-diagnostic","status": "INPUT_NEEDS_ATTENTION","severity": "warning","errorType": "input_error","message": "SEARCH mode requires at least one search term.","actionNeeded": "Add a search term such as restaurants, dentists, plumbers, or hotels.","scrapedAt": "2026-07-07T18:38:06.495091+00:00"}
π§ Practical Recipes
Find restaurants with websites and emails
{"mode": "FULL","searchStringsArray": ["restaurant"],"locationQueries": ["Chicago, IL"],"maxCrawledPlacesPerSearch": 200,"website": "withWebsite","scrapeContacts": true,"maxContactPages": 5}
Find businesses missing websites
{"mode": "SEARCH","searchStringsArray": ["plumbers"],"locationQueries": ["Phoenix, AZ"],"maxCrawledPlacesPerSearch": 100,"website": "withoutWebsite"}
Get the newest 10 reviews for known places
{"mode": "REVIEWS","startUrls": [{ "url": "https://www.google.com/maps/place/?q=place_id:ChIJ..." }],"maxReviews": 10,"reviewsSort": "newest","outputMode": "REVIEW_ITEMS"}
Enrich a previous run with contacts
{"mode": "CONTACTS","datasetId": "YOUR_PREVIOUS_DATASET_ID","scrapeContacts": true,"maxContactPages": 3}
β Tips for Clean Runs
- Start with a small test: 5-10 places.
- Use one search term and one location first, then scale up.
- Keep
maxReviewsreasonable for review-heavy runs. - Use
website: "withWebsite"when you want emails or social profiles. - Use the Diagnostics view and Run summary if a run returns no places.
- If filters are too strict, the run may succeed but save only a diagnostic row.
β FAQ
Can it extract emails from Google Maps directly?
Google Maps usually does not publish email addresses. The Actor looks for public emails on the business website when scrapeContacts is enabled.
Why are some contact fields empty?
Some businesses do not publish emails, extra phones, or social links. This is normal. The contactCompletenessScore helps you sort stronger leads.
How do I choose the number of reviews?
Set maxReviews. For example, 1 saves one review per place, 10 saves up to ten, and 50 saves up to fifty.
How are reviews matched to the right business?
Every review row includes placeTitle, placeId, dataId, and placeUrl, so reviews stay tied to their source place.
What if the run finishes with no places?
Open Results β Diagnostics or Run summary. The Actor saves a diagnostic row with the likely reason and next action.
Can I use a previous dataset as input?
Yes. Use datasetId. The dataset can contain url, googleMapsUrl, placeId, dataId, featureId, or cid.
π·οΈ Tags
google maps scraper Β· google maps leads Β· business contacts Β· email scraper Β· local lead generation Β· place scraper Β· google reviews Β· maps api alternative Β· crm enrichment Β· local SEO