Pulled fresh from Google Maps, past 1,000 practices per major metro.
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.
The other four rows carry the same shape. One of them, Alfonso Dental Miami, came back with a 5.0 rating across 1,012 reviews. Set limit up to 100 practices per search.
No code needed. From zero to a CSV of practices in about two minutes:
Create a free account. Try it free, no card needed.
Type a search in the playground. Something like dentists in Miami. The practices land in a table.
Click export. Download the CSV and open it in Sheets or Excel. Done.
Developers: skip the playground. Copy your key from the dashboard and run the curl above. Same data, as JSON.
Every practice comes back complete. No field tiers, no per-column upcharges:
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.
One search returns up to 100 practices, and a major metro holds far more. CrustAPI sweeps the whole metro and returns every practice, deduplicated. Our Miami sweep found 1,006 distinct dentist practices.
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.
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 file | CrustAPI | |
|---|---|---|
| Freshness | Snapshot from whenever it was compiled | Pulled from Google Maps at request time |
| Coverage | Fixed row count, set by the vendor | Whatever is on the map today; 1,006 in our Miami sweep |
| Ratings + review counts | Varies by vendor | On every practice |
| Hours + categories | Varies by vendor | Full weekly schedule + all specialty categories |
| Emails | Often included, a real advantage | Separate step via the LinkedIn people endpoints |
| Reuse | One file, one point in time | Rerun any time; one charge per practice, empties free |
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.
You pay the Maps rate for each practice a search returns. A search that returns nothing costs nothing. Here is what real pulls cost:
| Deposit | Google Search / 1,000 requests | Maps / 1,000 businesses | LinkedIn reads / 1,000 requests | People, 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. At standard Maps prices, 1,000 practices cost $1.96. Larger deposits get lower rates.
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.
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.
Local SEO pitches land harder with the prospect's own numbers. One Miami practice in our sample sits at 4.9 stars with 913 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.
Maps gives you the practice: phone, website, address. It does not give you an email, because listings do not have one.
When outreach needs emails, LinkedIn people search (beta) finds the dentist or office manager behind the practice. People results include a verified email where one can be found and checked.
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 balance. Full detail on the LinkedIn People Search API (beta) page.
Related: Google Maps Scraper API · Google Reviews API · LinkedIn People Search API (beta) · Google Places API alternative
Up to 100 with the limit parameter, billed at one charge per practice actually returned. A search that finds none costs nothing. To cover a whole metro, ask for the full sweep and CrustAPI returns every practice, deduplicated for you, past the 100-per-search cap; that is how our Miami sweep reached 1,006 practices.
No. Maps records carry name, address, phone, website, rating, review count, categories, and hours. Google Maps listings do not have an email field, so no Maps-sourced list gets emails from Maps. For emails, the LinkedIn people endpoints return a verified email on people results, so the usual flow is practices from Maps, then people and emails from LinkedIn.
It is pulled from Google Maps at the moment you ask. Nothing on this page comes from a stored file. A typical maps search returns in about a second; the sample above took about a second.
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. We handle the collection; what you get is business data that is public on the map for anyone to see.
Our Miami sweep found 1,006 practices. At standard Maps prices those records cost $1.97176. The $6 monthly allowance can cover that example, and paid funds never expire.
Yes. The playground at /app runs any search from the browser and shows the rows in a flat table. It also plugs into Clay, n8n, and MCP if you already work there, plus LangChain and CrewAI on the code side.
The free plan covers a full metro sweep. Run one search and look at the JSON that comes back.
Try for free