SheetMagicSheetMagic

Scrape Google Maps into a Local Lead List in Google Sheets

Type =GMAPS("dentists in Austin, TX") to pull Google Maps business names, phones, websites, addresses and ratings into Google Sheets, so 60 local leads that would take an hour to copy at a minute each are three cells. SheetMagic holds 3 scraping credits per search.

Phil Nguyen · 5 min read

Type =GMAPS("coffee shops in Seattle") into a cell and SheetMagic searches Google Maps and writes each place's name, category, address, phone, website, star rating and review count into a results tab. That is a lead list of local businesses in the time it takes to type a search, ready to filter, call and email.

Say you build websites for local businesses and want 60 dentists to pitch. If copying each listing's name, phone, website and address out of Google Maps by hand takes you about a minute per place (an example figure, not a measurement), 60 places is an hour. With =GMAPS() it is three cells, one per page of 20 results. It is a formula, so the same search works for "dentists in Austin, TX", "plumbers in Leeds" or any other local query you would type into Google Maps.

The cell shows ⏳ Scraping... while the search runs, and the rows are written to a results tab. With Keep Formula on, which is the default, the cell then keeps your formula frozen as text; with Keep Formula off, it changes to a short status such as ✅ 20 results → Google Maps Results that names the tab holding your data.

What columns does =GMAPS() return?

Every row is one place. The first column, Source, records the cell that ran the formula, so you can always trace a row back to the search that produced it. After that come:

ColumnWhat it holds
NameThe business name
CategoryThe main Google Maps category
AddressStreet address
PhoneListed phone number
WebsiteListed website URL
RatingStar average
ReviewsCountHow many reviews the place has
PlaceIDGoogle's ID for the place
Latitude, LongitudeMap coordinates

The table keeps going with DataID, DataCID, Types, OpenState, OperatingHours, Description, Thumbnail, ServiceOptions, PriceLevel, UnclaimedListing, Amenities, Extensions, UserReview and SearchInformation. UnclaimedListing is handy for agencies: it flags businesses that have not claimed their Google profile.

How do I target a city or country?

The simplest way is to put the place in the query itself: =GMAPS("dentists in Austin, TX"). The full signature is:

=GMAPS(query, country, language, latLngZoom, start, limit)
  • country is a two-letter country code such as "us" or "gb" for localized results.
  • language is a two-letter language code such as "en" or "fr" for the language results come back in.
  • latLngZoom pins the search to a spot on the map, written as "@lat,lng,zoomz". For example =GMAPS("pizza", "us", "en", "@40.7128,-74.0060,12z") searches around lower Manhattan.
  • start pages through results. Google Maps returns up to 20 places per page, so use 0, 20, 40 and so on to get the next batch.
  • limit caps how many rows are written.

To build a bigger list, run the same query with start set to 0, 20 and 40 in three cells, or run one query per neighborhood or suburb.

What can you do with the listings?

In the results tab, Phone is column E, Website is column F, Rating is column G and ReviewsCount is column H.

  • Find businesses with no website. Filter the Website column for blanks. For a web designer, those are the businesses that need what you sell.
  • Offer to claim and fix their profile. Filter UnclaimedListing for businesses that have not claimed their Google profile, a direct opening for a local SEO pitch.
  • Spot reputation work. Sort by Rating or ReviewsCount to find businesses with a low star average or only a handful of reviews.
  • Make a call list. The Phone column is ready to dial. For the 60-dentist example, three searches hold 3 credits each, 9 scraping credits in total, against an hour of copying.

How do I turn listings into a lead list?

Google Maps listings give you a phone number and a website, but not an email address. To get emails and social profiles, feed the Website column into =CONTACTINFO(), which crawls each site and returns Email, Phone and links to Facebook, Twitter, Instagram, LinkedIn and YouTube.

In the Google Maps Results tab, Website is column F (Source sits in column A). In a spare column next to the first row, enter =CONTACTINFO(F2) and drag it down. Drag-filled copies of the same formula are grouped together, so their results land in one shared contact tab instead of one tab per row. The enrich lead lists guide covers the next steps, and the sales lead generation guide shows the whole prospecting workflow.

How do I pull reviews for the places I found?

=GMAPS() gives you the star average and how many reviews a place has, never the review text. For the reviews themselves, use =GMAPSREVIEWS() with the place's URL. The PlaceID column (column I in the results tab) lets you build that URL directly:

=GMAPSREVIEWS("https://www.google.com/maps/place/?q=place_id:"&I2)

That returns each review's reviewer, rating, text, date and the owner's reply.

What does it cost?

=GMAPS() uses scraping credits, not AI tokens. Before each search, SheetMagic holds 3 scraping credits. When the search finishes, the charge is set from the cost SheetMagic's data provider, scrape.do, reports for that exact request, and any unused part of the hold is returned. If no cost is reported, the 3-credit hold is the charge. A search that fails is charged nothing.

Monthly scraping credit allotments by plan:

PlanScraping credits per month
Solo10,000
Growth45,000
Scale115,000

The Free plan includes 100 scraping credits. For a side-by-side look at how scraping credits and AI tokens are used, see AI tokens vs scraping credits, and for every other scraper, the web scraping guide.

Text and scraping formulas run on the free allowance. Install from the Google Workspace Marketplace, no card, no expiry.

Install free for Google Sheets

About the author

Phil NguyenPhil builds SheetMagic, the Google Sheets add-on that brings AI and web scraping into the spreadsheet, used by 6,300+ people. He writes these guides from the formulas he runs on his own sheets.