Open data · CC-BY-4.0
The data, as data
The same 75 verified vendor records behind every page on this site — published as canonical open data for machines to ingest directly. Every figure carries the source URL it was captured from and the date it was last verified. No row appears without its provenance.
Download
Each section is published as a JSON document (full nested vendor + plan records with per-figure provenance) and a flat CSV (one row per plan). The Croissant descriptor lets Google Dataset Search and Hugging Face resolve the whole corpus as one citable dataset.
| Section | Vendors | Version | Downloads |
|---|---|---|---|
| AI Receptionists | 25 | Jun 10, 2026 | JSON CSV Methodology |
| Call Tracking | 16 | Jun 11, 2026 | JSON CSV Methodology |
| Business Texting | 17 | Jun 12, 2026 | JSON CSV Methodology |
| Online Booking | 17 | Jun 12, 2026 | JSON CSV Methodology |
- /data/index.json — the catalog (sections, versions, distribution URLs)
- /data/croissant.json — ML Commons Croissant 1.1 descriptor
- /data/datapackage.json — Frictionless Data Package (Table Schema per section)
- /data/price-history.jsonl — dated price change-log (NDJSON): every product price as-of a date, a line per change
How the data is made
Provenance on every figure
Each price, quota and overage rate is captured from a public pricing page — the vendor's
own wherever the vendor publishes the number, and otherwise a named public source recorded
in the same source_url column — and stored with that URL and the ISO date it
was accessed. Those two fields travel with the figure into both the JSON (a
sources array per plan) and the CSV (a source_url and
accessed_at column on every row). A number you cannot trace to a dated source
is a number we do not publish.
As this version was built, 452 of 7,483 plan rows
(6.0%) cite a host that is not the vendor's own
domain. On 2026-09-05 we re-read all 297 vendors whose plans cited a non-vendor host, moved
522 plans across 201 vendors onto the vendor's own page and corrected 65 figures; what
remains is plans the vendor does not publish, pages that could not be read, and
app-store-only products. The host is always visible in source_url, so you can
filter on it yourself.
The two-source rule
Where a second capture of the same figure was taken, it rides along on the same row
(corroboration_url / corroboration_accessed_at), with its own
access date because the two readings are often days apart. Treat that column as a second
recorded capture, not as proof of independence: it is not guaranteed to sit on a different
host from source_url — 307 of
1,791 corroborated rows name a host the source's own party publishes
and 52 repeat the source URL byte for byte — so compare
the two hosts before citing it as a second witness.
The change wire is where independence is enforced. A price-change record is published only once cleared against two witnesses from two different parties: the page the figure was read from, plus either a second source that is neither on that host nor on a subdomain of it, or a dated archive capture of that same page — and when the archive is the only second witness, that first page must be the vendor's own. Each capsule names which of the two cleared it, and the witnesses are witnesses to the new figure; the earlier figure is the one our dataset held at the previous dated capture.
Normalization
Plans are normalized to a common shape — monthly base price in USD, included minutes and
calls, marginal overage rates, billing model and any annual discount — so a flat-fee tool
and a metered platform line up on the same axes. Quote-only vendors are recorded as such
rather than assigned a guessed price; their rows carry capability data and an explicit
quote_only flag. Full per-section sourcing and freshness detail lives in each
section's methodology page.
Spotted an error? Corrections are free for everyone — see the corrections log or email contact@frontdeskreview.com.