Go from a niche and a city to your next lead list.
Phone, email, and website. One API call. Yours to build with.
curl --get "https://dev-sensecollect.hub.chrislutz.me/v1/maps/search" \ --data-urlencode "query=dentists" \ --data-urlencode "location=Berlin" \ --data-urlencode "limit=3" \ -H "x-api-key: $SENSECOLLECT_KEY"/v1/maps/searchHTTP + MCPA predictable bill. A consistent record. An agent that can get to work. The small decisions that make your data layer easier to build on.
Rows requested200
Rows returned12
Ask for 200, get 12, pay for 12. No per-call minimum. Failed runs refund automatically.
See what a row costsConsistent fields across sources. Numbers stay numbers. The original payload stays within reach.
Explore the schemaDiscover tools
Read per-row pricing
Collect public data
transport: streamable-httpEvery source as an MCP tool. The same API key, the same pricing, and a catalog it can read first.
Connect your agentThe next lead list. A sharper market insight. An agent that knows what is happening. Give your ideas the data to go further.
Find local businesses with the contact details already resolved. Go from a niche and a location to the next opportunity in your CRM.
GET /v1/maps/searchBusiness leads, product reviews, and social content. Explore what each source returns, then take the same record shape into your application.
Find businesses by niche and location. Add contact enrichment, filter by website availability, or verify contacts before using them.
One normalized record shape across sources.
A place, a review, and a post differ in what they mean — not in how you read them. Write the parser once.
id, type, source, title, url, content, published_at, author, contact, location, metrics. Present on every record from every endpoint, empty rather than missing when a source has nothing to say.
Everything under `metrics` is a number or null — ratings, review counts, plays, likes. No string parsing before you can average, sort, or diff.
`raw` carries the full source-shaped record. Use the unified fields for the 90% case and drop into `raw` when you need something source-specific.
{ "id": "example_place_01", "type": "place", "source": "google_maps", "title": "Mitte Dental Studio", "url": "", "content": "Dentist", "published_at": null, "author": { "name": "", "handle": "", "url": "" }, "contact": { "email": "hello@mittedental.example", "phone": "+49 30 000000", "website": "" }, "location": { "address": "Berlin, DE" }, "metrics": { "rating": 4.6, "reviews": 42 }, "raw": {}}Every source you add on your own is another proxy pool, another retry policy, and another schema to keep in sync. Behind one key, that is somebody else's on-call rotation.
Every new source adds another moving part.
/v1/maps/searchOne authenticated request. A structured response.
More time for the part only you can build.
Plug SenseCollect into Claude, Cursor, Codex, Windsurf — any MCP-compatible client — in seconds. Or point your agent at the quickstart and it onboards itself.
Find dentists in Berlin. Check the price before you collect.
GET /v1/sourcesRead endpoints, parameters, and per-row costs.
maps_search · dentists · BerlinChoose the source and set a result limit.
Structured records and reported credit usage. Ready for the next step in your workflow.
Connect any compatible MCP client with your existing key. Or give your agent the quickstart and let it read the integration guide.
{ "mcpServers": { "sensecollect": { "type": "http", "url": "https://dev-sensecollect.hub.chrislutz.me/v1/mcp", "headers": { "x-api-key": "sc_live_YOUR_KEY" } } }}Three sources, a single interface. Bring public data into the tools you already build with, without maintaining a different pipeline for each one.
Maps, Amazon, TikTok
One schema · one auth header
HTTP and MCP, same key
No card. Around 147 enriched leads.
No subscription, no monthly minimum, and no charge for a call that comes back empty. Buy another pack only when you need one.
Business details with contact enrichment. Verification is not included.
Total results for your project. No monthly commitment.
Buy the listed packs separately. Credits never expire. Estimated usage assumes all requested results are returned.
Capacity for business leads, before signup credits.
Wiring up the API and validating a niche
10,000 credits
$1.90 per 1,000 credits · 588 enriched local leads
Weekly prospecting runs and agent workloads
30,000 credits
$1.63 per 1,000 credits · 1,764 enriched local leads · 14% cheaper per row
High-volume list building across a client roster
80,000 credits
$1.24 per 1,000 credits · 4,705 enriched local leads · 35% cheaper per row
Everything about credits, refunds, and what a call actually costs.
No. SenseCollect sells one-time credit packs. You buy a pack, spend credits when you call the API, and top up when you choose to. There is no monthly fee, no seat count, and nothing to cancel.
No. Credits stay on the account until you spend them, whether that takes a week or a year.
Calls are priced by the rows they return — there is no per-call minimum. An enriched local lead is 17 credits, an Amazon review 7, a TikTok post 10, and a credit is a tenth of a cent at list price. The catalog at /v1/sources publishes the per-row rate for every endpoint, and every response reports exactly what it consumed.
Yes — add verify=true to a Maps search. Every address is checked before the row is returned, rows without a deliverable contact are dropped, and only the rows that pass are charged. Add personal_only=true and shared inboxes like info@ are dropped too, so you get a named person or nothing.
You are charged for what came back. Credits are held against your limit when the run starts, then settled against the rows it collected and the difference is refunded — so asking for 200 places in a town that only has 12 costs you 12 rows, not 200. A call that finds nothing is free.
No. If an upstream run fails, the credits are returned to your account automatically and the response tells you they were refunded.
New accounts start with 2,500 credits, no card required. /v1/account, /v1/sources, /v1/jobs/{id}, watches, and claimed leads are always free to call.
3 sources. One API key. One schema. Two lines to your first response.
curl "https://dev-sensecollect.hub.chrislutz.me/v1/maps/search?query=dentists&location=Berlin" \ -H "x-api-key: $SENSECOLLECT_KEY"A practical guide to Amazon review data: official feedback insights, review collection, ASIN selection, and the limits that matter for analysis.
Read articleAmazon · 5 min readBuild a useful Amazon search dataset with query context, ASINs, organic and sponsored positions, prices, and collection timestamps.
Read articleLead generation · 5 min readA practical auto repair lead generation plan for workshops, plus the difference between driver enquiries and lists of repair businesses.
Read articleStill unsure? The catalog at /v1/sources is public — read it before you sign up.
Browse the docs for implementation details, or talk to us about your use case.
Read the documentationGet in touchAn HTTP API for local business lead data, with Amazon reviews and TikTok posts on the same key. You send a GET request with an API key; SenseCollect runs the collection against the live source and returns records in a single unified schema, priced by the rows it returns.
Yes — there is an MCP server at /v1/mcp exposing every endpoint as a tool, on the same key and the same per-row pricing. Agents that do not speak MCP can use the plain GET endpoints and read /v1/sources to discover them.
For a single source, building it yourself is reasonable. What you own afterwards is the source changes, the retries, the proxying, the deduping, and a schema that drifts every time a page does — SenseCollect is the version where that is someone else's on-call rotation.
Every call collects against the live source at request time. Nothing is served from a stale cached index, which is also why a large pull takes seconds rather than milliseconds.
Small pulls typically return inside one request. Larger ones can outlive the request budget — those return a job id with a 202, and you poll /v1/jobs/{id} for the result. Pass async=true to skip waiting entirely.
There is no per-minute request cap. Concurrency is bounded per account instead, and credits are the real limit — if you need dedicated throughput, get in touch before you build against it.
Yes. Every API run is also saved in your dashboard as a downloadable CSV, so the same call serves a pipeline and a spreadsheet.
2,500 free credits — no credit card required. Start building