Google Maps data into Google Sheets

Paste one script, type a search in a cell, data fills the sheet.

One custom function in Sheets 1 credit per business result Credits never expire
WHAT YOU GET

What data do you get?

One custom function turns a plain search into a grid of Google Maps data, right inside Google Sheets. Nothing to install from a marketplace, and it runs on any normal Google account.

Identitytitle · categoryNameContactphone · websiteReputationtotalScore · reviewsCountPlaceaddress · city · stateAlso in JSONopeningHours · location
PULLED LIVE FROM THE API, AUGUST 12, 2026

A real result, not a mockup

This is the actual data a call for coffee shops in Austin returned, in under a second. The script drops these straight into your sheet, one business per row.

NameAddressCategoryRatingReviews
Epoch Coffee221 W N Loop Blvd, Austin, TX 78751Coffee shop4.52506
Terrible Love3908 Avenue B, Austin, TX 78751Coffee shop4.9418
Hometown Coffee - East Austin1101 Springdale Rd, Austin, TX 78721Coffee shop4.978
Mozart's Coffee Roasters3825 Lake Austin Blvd, Austin, TX 78703Coffee shop4.510823
Klerje Coffee1614 E 6th St Apt 112, Austin, TX 78702Coffee shop4.8180

Here is the raw JSON for the first row, so you can see the exact field names the script reads:

{ "query": "coffee shops in Austin", "count": 5, "tookMs": 891, "places": [ { "position": 1, "title": "Epoch Coffee", "address": "221 W N Loop Blvd, Austin, TX 78751", "phone": "(512) 454-3762", "website": "http://www.epochcoffee.com/", "categoryName": "Coffee shop", "totalScore": 4.5, "reviewsCount": 2506 } ] }
THE SCRIPT

How do you set it up?

This is an Apps Script you paste into your own sheet once, not a native add-on. About two minutes, and there is nothing to install. No key yet? Create a free account first: 3,000 credits a month, no card.

  1. Open Apps Script In your sheet, click Extensions, then Apps Script. A code editor opens in a new tab.
  2. Paste the function Delete the sample code, paste the CRUSTMAPS function below, and drop your key into CRUSTAPI_KEY. Click Save.
  3. Call it in a cell Back in the sheet, type =CRUSTMAPS("dentists in Miami") in a cell. The name, address, phone, category, rating, and review columns fill down and across on their own.
  4. Change the search Edit the text in the quotes for any city or business type. Add a number for how many results, like =CRUSTMAPS("plumbers in Denver", 30).
// Google Sheets custom function for CrustAPI Google Maps data // 1) Extensions → Apps Script 2) paste this 3) Save 4) use it in a cell var CRUSTAPI_KEY = 'key_live_xxxx'; // paste your key from crustapi.com/app function CRUSTMAPS(query, limit) { if (!query) { throw new Error('Try =CRUSTMAPS("dentists in Miami")'); } var url = 'https://crustapi.com/v1/search?type=maps' + '&q=' + encodeURIComponent(query) + '&limit=' + (limit || 20); var res = UrlFetchApp.fetch(url, { headers: { 'x-api-key': CRUSTAPI_KEY }, muteHttpExceptions: true }); var data = JSON.parse(res.getContentText()); var places = data.places || []; var rows = [['Name', 'Address', 'Phone', 'Website', 'Category', 'Rating', 'Reviews']]; for (var i = 0; i < places.length; i++) { var p = places[i]; rows.push([ p.title || '', p.address || '', p.phone || '', p.website || '', p.categoryName || '', p.totalScore || '', p.reviewsCount || '' ]); } return rows; }

Then type the search into any empty cell:

// type this into a cell after you Save the script =CRUSTMAPS("dentists in Miami") =CRUSTMAPS("plumbers in Denver", 30)
FIELD MAPPING

How do columns map to fields?

The real field names from the response above. The script reads the path on the right and writes the column on the left.

Sheet columnResponse fieldValue in the sample
NametitleEpoch Coffee
Addressaddress221 W N Loop Blvd, Austin, TX 78751
Phonephone(512) 454-3762
Websitewebsitehttp://www.epochcoffee.com/
CategorycategoryNameCoffee shop
RatingtotalScore4.5
ReviewsreviewsCount2506
ONE NAMING NOTE

The star rating is totalScore, not rating (the highlighted rows). The response also carries city, state, postalCode, location with lat and lng, and openingHours, so you can add more columns by pushing those fields in the same loop.

Build this in the next two minutes
Free 3,000 credits a month, no card.
Get a key →
PRICING

How much does Maps data cost?

Maps bills 1 credit for each business a call returns. A =CRUSTMAPS call that fills 20 rows costs 20 credits, and an empty search costs nothing. Here is what real sheets cost:

What you pullCreditsYou pay
One =CRUSTMAPS call, 20 businesses20$0, inside the free 3,000 a month
A 50-search sheet, ~1,000 businesses1,000$0, inside the free 3,000 a month
25,000 businesses25,000$49 ($1.96 per 1,000)
100,000 businesses100,000$149 ($1.49 per 1,000)
500,000 businesses500,000$549 ($1.10 per 1,000)
2.5 million businesses2,500,000$1,999 ($0.80 per 1,000)

Packs continue up to 250 million credits for $100,000, which is $0.40 per 1,000. Prices ex-tax.

Credits are prepaid and never expire, so an unused pack is still yours next year.

Related: Google Maps API pricing · Docs

WHO IT'S FOR

Who uses this?

BEFORE YOU ASK

Common questions

Open your sheet, click Extensions then Apps Script, and paste the CRUSTMAPS function from this page. Drop your key into CRUSTAPI_KEY and click Save. Back in the sheet, type =CRUSTMAPS("dentists in Miami") in a cell and the name, address, phone, category, rating, and review columns fill in on their own.

It is a script you paste in yourself, and we say so plainly. You add a small Apps Script to your own sheet once, so there is nothing to install from a marketplace and no extra permissions to manage across your team. Any Google account that can open Extensions and Apps Script can run it.

The sample script returns title, address, phone, website, categoryName, totalScore, and reviewsCount. The response also carries city, state, postalCode, location with lat and lng, and openingHours, so you can add more columns by pushing those fields in the same loop. Note the star rating is totalScore, not rating.

Maps bills one credit per business you get back, so a call that returns 20 places costs 20 credits. Credits are prepaid and never expire, and the free tier is 3,000 a month with no card. Paid packs start at 25,000 for $49.

We read only public Google Maps listings, the same results anyone sees without signing in. There are no fake accounts and no logins involved on our side. What comes back is data that is public to any visitor, delivered as clean JSON.

Pull your first list today

Start on the free 3,000 credits a month, no card needed. Paste the script once, type a search, and watch names, addresses, phones, ratings, and review counts fill your sheet.

Get 3,000 free credits
No credit card required