Build a business database from live Google Maps

Every record scraped live from Google Maps the moment you ask.

Free to try, no card 1,000+ businesses per metro sweep Fresh at query time
PULLED LIVE FROM THE API, AUGUST 4, 2026

What data do you get?

I ran this exact query while writing this page. It came back in about a second. Here is the request and one of the businesses it returned, trimmed to the highlights (phone digits masked for the page, unmasked in the API).

# the Maps rate per business returned; zero results cost nothing curl "https://crustapi.com/v1/search?type=maps&q=plumbers%20in%20Denver,%20CO" -H "x-api-key: YOUR_KEY"
# CSV view: one row per business, values match the JSON below
titleplaceIdaddressphonewebsitecategoryNametotalScorereviewsCountcitystatepostalCodelatlng
Time Plumbing, Heating & Electric DenverChIJXQdbzlF5bIcRisJQL72gJFI2525 W 6th Ave, Denver, CO 80204(303) 7••-••37https://www.303plumber.com/Plumber4.6788DenverColorado8020439.7259254-105.018292
# JSON view: same record, with the nested fields { "title": "Time Plumbing, Heating & Electric Denver", "placeId": "ChIJXQdbzlF5bIcRisJQL72gJFI", "address": "2525 W 6th Ave, Denver, CO 80204", "phone": "(303) 7••-••37", "website": "https://www.303plumber.com/", "categoryName": "Plumber", "categories": ["Plumber", "Air conditioning contractor", /* 8 more */], "totalScore": 4.6, "reviewsCount": 788, "openingHours": { "Monday": "Open 24 hours", ... }, "permanentlyClosed": false, "location": { "lat": 39.7259254, "lng": -105.018292 }, "city": "Denver", "state": "Colorado", "postalCode": "80204" }

Set limit up to 100 businesses per search. Responses land in about 1 second. Add stars=true for each business's 1-to-5 review histogram.

THREE STEPS

How do you build it?

No code needed. From zero to a CSV of businesses in about two minutes:

  1. 1

    Create a free account. Try it free, no card needed.

  2. 2

    Type a search in the playground. Something like plumbers in Denver. The businesses land in a table.

  3. 3

    Click export. Download the CSV, or copy your key and run the curl above for JSON.

WHAT EVERY RECORD INCLUDES

The full record, every time

No field tiers and no upcharges for the good columns. Every business in your database comes complete:

IdentityName · placeId · cid ContactPhone · website AddressStreet · city · state · zip ReputationRating · review count CategoryPrimary + all categories HoursFull weekly schedule LocationLat / lng StatusOpen · closed flags Opt-inStar distribution

One gap to know about: Google Maps listings do not carry email addresses, so maps records here do not either. When you need a person and a verified email, that comes from a different endpoint, covered below.

THE REAL DIFFERENCE

Live scrape vs static file

Static list vendors compile a big file, then refresh it on a cycle. Between refreshes, businesses close, move, change phones, and gain or lose reviews. A live scrape reads the source at the moment you ask.

Static list vendorsCrustAPI (live Google Maps)
Data ageCompiled in the past, refreshed on a cycleScraped at query time
Closed businessesSit in the file until the next refreshpermanentlyClosed flag, current as of your query
Ratings + review countsFrozen at compile time when includedLive rating and review count on every record
What you pay forThe whole file, dead rows includedthe Maps rate per business returned; empty searches free
Email addressesOften included, from other compiled sourcesNone on maps records; verified emails come from our LinkedIn people endpoints
SetupDownload a file, doneOne HTTP call, or the playground with no code

The freshness gap shows up fastest in the fields buyers act on. A phone number that rings, hours that are true today, and a rating from this week are the difference between a list you trust and a list you double-check.

COVERAGE

One query, or a whole metro

A single search returns up to 100 businesses, which covers most lead lists. For a full metro, run a sweep past Google's ~100-per-search cap: in a dense industry it returns 1,000+ businesses per city, deduplicated for you.

# one call returns the full-area results, deduplicated curl "https://crustapi.com/v1/search?type=maps&q=plumbers%20in%20Denver,%20CO&limit=100" -H "x-api-key: YOUR_KEY" curl "https://crustapi.com/v1/search?type=maps&q=plumbers%20in%20Aurora,%20CO&limit=100" -H "x-api-key: YOUR_KEY" curl "https://crustapi.com/v1/search?type=maps&q=plumbers%20in%20Lakewood,%20CO&limit=100" -H "x-api-key: YOUR_KEY"

Results are deduplicated. Maps charges only for the businesses actually returned.

For a whole metro or a multi-city dataset without writing the sweep yourself, email support@crustapi.com with the industry and cities. I'm Dawson, I run CrustAPI, and prebuilt datasets come from this same engine.

PRICING

How much does the database cost?

You pay the Maps rate for each business a search returns. Forty businesses cost $0.0784 at standard Maps prices. Empty searches are free. Here is the deposit pricing:

DepositGoogle Search / 1,000 requestsMaps / 1,000 businessesLinkedIn reads / 1,000 requestsPeople, Jobs, Refresh / 1,000 units
$10+$1.00$1.96$6.00$1.96
$149+$0.76$1.49$4.50$1.49
$549+$0.56$1.10$3.30$1.10
$1,999+$0.41$0.80$2.45$0.80
$6,500+$0.33$0.65$1.95$0.65
$27,500+$0.28$0.55$1.65$0.55
$50,000+$0.26$0.50$1.50$0.50
$100,000+$0.20$0.40$1.50$0.40

Every eligible account gets $6 of free usage monthly. Each deposit keeps its prices until spent; paid funds never expire. People and Jobs bill per successful search, Refresh per accessible profile. Full profiles in People use the read rate per full profile. See all billing details.

Larger deposits unlock lower endpoint prices. Each deposit keeps its prices until spent. See the full deposit table on the pricing page. Prices in USD, ex-tax.

Paid funds never expire. The $6 monthly allowance lets you test a real list before adding funds.

Build your first list free
Try it free. No card, no contract.
Try for free
WHO IT'S FOR

Who uses this database?

THE MISSING COLUMN

Adding emails to your database

Maps gives you the company: phone, website, address, never a person's email, because listings do not carry one. CrustAPI's LinkedIn endpoints fill the gap: search people by role and company (search is beta) and get a verified email where one is found.

# find the people behind the companies (people search is beta) curl "https://crustapi.com/v1/linkedin?type=search&keywords=owner plumbing company Denver&enrich=true" \ -H "x-api-key: YOUR_KEY"

Full detail on that endpoint lives on the LinkedIn people search API page. And if you want the review text behind each business's rating, type=reviews pulls the actual Google reviews in about 0.3 seconds per call.

Related: Google Maps scraper API · Google Reviews API · Google Places API alternative · LinkedIn scraper API

FAIR PLAY

When a static business database is the better pick: you need every company in the country in one download today, you want emails and firmographics already attached from many compiled sources, or nobody on your team wants to run queries at all. A good static file is instant, and for a one-time nationwide pull that speed is a real advantage. Live data earns its keep when the list has to be right, on the day you use it.

BEFORE YOU ASK

Common questions

Every record is scraped from Google Maps at the moment your query runs. Nothing is served from a stored file, so ratings, review counts, hours, phones, and closed flags are current as of that second. The trade is that you build the database by querying instead of downloading it whole.

No. Google Maps listings carry name, address, phone, website, rating, reviews, categories, and hours, and that is what maps records return. For emails, CrustAPI's LinkedIn people endpoints search people by role and company (search is beta), and people results carry a verified email where one can be found.

Up to 100 per search with the limit parameter. For a full metro, run a full-area sweep. Dense industries pass 1,000 businesses per metro that way.

Maps costs $1.96 per 1,000 businesses at standard prices, down to $0.40 for the largest deposit. Empty and failed searches are free. Every eligible account gets $6 of free usage monthly. Paid funds never expire.

The response is plain JSON, so it drops into Sheets, Clay, a CRM, or a database without transformation. It also plugs into n8n, LangChain, CrewAI, and MCP, and there is a no-code playground at /app.

We only collect what a logged-out visitor can see on public pages. That logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims, while Google's Terms prohibit automated access that violates instructions like robots.txt. What you get is business data that's public on the map for anyone to see.

WORKS WITH YOUR STACK

Build it on your own city

The free plan covers a real business database for one metro. Run one search and look at the JSON that comes back.

Try for free
No credit card required