Versioned public contract

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.

8034entities
8328latest events
95dated snapshots
2026-06-16history begins

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.json

changes/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 lists each entity with its shard at the root shard_modulus, which is every month's modulus unless month_shard_moduli names that month; each month index states its own shard_modulus, and an entity's shard in a month is the first 32 bits of the SHA-256 of its id modulo that month's modulus, so read the modulus from the month index, not the root; 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.

Open manifest →

History coverage

This history is not contiguous. It holds 95 dated snapshots beginning 2026-06-16, but 24 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.

The same list is machine-readable as snapshot_missing_dates in the manifest and as coverage.missing_dates in /data/v1/snapshots/index.json.