Google Maps Scraper avatar

Google Maps Scraper

Pricing

from $1.40 / 1,000 place scrapeds

Go to Apify Store
Google Maps Scraper

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

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

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

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 restaurant in 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

TeamWhat they build
Sales and lead generationLocal B2B prospect lists with phone, website, email, and social links for cold outreach
Local SEO agenciesCompetitor maps across a city: who ranks, their ratings, categories, and review counts
Market researchDensity maps of a business category by neighborhood, region, or ZIP code
Franchise and expansionSite-selection datasets comparing existing businesses and gaps across areas
Data and CRM teamsEnrichment of existing account lists with fresh addresses, phones, and websites
Delivery and logisticsDirectories of restaurants, stores, or service providers by service area
Real estateNeighborhood profiles counting amenities, cafes, gyms, and schools near a listing
Agencies and freelancersClient-ready lead spreadsheets delivered in minutes instead of days

๐Ÿ“ฅ Input parameters

Core fields:

FieldTypeDescription
searchStringsarrayWhat to search for, one term per line (for example restaurant, dentist).
locationQuerystringThe area to search, for example Brooklyn, New York, United States.
maxItemsintegerMaximum number of places to return. Default 50.
languageselectResult language, 16 options. Default English.
countryCodestringTwo-letter country code to bias results, for example us, fr, de.

Enrichment and filters:

FieldTypeDescription
extractContactsFromWebsitebooleanVisit each website for emails and social profile links.
skipClosedPlacesbooleanSkip temporarily or permanently closed places.
placeMinimumStarsstringKeep only places rated at or above this value, for example 4.0.
categoryFilterarrayKeep only places whose category contains one of these words.
geoStrictMatchbooleanDrop places whose coordinates fall outside the search area.
maxReviewsintegerReviews to attach per place. Experimental. Default 0.

Advanced targeting (use instead of Location):

FieldTypeDescription
customGeolocationobjectGeoJSON Polygon, MultiPolygon, or Point with radiusKm.
startUrlsarrayFull Google Maps place or search URLs.
placeIdsarrayRaw 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

CategoryFields
Identityname, category, categories, description, placeId, fid, cid, entityId, googleMapsUrl
Addressaddress, street, city, state, postalCode, countryCode, neighborhood, plusCode, latitude, longitude
Contactphone, website, domain
Ratingsrating, reviewsCount, priceLevel
StatuspermanentlyClosed, temporarilyClosed, openingHours
Enrichmentemails, socials (facebook, instagram, linkedin, x, youtube, tiktok, pinterest, whatsapp)
Reviews (experimental)reviews (text, authorName, rating, relativeDate)
ProvenancesearchQuery, 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: 200
Turn 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 ApifyClient
client = 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

SearchPlacesTime
Coffee shops, one neighborhood15About 1 second
Restaurants, a dense district45About 3 seconds
Lead list with website enrichment4About 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. dentist alone can match the wrong city. dentist plus Miami, Florida, United States keeps 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 restaurant returns tighter results than food.
  • 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.

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.

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.