Notes on working with football data, written against this API. Everything here is checked against a real response rather than a schema, so the field names are the ones you will get.
They settle ties in three leagues and fill every match preview. Tested as a predictor on 3,042 league matches, this season's form beat them.
23 September 2026 · 6 min readA league table built from part of a season is not partial data, it is wrong data that looks right. The rule we apply, what it costs us, and why a 404 is the better answer.
8 September 2026 · 5 min readMost quota goes on requests that could not have returned anything new. Read the cache headers you are already being sent, stop polling faster than the data moves, and know which plan the thing you are building actually needs.
8 September 2026 · 6 min readGoal difference decides it in England, Germany and France. In Spain, Italy, Portugal and Turkey the head-to-head record comes first. Sort a table yourself and you have it wrong for four of the twelve.
8 September 2026 · 6 min readA working scoreboard in about 60 lines: what /matches/live returns, why you poll every 30 seconds and not faster, and why your API key must never reach the browser.
8 September 2026 · 7 min readA field-by-field walk through a match detail response: formations, starting elevens, the event timeline, and how to rebuild a goal-by-goal summary from it.
8 September 2026 · 6 min read