2,500 free credits — no credit card required. Start building
A niche and a city in, rows out: business name, phone, email, website, rating, review count and address, already resolved. No extension, no proxy pool, no export queue.
2 endpoints · from 9 credits per row · up to 200 per call
Google Maps holds the most complete public directory of local businesses there is, and almost none of it is exportable from the interface. The data you can see — phone, site, rating, address — has no download button behind it.
This endpoint runs the search you would have run by hand and hands back the results as rows. The useful part is the enrichment: the email is not on the Maps listing, so it is resolved from the business's own site during the run and arrives on the same record.
Everything is public listing data. Nothing here reaches past what a person browsing Maps in your city could read.
query and location are the only two things you have to decide. Everything else has a default that is right for most runs.
curl "https://sensecollect.com/v1/maps/search?query=dentists&location=Berlin&limit=50" \ -H "x-api-key: $SENSECOLLECT_KEY"The unified record shape. contact.email and contact.website are the two fields the Maps interface will not give you, and the two that decide whether a row is a lead or a listing.
One business type, one market — dentists in Berlin, not healthcare in Germany. Narrow searches return cleaner rows and cost fewer credits for the same usable output.
enrich=false returns the listing as-is at 9 credits a row. The default enrich=true resolves contact details at 17. verify=true checks every contact is deliverable and drops the rows that fail, charging only for the ones that pass.
limit maxes at 200 per call. Cover a bigger area by splitting it into cities or districts rather than raising the limit — the results are better and you can stop wherever the returns flatten.
POST the ids of rows you have worked to /v1/leads/claim. Later searches skip them before billing, so you never buy the same lead twice.
Billed by the row you get back, not by the call. A search that returns nothing costs nothing.
What people ask before wiring the Maps endpoint into something.
Call GET /v1/maps/search with a query and a location, then write the data array to CSV. Each record is one business, flat except for the contact, location and metrics objects, so a CSV writer with a small field map handles it directly. The Maps interface itself offers no export, which is why this exists.
You can export the public side of it — everything a Business Profile shows on the map: name, category, address, phone, website, rating and review count. Owner-only analytics such as impressions or search terms live behind the profile login and are not public, so no external API returns them.
Yes, when one is findable. Maps listings do not carry an email, so with enrich=true the run visits the business's own website and resolves a contact address from it. Businesses with no website usually have no email either — which is exactly what makes them a web-design lead.
Up to 200 per call. Google's own map view thins out around the same point, so covering a large region works better as several city-level searches than one big one.
Collecting public business listing data is generally accepted, and the fields here are the ones any visitor can read. What you do next carries the real obligations: contacting the businesses puts you under GDPR, CAN-SPAM or your local equivalent, and a B2B phone number is still personal data in the EU. Check your own compliance position before you run an outreach campaign on any list.
An extension runs in your browser against the rendered page, so it breaks when the markup changes, cannot resolve emails from business websites, and cannot run on a schedule without you sitting there. This is a server-side call you can put in a cron job.
The explorer issues real requests without a key. When you are ready, signup adds 2,500 credits — about 147 enriched rows — with no card.