2,500 free credits — no credit card required. Start building

SenseCollect logoSenseCollect
  • Sources
  • Solutions
  • Pricing
  • Tools
  • Blog
  • About
DocsGet API key
SourcesSolutionsPricingToolsBlogAboutDocs
Get API keyLog in
New: per-row pricing and an MCP server

Local business leads, one API call away

Every business in a niche and city, with phone, email, and website already resolved. You pay for the rows you get back — no per-call minimum, no subscription, credits that never expire.

Get API key

16 endpoints · 3 sources · 2,500 free credits

curl "https://sensecollect.com/v1/maps/search?query=dentists&location=Berlin&limit=50" \  -H "x-api-key: $SENSECOLLECT_KEY"
200 · application/json
{  "success": true,  "status": "completed",  "source": "google_maps",  "credits_used": 400,  "credits_remaining": 9600,  "count": 50,  "data": [    {      "id": "ChIJ0xT4…",      "type": "place",      "title": "Mitte Dental Studio",      "url": "https://maps.google.com/…",      "contact": {        "phone": "+49 30 000000",        "email": "hello@mittedental.example",        "website": ""      },      "location": { "address": "Torstraße 1, Berlin" },      "metrics": { "rating": 4.6, "reviews": 42 }    }  ]}

Collecting from the public surfaces your product needs

Google MapsAmazon reviewsTikTokBusiness listingsRatings & reviewsCreator profilesContact enrichmentProduct pagesGoogle MapsAmazon reviewsTikTokBusiness listingsRatings & reviewsCreator profilesContact enrichmentProduct pages
01 — Why SenseCollect

Billing you can predict, data you can join

The usual complaint about scraping platforms is the invoice, not the data. This one charges per row, tells you the cost in the response, and refunds itself when a run fails.

You pay for rows, not requests

No per-call minimum, no compute units. Credits are held, then settled against the rows that came back — ask for 200, get 12, pay for 12. Failed runs refund themselves and every response reports what it spent.

See what a row costs

One schema, every source

Every record arrives in the same top-level shape — author, contact, location, metrics, content. No per-source glue code, no schema that drifts when a page does, and the raw payload is still there under `raw`.

See the schema

Agents call it natively

An MCP server at /v1/mcp puts every source in front of an agent on the same key. Or use plain GETs with a machine-readable catalog at /v1/sources — either way the agent can budget itself before it spends.

See agent setup
02 — Use cases

Built for local lead work first

Agencies and freelancers use it to build lead lists their clients pay for. Reviews and trend data sit on the same key when the research work comes up.

Local lead generation

Build the lead list, not the scraper

One call returns businesses for a niche and city with phone, email, website, rating, and review count already resolved — leads, not listings. Filter to the ones missing a website and you have a web-design lead product.

GET /v1/maps/no-website?query=restaurants&location=Hamburg

Harbor Bistro+49 40 …no site
Kiez Grill+49 40 …no site
Alster Kaffee+49 40 …no site
Also on the same key: reviews

Mine complaints straight into your model

Pull reviews for any public ASIN and pipe the text into sentiment scoring, objection mining, or a support knowledge base. The complaints-only endpoint skips the paging.

GET /v1/amazon/complaints?asin=B09G9FPHY6

★146%
★221%
★311%
★49%
★513%

67% of records are complaints

Also on the same key: trends

Watch a topic move before it peaks

Poll a hashtag on a schedule and diff the engagement counts. Plays, likes, comments, and shares arrive as numbers, so velocity is a subtraction rather than a parse.

GET /v1/tiktok/hashtag?hashtag=fitnesscoach

plays · last 9 polls+312%
Competitive intel

Track a market across every public surface

Run the same question against maps, reviews, and posts, then join on the unified record shape. One schema means one join key and one storage table instead of three.

GET /v1/maps/search?query=coworking&location=Lisbon

google_maps→
amazon_reviews→
tiktok→
one record shapebilled once
03 — Coverage

16 endpoints, one schema

Click any tile to see its parameters, copy the request line, and run it live against the API right here.

GET/v1/maps/search· Maps

Businesses matching a query and location, with phone, email, website, rating, and review count.

request
curl "https://sensecollect.com/v1/maps/search?query=dentists&location=Berlin&limit=50&verify=true" \  -H "x-api-key: $SENSECOLLECT_KEY"
Responseawaiting run
// Hit “Run it” for a live response. Data endpoints// need your own key, so this one answers 401 until// you send x-api-key.
Parameters
querystringrequired
What to search for.
locationstring
City, region, or country. Defaults to United States.
limitinteger
How many places to return. Defaults to 50, max 200.
enrichboolean
Resolve contact details and social profiles. Costs more credits per row. Defaults to true.
verifyboolean
Check every contact is deliverable before returning it. Rows without one are dropped and cost nothing. 45 credits per verified row.
personal_onlyboolean
With verify=true, keep only named-person addresses and drop shared inboxes like info@.
skip_claimedboolean
Leave out leads already claimed on this account. Defaults to true.
04 — Schema

Every source returns the same record

A place, a review, and a post differ in what they mean — not in how you read them. Write the parser once.

Stable top-level fields

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.

Numbers stay numbers

Everything under `metrics` is a number or null — ratings, review counts, plays, likes. No string parsing before you can average, sort, or diff.

The raw payload never disappears

`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.

Read the schema reference
record · type: place
{  "id": "ChIJ0xT4…",  "type": "place",  "source": "google_maps",  "title": "Mitte Dental Studio",  "url": "https://maps.google.com/…",  "content": "Dentist",  "published_at": null,  "author":   { "name": "", "handle": "", "url": "" },  "contact":  { "phone": "+49 30 …", "email": "hello@…", "website": "" },  "location": { "address": "Torstraße 1, Berlin" },  "metrics":  { "rating": 4.6, "reviews": 42 },  "raw": { … }}
record · type: post
{  "id": "https://tiktok.com/@coach.mara/video/…",  "type": "post",  "source": "tiktok",  "title": "3 things I stopped doing…",  "content": "3 things I stopped doing…",  "published_at": "2026-05-02T09:14:00.000Z",  "author":  { "name": "coach.mara", "handle": "coach.mara", "url": "…" },  "metrics": { "plays": 812400, "likes": 94100, "comments": 2210 },  "raw": { … }}
The shortcut

A scraper stack, or one key

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.

Before — you orchestrate
Maps scraperown the proxies
Amazon scraperown the retries
TikTok scraperown the drift

3 vendors · 3 schemas · 3 bills

→
After — one call
GET /v1/maps/search
GET /v1/amazon/reviews
GET /v1/tiktok/hashtag

→ same envelope
→ same record shape
→ same credit ledger

1 key · 1 schema · 1 bill

05 — Agent ready

Connect with AI agents

Plug SenseCollect into Claude, Cursor, Codex, Windsurf — any MCP-compatible client — in seconds. Or point your agent at the quickstart and it onboards itself.

MCPDrop-in for any MCP client

Native tools for every MCP-compatible agent

One JSON block and every endpoint becomes a first-class tool. Same key, same per-row pricing, same records — the MCP server dispatches to the handlers the HTTP API uses.

Claude CodeCursorClaude DesktopCodexWindsurfCline
mcp.json
{  "mcpServers": {    "sensecollect": {      "type": "http",      "url": "https://sensecollect.com/v1/mcp",      "headers": { "x-api-key": "sc_live_YOUR_KEY" }    }  }}
See the MCP server reference
QuickstartClaude Code · Cursor · Codex

Point your agent at one URL

The integration guide is markdown at a stable URL — auth, every endpoint, the response schema, the error codes, and the rules worth keeping in project context. Your agent fetches it and wires itself up.

shell
curl -s https://sensecollect.com/agent-quickstart.md
DiscoveryNo key required

It can read the catalog before it has credentials

Every source, endpoint, parameter and per-row price as JSON. An agent plans and prices a call before anyone pays for anything — then reads credits_used off each response to budget itself.

shell
curl -s https://sensecollect.com/v1/sources
06 — Scale

What one key replaces

Sources covered
3

Maps, Amazon, TikTok

API endpoints
16

One schema · one auth header

API key needed
1

HTTP and MCP, same key

Free credits on signup
2,500

No card. Around 147 enriched leads.

07 — Pricing

Pay per row. Nothing expires.

No subscription, no monthly minimum, and no charge for a call that comes back empty. Buy another pack only when you need one.

Which pack fits your usage?

You pay for rows, not requests — so tell us how many rows a month you need. Calls that return nothing cost nothing.

Rows per month5,000
10050,000+
What kind of rows?
Your pack

Agency Pack

80,000 credits · $99 · never expire

Cost per 1,000 rows
$21.04
One pack lasts
0.9 mo
You save vs Starter
$11.26 / 1k

Estimates use published per-row rates. Every response reports the credits it actually consumed, and failed runs are refunded in full.

Starter Pack

Wiring up the API and validating a niche

10,000 credits

$19one-time

$1.90 per 1,000 credits · 588 enriched local leads

  • Every source on one key
  • Priced per row, no per-call minimum
  • Credits never expire, no subscription
  • Failed runs refunded automatically
Most popular

Growth Pack

Weekly prospecting runs and agent workloads

30,000 credits

$49one-time

$1.63 per 1,000 credits · 1,764 enriched local leads · 14% cheaper per row

  • Every source on one key
  • Priced per row, no per-call minimum
  • Credits never expire, no subscription
  • Failed runs refunded automatically
  • MCP server for agents, same key

Agency Pack

High-volume list building across a client roster

80,000 credits

$99one-time

$1.24 per 1,000 credits · 4,705 enriched local leads · 35% cheaper per row

  • Every source on one key
  • Priced per row, no per-call minimum
  • Credits never expire, no subscription
  • Failed runs refunded automatically
  • MCP server for agents, same key
  • Lowest price per row
2,500 free credits, no cardCredits never expireEvery response reports its costFailed calls refund automatically

Questions about pricing

Everything about credits, refunds, and what a call actually costs.

Does SenseCollect charge a subscription?+

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.

Do credits expire?+

No. Credits stay on the account until you spend them, whether that takes a week or a year.

What does one call cost?+

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.

Can I get contacts that actually reach someone?+

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.

What if a call returns fewer rows than I asked for?+

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.

Do I pay for failed calls?+

No. If an upstream run fails, the credits are returned to your account automatically and the response tells you they were refunded.

Is there a free tier?+

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.

08 — Get started

Ship the data layer before lunch

3 sources. One API key. One schema. Two lines to your first response.

Get API keyRead the docs
your first call
curl "https://sensecollect.com/v1/maps/search?query=dentists&location=Berlin" \  -H "x-api-key: $SENSECOLLECT_KEY"

Latest from SenseCollect

View all posts
Data · 5 min read

Business Data Scraper: What the Fields Actually Are

Most disappointment with business data tools comes from expecting fields that were never on the source. Here is the honest inventory.

Read article
Google Maps · 9 min read

The Google Local Pack: What It Is and What You Can Scrape From It

Three surfaces look identical on a results page and expose completely different fields. Knowing which one you are looking at decides whether your data is collectable.

Read article
Lead generation · 6 min read

Which Local Niches Are Actually Worth Prospecting

A personal injury firm and a yoga studio are the same API call with a different query string, and completely different businesses to sell to.

Read article

Frequently asked questions

Still unsure? The catalog at /v1/sources is public — read it before you sign up.

What is SenseCollect?+

An 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.

Can an agent use it?+

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.

Why not build the scrapers myself?+

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.

How fresh is the data?+

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.

How fast is a call?+

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.

Are there rate limits?+

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.

Can I still get a CSV?+

Yes. Every API run is also saved in your dashboard as a downloadable CSV, so the same call serves a pipeline and a spreadsheet.

sensecollect/
SenseCollect logo

The local lead data API. One key, one unified schema, priced by the rows you get back.

No subscriptionCredits never expireNo per-call minimumRefund on failed runs

API

DocumentationResponse schemaMCP serverExplorerCatalog (JSON)Error codesChangelog

Sources

MapsAmazon reviewsTikTokAll sources

Guides

Leads by niche & cityLocal business leadsRestaurant leadsNo-website leadsExport Maps dataExport Amazon reviewsAuf Deutsch

Company

PricingComparisonsSolutionsToolsBlogAboutContact

Account

Get API keyLog inAPI keysCredits

© 2026 SenseCollect

Public data only. Review every response before you act on it.