Pulled live from Google Maps and LinkedIn, billed only on results.
Businesses close. Phones get reassigned. Owners sell. People change jobs. A compiled file has no way to flag which rows died after it was built, so you find out the slow way, when calls bounce and mail comes back.
A query does not have that problem. When your list is built at request time, every record shows what the public page says right now, and each one carries a scrapedAt timestamp so you can check the claim yourself.
There is no warehouse of pre-collected rows going stale behind this API. There are 12 live Google search types and a set of LinkedIn public endpoints, and your database is whatever you pull from them, whenever you pull it.
This is a real query and a real record from it, run the day this page was last refreshed. Maps responses come back in about a second, and you set how many businesses you want with the limit parameter.
The same record, as a CSV row you can drop straight into a spreadsheet:
The same record as JSON, trimmed to the highlights:
The phone is masked for this page. The API returns the full number, the full address, website, rating, review count, categories, lat and lng, and hours for every day.
No code needed. From zero to a lead list in about two minutes:
Create a free account. Try it free, no card needed.
Type a search in the playground. Something like HVAC contractors in Phoenix. The businesses 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.
A straight answer first: business records from Maps carry phone, website, address, rating, review count, categories, and hours. They do not carry email addresses, because Maps listings do not show one.
Emails come from the people side. LinkedIn people search (beta) finds public profiles by title, company, or keyword, and each person row can carry a verified work email.
An address is returned only after it passes a live verification check. When nothing passes, the field is null instead of a guess, and empty rows cost nothing.
The same endpoint family also returns full profiles, company pages, jobs, and public posts. The LinkedIn people search API (beta) page shows a full masked response, and the LinkedIn company scraper covers the company side.
A compiled leads file charges you for every row, dead or alive. CrustAPI charges one charge per record returned. Empty and failed queries are free.
| A compiled leads file | CrustAPI | |
|---|---|---|
| When records are collected | Months before you buy, on the vendor's schedule | The second you run the query |
| What you pay for | Every row in the file, dead or alive | one charge per record returned; empty and failed queries free |
| Proof of freshness | None; the file is a snapshot | scrapedAt timestamp on every record |
| Refreshing the list | Buy the file again | Run the query again; paid funds never expire between runs |
| Emails | Varies by vendor | Verified emails on LinkedIn people results; null when the check fails |
You pay the Maps rate for each business record a query returns. A query that returns nothing costs nothing. Here is what real lists 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.
Google Search starts at $1.00 per 1,000 successful requests, Maps at $1.96 per 1,000 businesses, LinkedIn reads at $6.00 per 1,000 successful requests, and People, Jobs and Refresh at $1.96 per 1,000 billing units. Full profiles in People use the LinkedIn read rate per full profile. Each deposit saves its own prices until spent. Every eligible account gets $6 of free usage monthly; paid funds never expire.
Related: B2B database · Lead scraper · Google Maps scraper API · Google Reviews API
When a compiled database is the better pick: you need millions of records this afternoon in one flat file, or you want firmographic depth like revenue bands and org charts that the big vendors compile over years. Those products are good at bulk and depth. This one is good at fresh and exact.
It depends which records you pull. Business records from Google Maps carry phone, website, address, rating, review count, categories, and hours, and never an email, because Maps listings do not show one. Verified emails come on people results from the LinkedIn endpoints, where an address is returned only after it passes a live verification check. When nothing passes, the field is null instead of a guess.
As fresh as the moment you ask. Records are pulled from the live public page at query time, and each one carries a scrapedAt timestamp so you can verify it. There is no warehouse of pre-collected rows aging behind the API.
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.
Logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims. Everything CrustAPI reads is visible to a signed-out visitor. Nothing comes from logged-in accounts or private data.
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.
Yes. The playground at /app runs every endpoint from a form and shows results in a table you can export. The API also plugs into Clay, n8n, LangChain, CrewAI, and MCP clients, so workflows and agents can build lists on their own.
Run one query on the free tier and look at the scrapedAt field on every record that comes back. That is the whole pitch.
Try for free