Local lead generation, straight from Google Maps

Pull every local business in a city with phone, website, rating, and hours from Google Maps. Run it in the browser or one API call. One credit per business, only on a result.

1,000+ per metro 1 credit per business 3,000 free a month
ONE SEARCH

One city, one search

Local lead generation starts with a list. Point a search at a city and a business type, and CrustAPI pulls the Google Maps results back as rows you can drop into a sheet or a CRM. Up to 100 businesses per search, in about a second.

# type=maps · query "dentist Miami" · first rows as CSV name,rating,reviews,phone,website,category,address,hours Coral Gables Dental,4.8,412,(305) 555-01••,coralgablesdental.example,Dentist,"2020 Ponce De Leon Blvd, Coral Gables, FL 33134",Mon-Fri 8-5 Brickell Smile Studio,4.7,289,(305) 555-01••,brickellsmile.example,Cosmetic dentist,"1450 Brickell Ave, Miami, FL 33131",Mon-Thu 9-6 Wynwood Family Dental,4.9,531,(305) 555-01••,wynwooddental.example,Dentist,"2200 NW 2nd Ave, Miami, FL 33127",Mon-Fri 8-6

Every field there comes straight off the public Maps listing. Prefer code? The same search is one request.

curl "https://crustapi.com/v1/search?type=maps&q=dentist+Miami" \ -H "x-api-key: YOUR_KEY"

Want the whole city, not just the first 100? A full-area sweep pulls past Google's roughly-100-per-search cap and returns the whole metro. Our Miami dentist sweep pulled 1,006 practices. And you do not have to touch code at all: the playground at /app runs any search and shows results as a flat table you can copy, and it plugs into Clay, n8n, and MCP.

Identityname · placeId · cidContactphone · websiteLocationstreet · city · state · zip · lat/lngReputationrating · reviewsCountDetailcategories · weekly hours · open/closedOptionalstars=true histogram
THE TRADE-OFFS

Next to Google's own Places API

Google sells this data too, through the Places API. It works, but the pricing tier and the terms are built for map apps, not for building a lead list you keep.

Google Places API (New)CrustAPI
Ratings, phone, website, hours$35 per 1,000 requests (Enterprise tier)from $1.96 per 1,000 businesses
Results per call20 (up to 60 across 3 billed pages)up to 100
Keeping the dataplace IDs only; lat/lng cached max 30 daysthe rows are yours to store
What you pay forevery requesteach business returned; zero results cost nothing
Whole-metro coveragecapped per searchdeep sweeps, 1,000+ per metro
Star histogramnot availableoptional, stars=true

Both pull from the same public place data. The difference is what you can do with it afterward, and what it costs to cover a full city. Google's terms restrict you to storing place IDs and cap location caching at 30 days. The rows you export here you keep.

STRAIGHT ANSWER

Where the emails come from

Here is the part most tools skip over. Google Maps listings have no email field. Nobody pulling from Maps has emails, no matter how the plan is priced. From Maps you get name, phone, website, address, rating, and hours.

To reach a real person by email, add one step. Take the business or the decision-maker and run the LinkedIn type=profile endpoint, which returns one verified work email per person. So the flow is simple: pull the city from Maps, then enrich the accounts that matter with a verified email. Two endpoints, one bill.

Related: Lead scraper · LinkedIn email finder

PRICING

What it costs to work a city

One credit equals one business returned. A search that pulls 80 places costs 80 credits. A search that finds nothing costs zero. Credits are prepaid and never expire.

The free tier is 3,000 businesses a month with no card, which covers a small metro or a handful of neighborhoods. Paid packs start at 25,000 credits for $49, about $1.96 per 1,000, and the rate drops to roughly $0.40 per 1,000 on the largest pack. A full Miami-sized sweep of one industry, around 1,000 businesses, runs a little over a dollar at the entry rate.

Pull your first city free
3,000 businesses a month, no card, no code.
Get started →
FAIR PLAY

When to pick another tool

We are not the right answer for every job. Here is the case where something else fits better.

WHEN THEY WIN

Named-account contact data: if you need verified emails and direct dials for specific people at hundreds of named companies, plus buying-intent signals, a contact database like Apollo or ZoomInfo is built for that. Apollo publishes per-seat credit tiers; ZoomInfo is quote-based with no public pricing. We are the better call when the job is "give me every business in this city with its phone, site, rating, and hours." They fit better when the job is "find the CFO's cell at these 300 accounts."

Related: Google Maps lead generation · Google Maps scraper API · How to scrape Google Maps

BEFORE YOU ASK

Common questions

WORKS WITH YOUR STACK

Build your first city list today

Start with 3,000 free businesses a month, no card. Pull a city in the browser, export the rows, and add verified emails from LinkedIn when you need a person to reach.

Get 3,000 free credits
No credit card required