Releases: withqwerty/reep
v2.5.0
Data
- API-Football player IDs: +14,054. Cross-referenced from public TheSportsDB records, accepted only when the date of birth matches the Reep entity. Coverage jumps from Premier League–only to global.
- ESPN player IDs: +9,948. Same cross-reference pass, same DOB safeguard.
- Capology IDs: +31,960. Auto-confirmed the subset where name uniqueness on both sides plus nationality agreement make the match unambiguous. The residual ambiguous pairs are under community validation.
Data quality
- All new IDs in this release are gated on date-of-birth exact match before writing. Records without a verifiable DOB or with conflicting DOBs are never auto-confirmed.
v2.2.0 — Split opta into opta (UUID) + opta_numeric
API
Clarifies Reep's Opta ID conventions. Stats Perform operates multiple distinct ID systems within the same "Opta" brand. Previously both UUIDs and legacy numeric codes were stuffed under a single opta provider. Now cleanly split:
opta— UUID format only (Stats Perform F1 / The Analyst). 50K players, 34 historical PL teams, 33 competitions, 14 historical PL seasons.opta_numeric— Legacy numeric codes from Wikidata P8735. 52 competitions. Still used by Opta Stats Centre and some feeds; not interchangeable withopta.
Two other numeric systems already existed as separate providers:
premier_league— premierleague.com player page IDs (4.9K)fpl_code— FPL / theanalyst.comsc-{code}numbers (2.5K)
See CLAUDE.md for the full Opta ID system breakdown.
Data
- 2,225 TheSportsDB team IDs (strict country+name matching, reserves/women/youth filtered)
- 147 Understat competition/team/season IDs from Kaggle dataset (6 leagues, 100 teams, 41 seasons)
- 98 FotMob competition IDs (FBref-bridged country-aware matching)
- 41 Opta UUID mappings (31 historical PL teams + 10 historical PL seasons from the WQ drive)
- 34 Opta competition UUIDs (from The Analyst power rankings)
- 19 Transfermarkt competition IDs (from dcaribou/transfermarkt-datasets)
- 466 FBref season IDs (derived from worldfootballR season URLs)
Wolves now resolves across 12 providers. Premier League across 7.
Migration notes
Consumers who were using opta to look up competition numeric codes (8, 23, 12 etc.) should switch to opta_numeric. The opta provider is now strictly UUID format.
No breaking changes for the 50K+ opta player IDs — those were already UUIDs.
v2.1.0 - Add /health endpoint
API
- Add
GET /healthendpoint (public, no auth) for uptime monitoring - Returns 200 with
{status, version, db, timestamp}when healthy - Returns 503 if D1 is unreachable
- Responses are not cached (
Cache-Control: no-store)
Example
$ curl https://reep-api.rahulkeerthi2-95d.workers.dev/health
{"status":"ok","version":"2.1.0","db":"ok","timestamp":"2026-04-05T10:38:38.005Z"}
v2.0.0 - Initial versioned release
The initial public release of the Reep Register as a versioned product.
API
reep_idis the canonical primary key (replaces Wikidata QID)- Endpoints:
/search,/lookup,/resolve,/stats,/batch/lookup,/batch/resolve - 43 providers supported across Wikidata-sourced and custom-verified mappings
- Provider validation:
/resolveand/batch/resolvereject unknown provider names with 400 - Full-text search with BM25 ranking, prefix matching, diacritics-insensitive
- Constant-time auth comparison, fail-closed when unconfigured
- Entity types: player, team, coach, competition, season
Data (2026.14)
- 490,922 entities (399K players, 45K teams, 44K coaches, 269 competitions, 2,502 seasons)
- 353,266 custom verified IDs across 14 providers
- 1.7M Wikidata-sourced provider ID mappings
- Non-football competition filter active
- Weekly incremental Wikidata refresh (Monday 04:00 UTC)
- Monthly dump reconciliation workflow operational
Infrastructure
- Reep ID migration complete (from QID composite key to self-minted
reep_<type><8hex>) - Incremental Wikidata update pipeline (replaces full seed for weekly runs)
- D1 time-travel recovery (30-day rollback window)
- Dump reconciliation: entity adds, ID corrections, remove candidates, occupation-lost tracking
Release management
This release introduces two-track versioning:
- API: semver (
v2.x.y) - bumped on endpoint, provider, or response changes - Data: calver (
YYYY.WW) - auto-stamped weekly indata/meta.json
Full plan: docs/plans/release-management.md