Google Maps data extractor

A Google Maps data extractor you call with one URL. Send a search, get every matching business back as clean JSON, then download the same table as a CSV. Empty searches cost nothing.

3,000 free / month, no card Up to 100 businesses per search ~1 second responses
PULLED LIVE FROM THE API, JULY 17, 2026

One search, the whole record

# 1 credit per business returned; zero results cost nothing curl "https://crustapi.com/v1/search?type=maps&q=plumbers%20in%20Denver,%20CO&limit=3" -H "x-api-key: YOUR_KEY"
# CSV view: the same record as one spreadsheet row (Download CSV in the playground) title,address,phone,website,categoryName,totalScore,reviewsCount "Brothers Plumbing, Heating & Electric","6201 Broadway, Denver, CO 80216",(720) 9••-••32,http://www.brothersplumbing.com/,Plumber,4.7,8981
// JSON view: the same response, trimmed to one business (phone masked here, not in the API): { "query": "plumbers in Denver, CO", "count": 3, "tookMs": 505, "places": [{ "title": "Brothers Plumbing, Heating & Electric", "placeId": "ChIJszGcvzV0bIcR3_6j5Gru8sM", "address": "6201 Broadway, Denver, CO 80216", "phone": "(720) 9••-••32", "website": "http://www.brothersplumbing.com/", "categoryName": "Plumber", "totalScore": 4.7, "reviewsCount": 8981, "openingHours": { "Monday": "7 AM-8 PM", "Tuesday": "7 AM-8 PM", ... }, "location": { "lat": 39.8096461, "lng": -104.9881312 }, "city": "Denver", "state": "Colorado", "postalCode": "80216" }, ...] }

That tookMs: 505 is the actual timing from the pull above. Maps searches answer in about a second. Set limit up to 100 businesses per search. For the full parameter list and the head-to-head with the official Places API, see the Google Maps scraper API page.

WHAT YOU CAN EXTRACT

Every field, and one field you won't get

Each business comes back complete. No tiers, no add-on fees per field:

IdentityName · placeId · cid ContactPhone · website AddressStreet · city · state · zip ReputationRating · review count CategoryPrimary + all categories HoursFull weekly schedule LocationLat / lng StatusOpen · closed flags Not in MapsEmail
THE CATCH

No emails. Maps doesn't have them.

A Google Maps listing holds a phone number and a website, and that is where the contact trail ends. There is no email field anywhere in a Maps record, so we don't return one. Tools that promise emails from Maps get them another way, usually by crawling each business website and guessing when nothing is posted. Some of those guesses land. Plenty bounce.

If your work needs verified emails on real people, that lives on our LinkedIn people search API. People results there come with a verified email. Maps gives you the business. LinkedIn gives you the person.

SPREADSHEET-READY

Extract data from Google Maps into a CSV

No code: run your search in the playground, look at the results table, click Download CSV. Every field in the response becomes a column, so the file drops straight into Sheets, Excel, or a CRM import.

With code: the JSON flattens in a few lines. Here it is in Python:

# pull up to 100 plumbers and write them to a CSV import csv, requests r = requests.get( "https://crustapi.com/v1/search", params={"type": "maps", "q": "plumbers in Denver, CO", "limit": 100}, headers={"x-api-key": "YOUR_KEY"}, ) places = r.json()["places"] cols = ["title", "address", "phone", "website", "categoryName", "totalScore", "reviewsCount"] with open("plumbers-denver.csv", "w", newline="") as f: w = csv.DictWriter(f, fieldnames=cols, extrasaction="ignore") w.writeheader() w.writerows(places)

The same call works from n8n, Clay, LangChain, CrewAI, or any tool that can hit a URL with a header.

PRICING

One credit per business returned

You are only charged when a search returns results. A search that finds 40 businesses costs 40 credits. A search that finds none costs nothing. The free tier is 3,000 credits a month with no card. Prepaid packs: 25k for $49 · 100k for $149 · 500k for $549 · 2.5M for $1,999. Credits never expire, so an unused pack waits for your next project.

Extract your first list free
3,000 credits a month. No card, no contract.
Get started →
GO DEEPER

Extract the reviews too

Swap type=maps for type=reviews and any placeId from your extract returns the written Google reviews for that place: rating, text, author, date, with sorting and pagination. Reviews answer in about 0.3 seconds. Details on the Google Reviews API page.

# the reviews for that Denver plumber, newest first curl "https://crustapi.com/v1/search?type=reviews&placeId=ChIJszGcvzV0bIcR3_6j5Gru8sM&sortBy=newest" -H "x-api-key: YOUR_KEY"

Related: Google Maps Scraper API · Google Reviews API · Google Places API alternative · LinkedIn People Search API

FAIR PLAY

When something else is the better pick: if you need 20 rows once and never again, a free browser extension that grabs the page you're already looking at is quicker than creating an API key. And if you're building live map features inside an app, Google's official Places API comes with an SLA and support contracts. Both are good at their jobs. This page is for people who want the data itself, repeatably, in a file or a pipeline.

BEFORE YOU ASK

Common questions

WORKS WITH YOUR STACK

Run one extract on your city

3,000 free credits covers a real list. Send one search and look at the JSON that comes back.

Get 3,000 free credits
No credit card required