Google Map Business Scraper avatar

Google Map Business Scraper

Pricing

from $9.10 / 1,000 results

Go to Apify Store
Google Map Business Scraper

Google Map Business Scraper

Scrapes business information from Google Maps including name, address, phone, website, ratings, opening Hours and more.

Pricing

from $9.10 / 1,000 results

Rating

4.9

(3)

Developer

Goldmine

Goldmine

Maintained by Community

Actor stats

24

Bookmarked

523

Total users

9

Monthly active users

2 days ago

Last modified

Share

๐Ÿ“ Google Maps Business Scraper โ€” Google Maps Scraper for Local Leads

Google Maps Business Scraper

This Google Maps scraper turns any search on Google Maps into a clean list of businesses. Type what you are looking for โ€” "dentist", "coffee shop", "plumber" โ€” and where, and it returns every business Google Maps shows for that search: name, categories, full address, phone number, website, star rating, number of reviews, price range, opening hours for each day of the week, coordinates and the Google Place ID. Sales teams use it to build lead lists, marketers to map local competitors, and analysts to size a market city by city.

Give it one or more search terms and a location, or paste Google Maps links, and get back one row per business as JSON, CSV or Excel. No Google account, API key or browser extension is needed.


๐Ÿš€ Key Features

  • ๐Ÿ”Ž Search by keyword and location โ€” run many search terms in one location, or paste Google Maps search and place links
  • ๐Ÿงพ Complete business profiles โ€” name, categories, description, address split into street, city, postal code, state and country, phone in local and international format, website, rating, reviews count, price range, weekly opening hours, latitude and longitude, Place ID and CID
  • ๐Ÿ“‘ Automatic pagination โ€” follows the results list page by page until maxItems is reached per search term, or Google Maps has no more results
  • โ™ป๏ธ No duplicates โ€” a business found by two of your searches is returned, and charged, once
  • ๐Ÿ’ธ Spend control โ€” stops finding businesses as soon as the maximum cost you set for the run is reached
  • ๐Ÿ›ก๏ธ No login needed โ€” works on public Google Maps data; proxy settings are yours to choose
  • ๐Ÿ“ค Multiple export formats โ€” JSON, CSV, Excel, XML via the Apify dataset
  • ๐Ÿ” Schedulable runs โ€” re-run the same searches weekly to catch new businesses and changed opening hours

๐Ÿ‘ฅ Who Is This Actor For?

  • Sales and business development teams โ€” building Google Maps leads lists of local businesses with phone numbers and websites
  • Marketing agencies โ€” prospecting for clients by industry and city, and auditing clients' local competitors
  • Market researchers and analysts โ€” counting and mapping businesses by category, rating and neighbourhood
  • Franchise and real estate teams โ€” scouting locations by the density of nearby competitors
  • Data and CRM teams โ€” enriching and de-duplicating business records with Place IDs
  • ๐Ÿค– AI builders โ€” feeding local business data into agents and retrieval pipelines through the Apify API or MCP server

๐Ÿ’ก Common Use Cases

  • Export all dentists in Austin with phone numbers and websites to a spreadsheet
  • Find every coffee shop in a neighbourhood with its rating and number of reviews
  • Build a cold-calling list of plumbers, electricians or roofers in several cities
  • Compare opening hours and price ranges of restaurants in a district
  • Collect Google Place IDs for a list of businesses to use with other tools
  • Track new businesses opening in a category by scheduling the same search every week

๐Ÿ”— Supported URL Types

Search terms are the simplest input. You can also paste Google Maps links into Google Maps URLs:

URL TypeExample
Search resultshttps://www.google.com/maps/search/pizza+in+Brooklyn
Place pagehttps://www.google.com/maps/place/Le+Cafe+Coffee/@40.76,-73.97,17z/data=!4m6!3m5!1s0x89c2590014a48ff9:0x34466e9af9759422...
CID linkhttps://maps.google.com/?cid=3766819750231249954

Short maps.app.goo.gl share links are not supported: open them in a browser and copy the full link from the address bar.


๐Ÿ“ฅ Input

FieldTypeDescriptionDefault
searchTermsArrayWhat to search for, one term per line, for example dentist or coffee shop. Each term is searched in location.โ€”
locationStringWhere to search: a city, neighbourhood, region or postcode, for example Manhattan, NY. Leave empty if your search terms already include a place.โ€”
startUrlsArrayGoogle Maps search or place links (see Supported URL Types).โ€”
maxItemsIntegerMaximum number of businesses to return per search term and per search URL.20
scrapePlaceDetailsBooleanAdds reviews count, price range and opening hours for every day of the week. Turn off for a quicker run without those three fields.true
languageStringLanguage of categories, descriptions and opening hours text, as a two-letter code (en, de, fr, esโ€ฆ).en
proxyConfigurationObjectProxy servers used to reach Google Maps. Apify datacenter proxies are enough for most runs.{"useApifyProxy": true}

Provide at least one search term or one Google Maps URL.

Example Input

{
"searchTerms": ["dentist", "plumber"],
"location": "Austin, TX",
"maxItems": 60,
"scrapePlaceDetails": true,
"language": "en",
"proxyConfiguration": {
"useApifyProxy": true
}
}

๐Ÿ“ค Output

Each dataset item is one business:

FieldTypeDescription
searchQueryStringThe search this business was found by (search term with location, or the URL)
rankIntegerPosition in the Google Maps results for that search, starting at 1
nameStringBusiness name
categoryStringMain Google Maps category
categoriesArrayAll Google Maps categories
descriptionStringShort description shown on Google Maps, when there is one
addressStringFull address
street, neighborhood, city, postalCode, state, countryCodeStringAddress components
phoneStringPhone number as shown on Google Maps
phoneInternationalStringPhone number in international (E.164) format
websiteStringBusiness website
ratingNumberAverage star rating, 1 to 5
reviewsCountIntegerNumber of Google reviews
priceRangeStringPrice range, when Google Maps shows one
openingHoursArrayOpening hours for each day, Monday first: { "day", "hours" }
permanentlyClosedBooleanTrue when Google Maps marks the business as permanently closed
latitude, longitudeNumberCoordinates
timezoneStringTime zone of the business
placeIdStringGoogle Place ID, usable with the Google Places API
cidStringGoogle Maps customer ID (CID)
googleMapsUrlStringLink to the business on Google Maps
sourceUrlStringGoogle Maps link of the search or place the result came from
scrapedAtStringWhen the business was scraped (ISO 8601)

reviewsCount, priceRange and openingHours are null when scrapePlaceDetails is off. Any field Google Maps does not show for a business is null.

Example Output

{
"searchQuery": "dentist in Austin, TX",
"rank": 4,
"name": "South Austin Dentist",
"category": "Dentist",
"categories": ["Dentist"],
"description": null,
"address": "3901 S Lamar Blvd Ste 480, Austin, TX 78704",
"street": "3901 S Lamar Blvd Ste 480",
"neighborhood": "South Lamar",
"city": "Austin",
"postalCode": "78704",
"state": "Texas",
"countryCode": "US",
"phone": "(737) 437-3801",
"phoneInternational": "+17374373801",
"website": "http://southaustindentisttx.com/?utm_source=gbp&utm_medium=organic&utm_campaign=yext_listing",
"rating": 4.9,
"reviewsCount": 178,
"priceRange": null,
"openingHours": [
{ "day": "Monday", "hours": "8 AMโ€“4 PM" },
{ "day": "Tuesday", "hours": "8 AMโ€“4 PM" },
{ "day": "Wednesday", "hours": "8 AMโ€“4 PM" },
{ "day": "Thursday", "hours": "8 AMโ€“4 PM" },
{ "day": "Friday", "hours": "Closed" },
{ "day": "Saturday", "hours": "Closed" },
{ "day": "Sunday", "hours": "Closed" }
],
"permanentlyClosed": false,
"latitude": 30.237298499999998,
"longitude": -97.7902045,
"timezone": "America/Chicago",
"placeId": "ChIJf5afhV5LW4YRy--94BL_3jg",
"cid": "4097993167498768331",
"googleMapsUrl": "https://www.google.com/maps?cid=4097993167498768331",
"sourceUrl": "https://www.google.com/maps/search/dentist+in+Austin%2C+TX",
"scrapedAt": "2026-09-24T16:38:59.145Z"
}

You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML from the Apify Console or via the Apify API. The Contacts view in the Console shows just names, phone numbers, websites and addresses, ready for a CRM import.


๐Ÿ’ฐ Pricing

This Actor is pay per event (you pay per result): $0.0099 per business, so 1,000 businesses cost $9.90, with lower per-result prices on higher Apify plans. A business found by two of your searches is charged once. Set a maximum cost for the run in the Console and the Actor stops at that limit. A free Apify account is enough to try it.


โ“ FAQ

What is the Google Maps Business Scraper?

It is a Google Maps business scraper that searches Google Maps for a type of business in a location and returns each result as a structured record with contact details, rating, reviews count and opening hours. You can use it wherever you would otherwise copy businesses out of Google Maps by hand.

How do I scrape Google Maps for a list of businesses?

Enter one or more search terms, a location and how many businesses you want per search, then start the run. To scrape Google Maps for several cities, run the Actor once per city or paste one Google Maps search link per city into Google Maps URLs.

Do I need a Google account, cookies or an API key?

No. The Actor reads the same public information anyone sees on Google Maps without signing in.

Do I need a proxy?

The default Apify datacenter proxy is enough for most runs. You choose the proxy in the input: switch to residential proxies only if the log reports that Google Maps refused requests.

How many results can I get per run?

maxItems limits results per search term and per search URL, so three search terms with maxItems: 50 return up to 150 businesses. Google Maps itself stops showing results after a limited number of places for one search โ€” for a larger area, split it into smaller locations (neighbourhoods or postcodes) and add each as a search.

Does it handle pagination automatically?

Yes. It follows the results list page by page until it reaches maxItems or Google Maps has no more results.

Why is priceRange empty for some businesses?

Google Maps shows a price range only for some businesses, mostly restaurants and cafรฉs. When it is not shown, the field is null.

Can I get emails and social media profiles?

This Actor returns what Google Maps shows, which does not include emails. Use the Google Maps Contact & Social Media Extractor or Extract Emails, Socials and Contacts from Any Website on the websites it returns.

Can I schedule it or integrate it with my app?

Yes โ€” every Apify Actor exposes a REST API, webhooks, and integrations with Zapier, Make, Google Sheets and Slack, and can be called from an AI agent via the Apify MCP server.

This Actor accesses only publicly available information. You are responsible for making sure your use complies with Google's terms of service and the laws in your jurisdiction, including data protection rules when you contact the businesses.

What if Google Maps changes and the Actor breaks?

Open an issue on the Actor's Issues tab and include the run link.


๐Ÿงฉ Part of the Contact Data Suite

Actors that turn public listings and websites into contact data for outreach. Also try:

See every Goldmine Actor at apify.com/logical_scrapers.


๐Ÿ“ท Image Credit

Image credit: google.com/maps


๐Ÿ“ฌ Contact & Support

  • Issues & feature requests: use the Issues tab on this Actor's page, where fixes are tracked.
  • Email: coredev.dan@gmail.com
  • If this Actor saved you time, please leave a โญ rating on the Apify Store. It helps us keep it maintained.