RepoRadar Data API v1
Machine-readable, partitioned decision intelligence with explicit schemas, build identity, generation time, exact retained GitHub star observations, full change events, dated snapshots with explicit coverage, and lazy item details.
Endpoints
GET /data/v1/manifest.json
GET /data/v1/curated.json
GET /data/v1/verification-cohort.json
GET /data/v1/changes/latest.json
GET /data/v1/changes/stream.json
GET /data/v1/changes/archive/index.json
GET /data/v1/comparisons/index.json
GET /data/v1/snapshots/index.json
GET /data/v1/history/gh-openai-codex.json
GET /data/v2/history/index.json
GET /data/v2/history/<yyyy-mm>/index.json
GET /data/v2/history/<yyyy-mm>/shard-NN.json
GET /data/v1/test-logs/run-<hex-encoded-run-id>.txt
GET /data/v1/schema.jsonchanges/latest.json and changes/stream.json are bounded indexes: read inline events, then follow every declared shard to obtain the complete advertised count. Every core and detail record exposes its exact history_url; entity IDs are not URL templates. Each search-core record also names its lazy detail shard. Consumers must check schema_version and build_id before joining artifacts.
/data/v2/history/ is the append-only history format (schema 2.0.0): the root index maps each entity to a month shard (shard_modulus); each month shard holds a full checkpoint per entity plus deltas only for dates whose values changed, and the month index lists evaluated_dates, so a date with no delta means evaluated and unchanged. Observation references live in observations/<yyyy-mm>/ as value intervals, change events in changes/<yyyy-mm>/. v2 files carry no build_id; their integrity is the sha256 listed in the month index and artifact-manifest.json, and closed months never change. Per-entity /data/v1/history/ files remain published and are derived from the same points.
History coverage
This history is not contiguous. It holds 94 dated snapshots beginning 2026-06-16, but 23 dates in that range have no snapshot, because no catalog was produced on those days. They are not reconstructable and RepoRadar does not interpolate them; a comparison that spans one of these dates is measuring across a gap, not across a quiet period.
2026-07-032026-07-052026-07-152026-07-162026-07-222026-07-232026-07-242026-07-252026-07-262026-07-272026-08-162026-08-222026-08-232026-08-242026-08-272026-08-312026-09-062026-09-092026-09-102026-09-142026-09-162026-09-182026-10-04
The same list is machine-readable as snapshot_missing_dates in the manifest and as coverage.missing_dates in /data/v1/snapshots/index.json.