Skip to content

withqwerty/reep

Repository files navigation

Reep

CI

Charles Reep's match notations from 1953

The football entity register. Maps player, team, and coach identities across Transfermarkt, FBref, UEFA, Sofascore, and 30+ data providers.

Named after Charles Reep (1904--2002), an RAF wing commander who hand-recorded every action in over 2,200 football matches starting in the 1950s. He's considered the grandfather of football analytics -- decades before expected goals or tracking data, Reep was tallying passes, shots, and sequences with pen and paper, pioneering the idea that football could be understood through data.

What is this?

A canonical identity file for football. Every person and club gets a stable Wikidata QID, linked to their IDs on other platforms. If you have a Transfermarkt ID and need the FBref ID for the same player, this register gives you the answer.

Think of it as the football equivalent of the Chadwick Baseball Bureau Register.

Data

File Records Description
data/people.csv ~430K Players and coaches with provider IDs and bio
data/teams.csv ~45K Clubs with provider IDs and metadata
data/names.csv varies Alternate names and aliases
data/meta.json Generation timestamp and counts

People schema

Column Description Example
key_wikidata Wikidata QID (canonical key) Q99760796
type player or coach player
name Primary English name Cole Palmer
full_name Birth/legal name Cole Jermaine Palmer
date_of_birth ISO date 2002-05-06
nationality Country United Kingdom
position Playing position attacking midfielder
height_cm Height in centimetres 185
key_transfermarkt Transfermarkt player ID 568177
key_transfermarkt_manager Transfermarkt manager ID (coaches only) 50100
key_fbref FBref player ID dc7f8a28
key_soccerway Soccerway person ID 525801
key_sofascore Sofascore player ID 982780
key_flashscore Flashscore player ID palmer-cole/h8agbDt7
key_opta Opta player ID
key_premier_league Premier League player ID 49293
key_11v11 11v11 player ID 265554
key_espn ESPN FC player ID
key_national_football_teams National Football Teams ID 92970
key_worldfootball WorldFootball.net ID cole-palmer
key_soccerbase Soccerbase player ID 125454
key_kicker Kicker player ID cole-palmer
key_uefa UEFA player ID
key_lequipe L'Equipe player ID
key_fff_fr FFF.fr player ID
key_serie_a Lega Serie A player ID
key_besoccer BeSoccer player ID
key_footballdatabase_eu FootballDatabase.eu person ID
key_eu_football_info EU-Football.info player ID
key_hugman Barry Hugman's Footballers ID
key_german_fa DFB person ID
key_statmuse_pl StatMuse PL player ID
key_sofifa SoFIFA / EA FC player ID
key_soccerdonna Soccerdonna player ID (women's football)
key_dongqiudi Dongqiudi player ID
key_understat Understat player ID 1234
key_whoscored WhoScored player ID 456789
key_fbref_verified FBref ID (cross-verified via worldfootballR) dc7f8a28
key_sportmonks SportMonks player ID 12345
key_api_football API-Football player ID 1100
key_fotmob FotMob player ID 292462

Teams schema

Column Description Example
key_wikidata Wikidata QID Q9616
name Primary English name Arsenal F.C.
country Country United Kingdom
founded Founding date 1886-10-01
stadium Home ground Emirates Stadium
key_transfermarkt Transfermarkt team ID 11
key_fbref FBref squad ID 18bb7c10
key_soccerway Soccerway team ID 660
key_opta Opta team ID
key_kicker Kicker team ID
key_flashscore Flashscore team ID
key_sofascore Sofascore team ID
key_soccerbase Soccerbase team ID
key_uefa UEFA team ID
key_footballdatabase_eu FootballDatabase.eu team ID
key_worldfootball WorldFootball.net team ID
key_espn ESPN team ID
key_playmakerstats PlaymakerStats team ID
key_clubelo Club Elo team ID Arsenal
key_sportmonks SportMonks team ID 123
key_api_football API-Football team ID 42
key_sofifa SoFIFA / EA FC team ID 1
key_fotmob FotMob team ID 9825

Names schema

Column Description Example
key_wikidata Wikidata QID Q11893
name Primary name Cristiano Ronaldo
alias Alternate name Cristiano Ronaldo dos Santos Aveiro

Coverage

Not every entity has every ID. Coverage depends on what the Wikidata community has mapped plus custom verified mappings:

Provider Player coverage Source Notes
Transfermarkt Best Wikidata Highest coverage across all entities
FBref Good Wikidata Strong for recent players
Soccerway Good Wikidata Broad international coverage
Sofascore Good Wikidata Modern players well covered
Opta Sparse Wikidata Few entries have Opta IDs in Wikidata
Premier League Decent Wikidata PL players only
Understat ~2.3K Custom Matched via Transfermarkt bridge
WhoScored ~2.3K Custom Matched via Transfermarkt bridge
SportMonks ~600 Custom Players + teams via TM bridge
API-Football Growing Custom Name + DOB matching
Club Elo ~176 teams Custom Manual team mapping
FotMob ~4.6K Custom DOB + name matching (top 6 leagues)

IDs sourced from Wikidata are community-maintained. Custom IDs are verified independently — see the Reep API for methodology details.

Usage

Python

import csv

# Load people into a dict keyed by Transfermarkt ID
people = {}
with open("data/people.csv") as f:
    for row in csv.DictReader(f):
        tm_id = row["key_transfermarkt"]
        if tm_id:
            people[tm_id] = row

# Look up Cole Palmer's FBref ID from his Transfermarkt ID
palmer = people["568177"]
print(palmer["key_fbref"])  # "dc7f8a28"

R

library(readr)
people <- read_csv("data/people.csv")

# All Premier League-registered players
pl_players <- people |> filter(key_premier_league != "")

# Cross-reference: Transfermarkt -> FBref
people |>
  filter(key_transfermarkt == "568177") |>
  select(name, key_fbref, key_sofascore)

SQL (load into SQLite)

sqlite3 reep.db <<EOF
.mode csv
.import data/people.csv people
.import data/teams.csv teams
.import data/names.csv names
EOF
-- Find all IDs for a player
SELECT * FROM people WHERE name LIKE '%Salah%';

-- Reverse lookup: FBref ID -> everything
SELECT * FROM people WHERE key_fbref = 'e342ad68';

API

The Reep API provides the same data as the CSVs via a convenient REST interface. All providers (Wikidata + custom verified) are available to all plans.

Base URL: https://reep-api.rahulkeerthi2-95d.workers.dev

Endpoint Description Example
GET /search Search by name /search?name=Cole Palmer&type=player
GET /resolve Translate provider ID /resolve?provider=transfermarkt&id=568177
GET /lookup Look up by Wikidata QID /lookup?qid=Q99760796
GET /stats Database statistics /stats

Available on RapidAPI.

CLI

# Search by name
python cli/reep.py search "Cole Palmer"

# Resolve: Transfermarkt -> all IDs
python cli/reep.py resolve transfermarkt 568177

# Translate: just output the target ID (pipe-friendly)
python cli/reep.py translate transfermarkt 568177 fbref
# dc7f8a28

# Download CSVs for offline use
python cli/reep.py download

# Search offline
python cli/reep.py local "Salah"

Source

All data is extracted from Wikidata via SPARQL. Wikidata is a free, collaborative knowledge base maintained by thousands of volunteers. The cross-provider ID mappings exist because the Wikidata community has systematically added external identifier properties for football data sources.

Wikidata properties used

Property Provider
P2446 Transfermarkt player ID
P2447 Transfermarkt manager ID
P7223 Transfermarkt team ID
P5750 FBref player ID
P8642 FBref squad ID
P2369 Soccerway person ID
P6131 Soccerway team ID
P12302 Sofascore player ID
P8259 Flashscore player ID
P8736 Opta player ID
P8737 Opta team ID
P12539 Premier League player ID
P12551 11v11 player ID
P3681 ESPN FC player ID
P2574 National Football Teams ID
P2020 WorldFootball.net ID
P2193 Soccerbase player ID
P2276 UEFA player ID
P7361 UEFA team ID
P3665 L'Equipe player ID
P9264 FFF.fr player ID
P13064 Lega Serie A player ID
P12577 BeSoccer player ID
P3537 FootballDatabase.eu person ID
P7351 FootballDatabase.eu team ID
P3726 EU-Football.info player ID
P12606 Barry Hugman's Footballers ID
P4023 German FA person ID
P12567 StatMuse PL player ID
P12312 Kicker team ID
P7876 Flashscore team ID
P13897 Sofascore team ID
P7454 Soccerbase team ID
P7287 WorldFootball.net team ID
P1469 SoFIFA / EA FC player ID
P4381 Soccerdonna player ID (women's football)
P8134 Soccerdonna coach ID
P11379 Dongqiudi player ID
P7280 PlaymakerStats team ID

Updates

The register is rebuilt weekly from Wikidata. Each release picks up new entities, updated IDs, and corrections made by the Wikidata community.

Contributing

The best way to improve this register is to edit Wikidata directly. If a player is missing a Transfermarkt ID or FBref ID, add it to their Wikidata page. The next weekly build will pick it up automatically.

License

The data is derived from Wikidata and is available under CC0 1.0.

About

The football entity register. Maps player, team, and coach identities across Transfermarkt, FBref, UEFA, Sofascore, and 25+ data providers.

Resources

License

Stars

Watchers

Forks