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.

7937entities
10181latest events
94dated 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 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.

Open manifest →

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.

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