Projects Wiki Gaffer IQ The data

The data

Two sources, one serverless function, and everything else running in the browser — plus a frank list of what the FPL API does not give you.

Entry03 / 22 Revised2026-08-25 AuthorJosh Bailey Words161

Every piece of analytical logic runs in the browser. The one serverless function on Vercel exists solely because the FPL API sends no CORS headers — it fetches from an allowlist and forwards, and does nothing else.

The FPL API (fantasy.premierleague.com/api) supplies the spine: squads, prices, positions, fixtures, per-player histories, live gameweek scoring. What it conspicuously does not supply is most of what makes a matchup readable. There is no standings endpoint, so the league table is accumulated from the fixtures feed instead. There is no access to any season but the current one. There are no minute timings, no goal-to-assist pairing, and no teamsheet of any kind.

Understat, although not an API (understat.com), fills those gaps: expected goals for the shot-quality FPL never exposes, six seasons of cross-season fixture lists so head-to-head records can reach past August, chronological match timelines with minutes, and rosters carrying position codes and substitution linkage so a real starting XI and formation can be derived.

Referenced by

Nothing yet — an orphan entry.