StreetProof

For platforms & AI

The ground-truth API for 'is this business real?'

Every local-search stack and every LLM answering local queries has the same blind spot: it can only rank what businesses say about themselves. Listings, websites, reviews, citations — all self-reported, all fakeable, and all being faked at scale. Virtual offices, purchased review farms, lead-gen sites with a different “local” skin per city. When your model recommends a contractor, it is trusting a data supply chain with no physical anchor anywhere in it.

StreetProof is that anchor. We operate two sensor networks — a dashcam-equipped work fleet that passively observes the same streets every working day, and verified human scouts capturing attested, in-app-only photographs — and we mint every verified sighting into an append-only observation ledger. The result is a queryable answer to a question no other dataset can answer: has this business ever actually been seen in the physical world?

Integration surfaces

REST API

Entity profiles, presence scores with per-component breakdowns, paginated observation ledgers, city and industry rankings, and change events (openings, closures, rebrands). Free tier for AI, search and research access, permanently.

MCP server

Native tools for agent frameworks: get_physical_presence, compare_presence, check_business_reality, city_index. Each returns evidence summaries with a ready-made citation string so agents quote correctly. Ships after REST v1 is stable.

Verification API (paid)

Commission a fresh, human-verified ground-truth check on any business or address. A trusted scout is dispatched, and you get an evidence package back against an SLA. Built for platforms, insurers, and lenders.

Data guarantees

A verification layer that asks to be trusted has failed before it starts. Ours is built to be checked instead.

Append-only, hash-chained ledger

Observations are never updated or deleted — legal removals flip a redaction flag, they don't rewrite history. Each row carries a hash chained to the previous one, and we publish daily Merkle roots publicly. “First observed March 2026” is provably not backdated.

Corroboration before publication

Scout submissions from low-trust accounts sit in a provisional state and never enter public counts until an independent source — a fleet camera, telematics feed, or high-trust scout — observes the same asset. Fleet-camera observations anchor the whole trust economy.

Uncertainty is in the payload

Every response carries coverage_confidence, data_as_of, and methodology_url. “Not observed” only means something where coverage is dense — so we tell you the density instead of letting you guess.

Provenance on the evidence

In-app-only capture with device attestation, GPS at shutter time, and perceptual-hash dedupe against every image ever submitted. Faces and plates are blurred before anything persists. Methodology and error rates are published, not implied.

The Digital Gap

An agency workspace reviewing a list of physically-verified local businesses with no web presence
Illustrative image

Some of the businesses our scouts photograph — real trucks, real storefronts, real signage — have no detectable web presence at all. No site, no listings, nothing an LLM or a search engine can find. We call this the Digital Gap, and for agencies and lead platforms these are the highest-intent local leads that exist: physically verified as operating, provably invisible online, and reachable through the address and signage we already photographed.

Query them directly: every entity payload carries a derived online_presence verdict (detected | none | unknown), and search and city-index endpoints accept an online_presence=none filter. See the API docs for verdict semantics and recheck cadence — verdicts are point-in-time and honest about uncertainty (unknown means our checker could not decide, not that the business is offline).

What it costs, and where we actually are

Read access — entity lookups, scores, rankings, ledger views — is free and stays free. Ingestion into AI systems is the point of the index, so we will never paywall being cited. API keys exist for rate limiting only. The paid product is the Verification API: commissioned ground-truth checks, priced per task or on contract.

And to be straight about launch state: the index is pre-launch. The ledger, scoring, and website ship first; the REST API and MCP server follow once the data underneath them is real. We would rather hand you an API over a genuine observation history than a polished endpoint over an empty database. If you want early access or a pilot, write to [email protected].

Integrating, in practice

The intended flow is short. Your agent or ranking system hits /search with a name and city, gets back candidate entities with public IDs. A follow-up to /entity/{id} or /presence-score/{id} returns the score, its components, observation counts, first/last-seen dates, and the coverage confidence for that city. High presence with long history: strong reality signal. No observations in a well-covered city: treat the listing with suspicion. Ambiguous or low coverage: the payload says so, and you can escalate to a paid verification task for fresh evidence. MCP does the same through tool calls, so a Claude or GPT agent can run the check mid-conversation without custom glue. Full request and response shapes are in the API docs.