§ 03 — schema · data catalogue
What you actually get
when you query foot.io.
Every table, every column, every relationship. All data is versioned, cross-referenced, and exposed via REST + MCP.
Every match ever played in tracked competitions — full-time, half-time, extra time, and penalty scores.
match_datehome_team_idaway_team_id
home_scoreaway_scorekick_off
home_score_htaway_score_hthome_score_aet
away_score_aethome_penaltiesaway_penalties
matchdaystageattendance
statusreferee_idstadium_idseason_id
Biographical data with Wikidata/Transfermarkt/FBref/StatsBomb cross-references.
namefull_namedate_of_birth
country_idsecond_nationality_idposition
detailed_positionheight_cmweight_kg
preferred_footphoto_urlis_retiredexternal_ids
Per-season metrics including advanced FBref analytics (xG, xAG, progressive actions, SCA/GCA).
appearancesgoalsassists
xgxagminutes_played
shotsshots_on_targetkey_passes
progressive_passesprogressive_carriesshot_creating_actions
goal_creating_actionspasses_completedtackles
interceptionsaerials_wondribbles_completed
yellow_cardsred_cardsclean_sheetssaves
Per-shot expected goals with pitch coordinates, body part, outcome. Growing from StatsBomb open data.
match_idplayer_idminute
xgx_pitchy_pitch
body_partshot_typeoutcome
is_on_targetdistance_mangle_degassisted_by_player_id
Starting XI + substitutes per match with minutes played and positions.
match_idteam_idplayer_id
is_startershirt_numberposition_played
minutes_playedrating
Historical Transfermarkt valuations — track a player's value trajectory.
player_idvalue_datevalue_euros
source
Every tracked transfer with fees (EUR), type, and loan end dates.
player_idfrom_team_idto_team_id
transfer_datetransfer_typefee_euros
fee_is_estimatedloan_end_date
Minute-by-minute goals, cards, subs, penalties, own goals, VAR decisions.
match_idteam_idplayer_id
related_player_idevent_typeminute
added_timedetailis_extra_time
Pre-match closing odds across 1X2, O/U 2.5, Asian handicap from Bet365, Pinnacle, William Hill.
match_idbookmakermarket
home_oddsdraw_oddsaway_odds
over_oddsunder_oddsline
League positions per season. Computed from matches; includes form strings and point deductions.
season_idteam_idposition
playedwondrawnlost
goals_forgoals_againstgoal_difference
pointspoints_deductionform
Career-long injury timelines with reason, days missed, games missed.
player_idinjury_reasonfrom_date
end_datedays_missedgames_missed
Clubs and national teams with identifiers, logos, colors, founded year.
nameshort_namecode
country_idfounded_yearstadium_id
logo_urlcolorsis_national_team
Venue names, capacities, GPS coordinates, surface, opened year — via Wikidata SPARQL.
namecitycountry_id
capacitylatitudelongitude
opened_yearsurface
Match officials with country, DOB, and Wikidata cross-references.
namecountry_iddate_of_birth
external_ids
Leagues, cups, super cups, internationals by tier, gender, country.
namecountry_idcompetition_type
tiergenderage_groupis_active
The secret sauce — every name variation across sources maps to one canonical ID. "Man Utd" = "Manchester United" = "MUFC".
entity_typeentity_idaliassource_id