๐ Google Maps Leads Scraper
Pricing
from $4.90 / 1,000 results
๐ Google Maps Leads Scraper
Scrape Google Maps into ready-to-use business leads: name, address, phone, website, rating, reviews, hours, categories and socials. Search by term and location or paste Maps URLs. Rich filters, no API key, results streamed live.
Pricing
from $4.90 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
3
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
What is Google Maps Leads Scraper?
Google Maps Leads Scraper turns Google Maps searches into ready-to-use business lead lists. Enter a search term and a location, or paste Maps links, and get names, addresses, phone numbers, websites, ratings, emails and social profiles. No API key is needed. From $0.0049 per lead on the Gold plan.
Just add a search term such as coffee shop, add a place such as Austin, Texas, and click Start. No coding is needed. Typical ways to use it:
- Lead generation for agencies: Google Maps lead generation for agencies and local businesses starts with a lead list by category and city, imported into your CRM. Extract business leads from Google Maps by niche, then generate B2B leads from Google Maps for each client.
- B2B prospecting: use it as a prospecting tool for B2B lead generation on Google Maps. Build a lead list for sales prospecting with websites, phones and emails, and find local business phone numbers in one run. It shows how to scrape Google Maps for B2B leads without manual copying.
- Cold email lead list: build a cold email lead list for local businesses, or Google Maps leads for cold email outreach, by keeping places with a website and checking each email.
- Find businesses without a website: the Website filter returns businesses without websites as leads. It works as a Google Maps missing website finder. Google Maps no website leads make good web design prospects.
- Local market research: compare ratings, categories and opening status across a city, county or postal code.
- Scheduled list building: run the same search on a schedule so your lead data stays fresh.
Because it runs on Apify, you also get the API, scheduling, webhooks, integrations and export of Google Maps data to CSV, Excel, JSON, XML or HTML. It works as a Google Maps scraper without an API key.
What can Google Maps Leads Scraper do?
- ๐ Google Maps extractor for bulk search: run many search terms in one run, with places de-duplicated across the whole run.
- ๐ง Google Maps email extractor: add emails, phone numbers and eight kinds of social profile links for businesses that have a website.
- ๐ฏ Google Maps lead finder with filters: category keywords, minimum rating, name matching, with or without a website, skip closed places.
- ๐ Google Maps contact extractor: each lead can carry a listing phone, website phones and social media links in one row.
- ๐ Scraper by city or zip code: use a free-text location, or city, county, state and postal (zip) code, plus country and language. Get Google Maps leads by category and city.
- ๐ Start from Maps links: paste place links instead of search terms.
- โ Check emails: optionally flag disposable, free-mail and role addresses and whether each email looks deliverable.
What data can Google Maps Leads Scraper extract?
Every lead is one dataset item. These are the exact field names.
| Data | Fields |
|---|---|
| ๐ช Business | title, description, categoryName, categories |
| ๐ Address | address, street, neighborhood, city, state, postalCode, countryCode |
| ๐งญ Location | location (lat, lng), timeZone |
| ๐ Phone from the listing | phone, phoneUnformatted |
| ๐ Website | website |
| โญ Rating | totalScore |
| ๐ Status and hours | todayHours, openStatusText, permanentlyClosed, temporarilyClosed |
| ๐ Attributes and photo | additionalInfo, imageUrl |
| ๐ Identifiers and link | placeId, cid, googleKgId, url |
| ๐ Search context | rank, searchString |
| ๐ง Website contacts | emails, phones, phonesUncertain |
| ๐ Social profiles | linkedIns, twitters, instagrams, facebooks, youtubes, tiktoks, pinterests, discords |
| โ Email checks | emailsVerification |
| ๐ซ Always empty | price, reviewsCount, claimThisBusiness |
Each lead carries Google Maps ratings and opening hours data, and coordinates as latitude and longitude data, in one record. Google Maps social media links appear in the social fields.
Note:
website,phoneanddescriptionare empty when the place does not list them.emails,phones,phonesUncertainand the social fields are filled only when the place has a website and Collect emails & social profiles is on.emailsVerificationis filled only when Verify email addresses is on.
What data can't Google Maps Leads Scraper extract?
- Review text and review counts:
reviewsCountis alwaysnull. - Price level and ownership status:
priceandclaimThisBusinessare alwaysnull. - The full weekly schedule: only
todayHoursandopenStatusTextare returned.
For a different lead workflow, see the Google Maps Email And Phone Number Scraper.
How to scrape Google Maps leads
This Actor is designed for an easy start, even if you have never extracted data from the web before.
- Create a free Apify account with your email.
- Open Google Maps Leads Scraper.
- Add one or more search terms in Search terms (
searchStringsArray). - Enter a Location (
locationQuery) and set Places per search term (maxCrawledPlacesPerSearch). - Switch filters on or off, such as Website filter or Minimum rating.
- Click Start and wait for the run to finish.
- Download your leads in JSON, CSV, Excel, XML or HTML from the Output tab.
How much does it cost to scrape Google Maps?
This Actor uses pay-per-event pricing: you pay for each lead saved to the dataset, and Apify platform usage is billed in addition. The price per lead depends on your Apify plan.
| Plan | Price per lead | Price per 1,000 leads |
|---|---|---|
| Free | $0.007 | $7.00 |
| Bronze | $0.0054 | $5.40 |
| Silver | $0.0056 | $5.60 |
| Gold | $0.0049 | $4.90 |
A small start charge applies to every run: $0.00005 per GB of memory, minimum one event. The default memory is 4,096 MB (4 GB), so each run starts with 4 events, which is $0.0002.
Worked example: collecting 1,000 leads on the Gold plan costs $4.90 for results plus the $0.0002 start charge, with platform usage billed in addition. Collecting 500 leads on the Free plan costs $3.50.
Is scraping Google Maps free?
You can start for free. The Apify Free plan includes $5 of monthly credit, which covers about 714 leads at the Free price of $0.007 per lead ($5 divided by $0.007), before platform usage. See the pricing tab for all events.
Input
The only required input is Search terms. Set the input in the Actor interface or send it as JSON through the API. This example searches for coffee shops in Austin and collects 20 places:
{"searchStringsArray": ["coffee shop"],"locationQuery": "Austin, Texas","maxCrawledPlacesPerSearch": 20,"proxyConfiguration": {"useApifyProxy": false}}
See the input schema for the full description of every field.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchStringsArray | array | Yes | none | What to look for, one term per line. Every term is searched separately. |
locationQuery | string | No | empty | Free-text place such as Berlin, Germany. |
maxCrawledPlacesPerSearch | integer | No | 20 | Places to collect per search term (1 to 5000). |
startUrls | array | No | empty | Direct Google Maps place links. |
language | string | No | en | Language of names, categories and descriptions. |
countryCode | string | No | us | Country view to search from. |
city, state, county, postalCode | string | No | empty | Precise area fields, combined into one search area. |
categoryFilterWords | array | No | empty | Keep a business only if one word appears in its categories or description. |
searchMatching | string | No | all | all, only_includes or only_exact name matching. |
placeMinimumStars | string | No | empty | Minimum rating, from two to fourAndHalf. |
website | string | No | allPlaces | allPlaces, withWebsite or withoutWebsite. |
skipClosedPlaces | boolean | No | false | Leave out closed businesses. |
scrapeWebsiteContacts | boolean | No | true | Collect emails, phones and social links from each business website. |
contactMaxSubpages | integer | No | 3 | Extra contact or about pages per website (0 to 10). |
skipBigChains | boolean | No | true | Skip contact collection for a short list of global chains. |
verifyEmails | boolean | No | false | Check every email found. |
proxyConfiguration | object | No | {"useApifyProxy": false} | Optional network settings. Leave the default unless you need your own. |
browserFallback | boolean | No | true | Adds an extra retry step for difficult requests. |
maxConcurrency | integer | No | 5 | Business websites opened at the same time (1 to 20). |
requestDelaySeconds | number | No | 0.8 | Pause between requests (0 to 10). |
maxRetries | integer | No | 3 | Retries per request (1 to 10). |
Location fields
Use either locationQuery or the precise fields. If locationQuery is filled, it is used and city, county, state and postalCode are ignored.
- โ
Good:
"locationQuery": "Manhattan, NYC" - โ
Good:
"city": "Miami", "state": "Florida"withlocationQueryempty - โ Bad:
"locationQuery": "Austin"together with"postalCode": "78701"(the postal code is ignored)
Warning: Location is not applied to links in
startUrls. With no location at all, the search is not limited to any area.
Places per search term and filters
maxCrawledPlacesPerSearch limits how many places are collected per term before your filters run. Filters such as placeMinimumStars, website, categoryFilterWords and skipClosedPlaces then remove places, so you can receive fewer leads than the limit.
- โ Good: raise the limit when you use strict filters.
- โ Bad: expect exactly 20 leads when
placeMinimumStarsisfourand the limit is 20.
Warning: Unrated places are dropped whenever a minimum rating is set.
Google Maps links
Paste place links into startUrls to collect specific businesses, one link per line. The business named in the link is looked up and the exact match is preferred in the results.
- โ Good: a link that opens one business on Google Maps.
- โ Bad: a link to your own saved list or to a page that is not a business.
Output
Leads are saved to the run dataset and appear in the Output tab as they are found. Choose a table view (Lead Overview, Contacts, Social Profiles, Location & Map, Business Profile, Email Verification or Source & IDs), select only the fields you need, and download in JSON, CSV, Excel, XML or HTML.
JSON example
Results for the input example above, with one lead shown:
{"rank": 1,"searchString": "coffee shop","title": "Example Coffee Roasters","description": "Neighborhood coffee shop.","price": null,"categoryName": "Coffee shop","categories": ["Coffee shop", "Cafe"],"address": "100 Example Street, Austin, TX 78701, United States","neighborhood": "Downtown","street": "100 Example Street","city": "Austin","postalCode": "78701","state": "Texas","countryCode": "US","website": "https://www.example.com/","phone": "(512) 555-0100","phoneUnformatted": "+15125550100","claimThisBusiness": null,"location": {"lat": 30.2672, "lng": -97.7431},"totalScore": 4.6,"permanentlyClosed": false,"temporarilyClosed": false,"placeId": "ChIJexample0000000001","cid": "0x1111111111111111:0x2222222222222222","googleKgId": "/g/example","url": "https://www.google.com/maps?cid=1234567890","imageUrl": "https://www.example.com/photo.jpg","timeZone": "America/Chicago","todayHours": "7 am to 6 pm","openStatusText": "Open","additionalInfo": {"Accessibility": [{"Wheelchair accessible entrance": true}]},"reviewsCount": null,"emails": ["hello@example.com"],"phones": ["+15125550101"],"phonesUncertain": [],"linkedIns": [],"twitters": [],"instagrams": ["https://www.instagram.com/example"],"facebooks": ["https://www.facebook.com/example"],"youtubes": [],"tiktoks": [],"pinterests": [],"discords": [],"emailsVerification": []}
Email verification example
With verifyEmails set to true, emailsVerification contains one object per email:
{"emailsVerification": [{"email": "hello@example.com","free": false,"role": true,"error": "","quality": "good","result": "ok","subResult": "accepted_email"}]}
Run summary example
Each run also saves a run-summary record in the key-value store:
{"source": "google-maps","scrapedAt": "2026-01-01T12:00:00+00:00","leads": 20,"searches": 1,"placesFound": 20,"placesSkippedByFilters": 0,"leadsWithEmail": 12,"leadsWithPhone": 19,"leadsWithWebsite": 15,"leadsWithSocialProfile": 10,"emailsCollected": 18,"durationSeconds": 45.2,"perSearch": [{"search": "coffee shop Austin, Texas", "found": 20, "kept": 20}]}
Notes and limitations
- Only today's opening hours are returned, not the full week.
price,reviewsCountandclaimThisBusinessare present in every row but alwaysnull.- A phone number from the listing is in
phone. Numbers found on websites are inphones, and less certain ones are inphonesUncertain. - Not every business publishes an email, so some leads have an empty
emailslist.
Tips and advanced usage
How many results can you scrape with Google Maps Leads Scraper?
The number of leads depends on how many places match your search, your filters, and the limit you set. A single search term returns at most about 600 places in one run, even if the limit is higher. The best way to know for your use case is a quick test run with 10 to 20 places.
How to get faster or cheaper results
- Lower
maxCrawledPlacesPerSearchfor a sample before a full run. - Set
contactMaxSubpagesto 0 or 1 to finish faster when you only need the homepage contacts. - Turn off
scrapeWebsiteContactsif you only need listing data. - Split a large city into several searches by postal code to reach more places.
- Keep
verifyEmailsoff unless you need the extra checks.
Known issues
- While
skipBigChainsis on, contact collection is skipped for a short list of global chains, so those leads have empty contact lists. - Businesses that publish no website or no email return empty contact lists.
Integrations and API
Can I use Google Maps Leads Scraper as an API?
Yes. The Apify API gives you programmatic access to this Actor: start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. See the API tab for ready-to-use code.
How to scrape Google Maps with Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("data_minds/google-maps-leads-scraper").call(run_input={"searchStringsArray": ["coffee shop"],"locationQuery": "Austin, Texas","maxCrawledPlacesPerSearch": 20,"proxyConfiguration": {"useApifyProxy": False},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["emails"])
Can I integrate Google Maps Leads Scraper with other apps?
Yes. Extract leads from Google Maps to Google Sheets, Make, Zapier, Slack and more through Apify integrations. Use webhooks to trigger an action when a run finishes, and use Apify schedules to rerun a search daily, weekly or monthly.
Can I use Google Maps Leads Scraper with AI agents (MCP)?
Yes. Connect it to Claude and other AI assistants through the Apify MCP server. Open the MCP tab for setup steps.
Other Google Maps scrapers
| Actor | What it does |
|---|---|
| ๐ง Google Maps Email And Phone Number Scraper | Finds business emails and phone numbers behind Google Maps places, with email verification and generic-address filters. |
| ๐ Dubai Real Estate Scraper โ Unit Number & DLD Permit Checker | Scrape Dubai real estate listings and get the DLD-verified unit number, RERA permit status, price, size and agent contacts. |
| ๐ฏ Website Lead Intelligence | Turns a list of company websites into a scored outreach list with verified emails and named decision-makers. |
| ๐ Podcast Directory Scraper โ Host Contacts & Emails | Search the Apple Podcasts directory by keyword, chart or link and get host emails, owner names, websites, social profiles, ratings, publishing... |
FAQ
Is it legal to scrape Google Maps?
Web scraping is generally legal when you extract publicly available data, but respect personal data rules such as GDPR and the site's terms. Collect personal data only for a legitimate reason. Read Is web scraping legal? for background. This is not legal advice; consult a lawyer.
How does Google Maps Leads Scraper work?
You give it search terms and a location, or Maps links. The run collects the matching businesses, applies your filters, adds contact details from each business website if you enabled that option, and saves one lead per business to the dataset. You then export the results or fetch them through the API.
Why scrape Google Maps leads?
Google Maps lists local businesses with their category, address and rating. Collecting that data into a spreadsheet lets you build prospect lists for sales, find businesses without a website for web design offers, compare competitors in a city, and prepare cold email outreach, instead of copying details by hand one listing at a time.
Can I get emails from Google Maps?
Yes, when the business has a website. Keep Collect emails & social profiles on, and the Actor adds any emails, phone numbers and social links it finds on that website to the lead. Businesses that publish no email return an empty list. You can also turn on email verification to flag weak addresses.
Why am I getting fewer results than expected?
The limit applies to places collected before your filters. Minimum rating, website filter, category keywords, name matching and closed-place filters remove places afterwards. Duplicate places across search terms are also removed. Raise the places limit, loosen the filters, widen the location, or split a large area into several searches.
How do I find businesses without a website?
Set the Website filter to withoutWebsite and run your search. Only places that list no website are saved. You can combine it with a minimum rating and a category word to focus on well-rated businesses in one niche, which makes a useful prospect list for web design or marketing services.
Can I export Google Maps leads to CSV or Excel?
Yes. Every run stores results in a dataset that you can download as JSON, CSV, Excel, XML or HTML. Pick a table view or select only the fields you need first. You can also send the results to Google Sheets with an integration or read them through the Apify API.
Google Maps Leads Scraper not working?
First, check the run log and the input. Make sure Search terms is filled, the location is spelled correctly, and your filters are not too strict. Then try a smaller test run. If the problem continues, open an issue on the Issues tab with your run link so the team can look into it.
Support and feedback
Found a bug or have a feature request? Please create an issue on the Issues tab.
Need a custom solution or more data? Contact us at hello.dataminds@gmail.com.
Built and maintained by the data_minds team on Apify. This Actor is an independent tool, is not affiliated with or endorsed by Google Maps, and you are responsible for using the data in line with applicable laws and terms.