Public data access

Small, versioned JSON datasets for the site’s tools and reports.

Available datasets

Fetch example

const response = await fetch('/api/v1/phones.json');
if (!response.ok) throw new Error('Dataset unavailable');
const { phones } = await response.json();

Contract and limits

The current files are static snapshots, not live specification or price feeds. Schema version 1 preserves nulls rather than converting them to zero. The catalog report includes a content version; its downloadable snapshot uses that version in the filename. Do not interpret these files as complete buying advice.

An optional Node adapter in the repository supplies GET/HEAD routes, a 15-minute in-process data cache, ETags and a 60-request-per-minute limit per direct client address. It is tested locally but is not installed on the current static hosting configuration. Static-file downloads do not enforce that application limit. Production proxy handling and a shared rate limiter require deployment configuration.

Reuse

Only the site-authored aggregate counts are released under CC0. This endpoint does not redistribute image or model files. Retain attribution and source context for the phone facts, and independently check regional purchase requirements.

Choose a part