Skip to content

Releases: withqwerty/reep

v2.5.0

20 Apr 01:06
6243473

Choose a tag to compare

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

05 Apr 16:29
af1f11f

Choose a tag to compare

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 with opta.

Two other numeric systems already existed as separate providers:

  • premier_league — premierleague.com player page IDs (4.9K)
  • fpl_code — FPL / theanalyst.com sc-{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

05 Apr 10:38
ba5f47f

Choose a tag to compare

API

  • Add GET /health endpoint (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

05 Apr 01:32
59021b9

Choose a tag to compare

The initial public release of the Reep Register as a versioned product.

API

  • reep_id is 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: /resolve and /batch/resolve reject 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 in data/meta.json

Full plan: docs/plans/release-management.md