Build a dentist database from live Google Maps data

Build a dentist database pulled fresh from Google Maps the moment you ask: name, address, phone, website, rating, review count, and hours as clean JSON. Major metros run past 1,000 practices each.

3,000 free queries / month, no card 1,006 dentists in our Miami sweep ~1 second responses
PULLED LIVE FROM THE API, JULY 17, 2026

One request, real dentists

This exact request ran while writing this page. It returned 5 Miami practices in about a second. Here is the first row, as CSV and as JSON. Phone digits are masked on this page; the API returns them in full.

# every practice in the results costs 1 credit; zero results cost nothing curl "https://crustapi.com/v1/search?type=maps&q=dentists%20in%20Miami,%20FL&limit=5" -H "x-api-key: YOUR_KEY"
# the first practice as CSV (same values as the JSON view below) title,address,phone,website,categoryName,totalScore,reviewsCount,lat,lng,city,state,postalCode Relax and Smile Dental Care,"271 NE 2nd St, Miami, FL 33132",(786) 9••-••12,https://www.relaxandsmile.com/,Dentist,4.9,902,25.7763227,-80.1887702,Miami,Florida,33132
// the same practice as JSON (the full field shape): { "title": "Relax and Smile Dental Care", "placeId": "ChIJ8WVD9Z622YgRTsE_RcBq1Qk", "address": "271 NE 2nd St, Miami, FL 33132", "phone": "(786) 9••-••12", "website": "https://www.relaxandsmile.com/", "categoryName": "Dentist", "categories": ["Dentist", "Cosmetic dentist", "Orthodontist", ...], "totalScore": 4.9, "reviewsCount": 902, "openingHours": { "Monday": "12-7 PM", "Tuesday": "10 AM-6 PM", ... }, "location": { "lat": 25.7763227, "lng": -80.1887702 }, "city": "Miami", "state": "Florida", "postalCode": "33132" }

The other four rows carry the same shape. One of them, Alfonso Dental Miami, came back with a 5.0 rating across 1,009 reviews. Set limit up to 100 practices per search.

WHAT EVERY PRACTICE INCLUDES

The full record on each dentist

Every practice comes back complete. No field tiers, no per-column upcharges:

IdentityName · placeId ContactPhone · website AddressStreet · city · state · zip ReputationRating · review count SpecialtyOrthodontist · oral surgeon · all categories HoursFull weekly schedule LocationLat / lng

One thing you will not find: an email field. Google Maps listings do not carry one, so no Maps-sourced dentist database has emails from Maps. There is a clean way to add them, covered below.

PAST THE 100-RESULT CAP

Sweep a whole metro

One search returns up to 100 practices. A major metro holds far more than that. CrustAPI sweeps the whole metro for you and returns every practice, deduplicated, past Google's ~100-per-search cap. We ran that sweep on Miami and found 1,006 distinct dentist practices. A single query would have shown about a tenth of the market.

# one call sweeps the whole metro, deduplicated for you curl "https://crustapi.com/v1/search?type=maps&q=dentists%20in%20Coral%20Gables,%20FL&limit=100" -H "x-api-key: YOUR_KEY" curl "https://crustapi.com/v1/search?type=maps&q=dentists%20in%20Little%20Havana,%20Miami,%20FL&limit=100" -H "x-api-key: YOUR_KEY" curl "https://crustapi.com/v1/search?type=maps&q=dentists%20in%2033176&limit=100" -H "x-api-key: YOUR_KEY"

You only pay for practices that come back, so a full-metro sweep only ever costs the dentists it actually returns. The same endpoint works for any vertical; the Google Maps Scraper API page covers it in general form.

THE TRADE-OFFS

vs buying a static list

Most dentist databases for sale are flat files compiled at some point in the past. Practices move, close, rebrand, and change phones all year. Here is the trade, stated plainly:

A static list fileCrustAPI
FreshnessSnapshot from whenever it was compiledPulled from Google Maps at request time
CoverageFixed row count, set by the vendorWhatever is on the map today; 1,006 in our Miami sweep
Ratings + review countsVaries by vendorOn every practice
Hours + categoriesVaries by vendorFull weekly schedule + all specialty categories
EmailsOften included, a real advantageSeparate step via the LinkedIn people endpoints
ReuseOne file, one point in timeRerun any time; 1 credit per practice, empties free
FAIR PLAY

When a static list is the better pick: you need emails in one flat file today, you are running a single one-time campaign where speed to send beats freshness, or you want zero technical steps of any kind. Good list vendors clean, dedupe, and verify their files, and that work has real value.

PRICING

One credit per practice

The free tier is 3,000 queries a month with no card, so the whole Miami sweep (1,006 practices, 1,006 credits) fits inside it with room to spare. Prepaid packs go up from there and credits never expire: 25k for $49 · 100k for $149 · 500k for $549 · 2.5M for $1,999. At roughly 1,000 practices per major metro, the $49 pack covers about 20 metro sweeps.

Pull your first city free
3,000 credits a month. No card, no contract.
Get started →
WHO USES IT

Three jobs this data does

Dental SaaS teams

Count practices per metro to size territories, build target-account lists for sales, and enrich signups with rating and review counts so reps know who they are talking to.

Suppliers and labs

Every practice with a street address and a phone number, mapped by lat/lng. Route planning, territory splits, and call lists come straight out of the same JSON.

Marketers and agencies

Local SEO pitches land harder with the prospect's own numbers. One Miami practice in our sample sits at 4.9 stars with 902 reviews; its neighbors do not. That gap is the pitch.

Review text itself is one parameter away: type=reviews with a placeId returns the actual Google reviews for any practice, about 0.3s per call. Details on the Google Reviews API page.

THE MISSING COLUMN

Adding emails, the clean way

Maps gives you the practice: phone, website, address. It does not give you an email, because listings do not have one. When your outreach needs emails, use the LinkedIn people endpoints to find the dentist or office manager behind the practice. People results include a verified email where one can be found and checked.

# find the people behind the practices; enrich pulls the full public profile curl "https://crustapi.com/v1/linkedin?type=search&keywords=dentist practice owner Miami&enrich=true" \ -H "x-api-key: YOUR_KEY"

The usual flow: practices from Maps first, then a people search on the ones worth a personal email. Both run on the same key and the same credits. Full detail on the LinkedIn People Search API page.

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

BEFORE YOU ASK

Common questions

WORKS WITH YOUR STACK

Pull the dentists in your metro

3,000 free credits covers a full metro sweep. Run one search and look at the JSON that comes back.

Get 3,000 free credits
No credit card required