Google Maps Scraper
Pricing
from $1.40 / 1,000 place scrapeds
Google Maps Scraper
Scrape Google Maps places by search term and location: name, category, address, phone, website, rating, review count, opening hours and exact GPS coordinates. Optionally pull emails and social profiles from each place's website. No login or API key, export to JSON, CSV or Excel for lead generation.
Pricing
from $1.40 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
SilentFlow
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Turn any Google Maps search into a clean spreadsheet of local businesses. Pull names, addresses, phone numbers, websites, ratings, categories, coordinates, and opening hours for every place in a city, neighborhood, or custom area. Add website emails and social profiles in the same run to build ready-to-use lead lists.
Type a search term and a location, press start, and get structured JSON or Excel back in seconds. No Google API key, no login, no manual copy-paste.
How it works

โจ Why teams choose this over other Google Maps scrapers
Spending hours copying business details out of Google Maps tabs? Running scrapers that return 20 results and quit? Paying for contact enrichment as a separate tool?
- ๐บ๏ธ Real coverage, not just the first screen. Google caps each map view at around 120 places. This scraper splits dense areas into smaller cells automatically, so a search for
restaurantin a big city keeps pulling results instead of stopping early. - ๐ Every field you need in one row. Name, category, full address broken into street, city, state, postal code and country, phone in clean international format, website, rating, coordinates, Google Place ID, and a direct Maps link. The details other scrapers make you pay extra for are included by default.
- ๐ง Lead lists, not just place lists. Turn on contact enrichment and each business website is visited for emails and Facebook, Instagram, LinkedIn, X, YouTube, TikTok, Pinterest, and WhatsApp links. Emails are matched to the business domain so you get real inboxes, not vendor noise.
- ๐ฏ Stay inside your area. Strict area matching drops results whose coordinates fall outside your city, ZIP code, or custom polygon, so a search for one neighborhood does not leak in places from the next town.
- ๐ Any country, any language. Search in 16 languages and bias results by country code. Works the same in Tokyo, Sรฃo Paulo, Berlin, or Chicago.
- ๐ Targeted or broad. Sweep a whole city, or paste exact Google Maps URLs and Place IDs to refresh a known list of locations.
- โก Fast and predictable. A 45-place neighborhood search finishes in a few seconds. Clean structured output means no post-processing before you import it into your CRM or spreadsheet.
๐ฏ What you can do with Google Maps data
| Team | What they build |
|---|---|
| Sales and lead generation | Local B2B prospect lists with phone, website, email, and social links for cold outreach |
| Local SEO agencies | Competitor maps across a city: who ranks, their ratings, categories, and review counts |
| Market research | Density maps of a business category by neighborhood, region, or ZIP code |
| Franchise and expansion | Site-selection datasets comparing existing businesses and gaps across areas |
| Data and CRM teams | Enrichment of existing account lists with fresh addresses, phones, and websites |
| Delivery and logistics | Directories of restaurants, stores, or service providers by service area |
| Real estate | Neighborhood profiles counting amenities, cafes, gyms, and schools near a listing |
| Agencies and freelancers | Client-ready lead spreadsheets delivered in minutes instead of days |
๐ฅ Input parameters
Core fields:
| Field | Type | Description |
|---|---|---|
searchStrings | array | What to search for, one term per line (for example restaurant, dentist). |
locationQuery | string | The area to search, for example Brooklyn, New York, United States. |
maxItems | integer | Maximum number of places to return. Default 50. |
language | select | Result language, 16 options. Default English. |
countryCode | string | Two-letter country code to bias results, for example us, fr, de. |
Enrichment and filters:
| Field | Type | Description |
|---|---|---|
extractContactsFromWebsite | boolean | Visit each website for emails and social profile links. |
skipClosedPlaces | boolean | Skip temporarily or permanently closed places. |
placeMinimumStars | string | Keep only places rated at or above this value, for example 4.0. |
categoryFilter | array | Keep only places whose category contains one of these words. |
geoStrictMatch | boolean | Drop places whose coordinates fall outside the search area. |
maxReviews | integer | Reviews to attach per place. Experimental. Default 0. |
Advanced targeting (use instead of Location):
| Field | Type | Description |
|---|---|---|
customGeolocation | object | GeoJSON Polygon, MultiPolygon, or Point with radiusKm. |
startUrls | array | Full Google Maps place or search URLs. |
placeIds | array | Raw Google Place IDs, one per line. |
๐ Output data
Each place is one record. A typical result:
{"name": "Moka & Co","category": "Coffee shop","categories": ["Coffee shop"],"description": "Family-owned cafe known for meticulously prepared coffee and pastries","placeId": "ChIJU8L4BgBZwokRiqudELknuTI","fid": "0x89c2590006f8c253:0x32b927b9109dab8a","cid": "3654996248389069706","googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJU8L4BgBZwokRiqudELknuTI","address": "Moka & Co, 142 W 34th St., New York, NY 10001","street": "142 W 34th St.","city": "New York","state": "New York","postalCode": "10001","countryCode": "US","latitude": 40.7503639,"longitude": -73.9898075,"phone": "+16463703500","website": "https://mokanco.com/manhattan-midtown-34th-st/","domain": "mokanco.com","rating": 4.7,"searchQuery": "coffee shop","searchLocation": "New York, United States","scrapedAt": "2026-07-05T09:11:12Z"}
With contact enrichment turned on, business records also include:
{"name": "Qahwah House Coffee","website": "http://qahwahhouse.com/","emails": ["coffee@qahwahhouse.com"],"socials": {"facebook": "https://www.facebook.com/qahwahhouse","instagram": "https://www.instagram.com/qahwah_house"}}
๐๏ธ Data fields
| Category | Fields |
|---|---|
| Identity | name, category, categories, description, placeId, fid, cid, entityId, googleMapsUrl |
| Address | address, street, city, state, postalCode, countryCode, neighborhood, plusCode, latitude, longitude |
| Contact | phone, website, domain |
| Ratings | rating, reviewsCount, priceLevel |
| Status | permanentlyClosed, temporarilyClosed, openingHours |
| Enrichment | emails, socials (facebook, instagram, linkedin, x, youtube, tiktok, pinterest, whatsapp) |
| Reviews (experimental) | reviews (text, authorName, rating, relativeDate) |
| Provenance | searchQuery, searchLocation, scrapedAt |
๐ Examples
Build a local lead list
Search plumber in Phoenix, Arizona, United States, turn on contact enrichment, and get names, phones, websites, and emails ready for outreach.
Map the competition
Search coffee shop in Williamsburg, Brooklyn and compare ratings, categories, and websites across every cafe in the neighborhood.
Cover a whole city
Search restaurant in Chicago, Illinois, United States with a high place count. Dense downtown areas are split automatically so you get deep coverage, not just the first screen.
Target a custom service area Provide a GeoJSON polygon of your delivery zone and get only the businesses inside it.
Refresh a known list Paste Google Maps URLs or Place IDs for locations you already track and pull their latest details.
๐ค Copy to your AI assistant
Use the Google Maps Scraper on Apify to build a lead list.Search term: "dentist"Location: "Denver, Colorado, United States"Number of places: 200Turn on website contact enrichment.Return name, phone, website, email, and rating for each result as a table.
๐ป Integrations
Run the actor and pull results from the dataset with any language, or connect it to Make, Zapier, Google Sheets, and other tools through Apify.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("google-maps-scraper").call(run_input={"searchStrings": ["dentist"],"locationQuery": "Denver, Colorado, United States","maxItems": 200,"extractContactsFromWebsite": True,})for place in client.dataset(run["defaultDatasetId"]).iterate_items():print(place["name"], place.get("phone"), place.get("emails"))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('google-maps-scraper').call({searchStrings: ['coffee shop'],locationQuery: 'Brooklyn, New York, United States',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((p) => `${p.name} - ${p.rating}`));
Google Sheets Export a run to Excel or CSV and import it directly, or use the Apify Google Sheets integration to push results into a live sheet after every run.
๐ Performance
| Search | Places | Time |
|---|---|---|
| Coffee shops, one neighborhood | 15 | About 1 second |
| Restaurants, a dense district | 45 | About 3 seconds |
| Lead list with website enrichment | 4 | About 7 seconds (enrichment visits each site) |
Times measured on a standard run. Larger areas and contact enrichment add time proportional to the number of websites visited.
๐พ Data export
Download results as JSON, CSV, Excel, HTML, or RSS from the Apify console, or pull them through the API. Every field above is available in every format.
๐ก Tips for best results
- Add a clear location.
dentistalone can match the wrong city.dentistplusMiami, Florida, United Stateskeeps results local. - Use one location per line. Each area is resolved separately, and the place count applies per search term per location.
- Turn on strict area matching when you need only one neighborhood or ZIP code.
- Use specific search terms for cleaner lists.
vegan restaurantreturns tighter results thanfood. - For very large cities, raise the place count and let the automatic area splitting do the work.
โ FAQ
Do I need a Google Maps API key? No. The scraper works without any API key or Google account.
How many places can I get? Set any number with the place count field. Dense areas are split automatically to reach deep coverage.
Can I get emails and phone numbers? Phone numbers come from Google Maps directly. Turn on website contact enrichment to also collect emails and social profile links from each business website.
Which countries and languages are supported? Any country. Results can be returned in 16 languages, and you can bias by country code.
Can I scrape a single business? Yes. Paste its Google Maps URL or Place ID.
Can I limit results to an exact area? Yes. Provide a GeoJSON polygon or a point with a radius, or turn on strict area matching with a location.
What if a business has no website? It is still saved with all its Google Maps fields. Only the website-based emails and social links are skipped.
How fresh is the data? Every run pulls live data from Google Maps at the moment you run it.
Can I schedule regular runs? Yes. Use Apify schedules to refresh your dataset daily, weekly, or on any cadence.
โ๏ธ Legal
This scraper collects publicly available business information from Google Maps. Business contact details such as company phone numbers and addresses are public data. When you collect data that can identify individuals, you are responsible for having a lawful basis and for complying with applicable privacy laws, including the GDPR in Europe, the CCPA in California, and the PIPL in China. Use the data for legitimate business purposes such as market research and B2B outreach, and honor opt-out and deletion requests.
๐ Related scrapers
Looking for other local and business data sources? Explore our other scrapers on Apify for reviews, directories, and company data.
๐ฌ Support
Have a use case in mind or need a field that is not here yet? Start a run, see the data, and reach out through the actor's Apify page. We ship improvements based on real requests.