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
MCP server
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)
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
Corroboration before publication
Uncertainty is in the payload
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
The Digital Gap

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.
