One endpoint, one gameweek: the projections every player page on FPL Cat shows, for all ~670 players at once. Use it in a spreadsheet, a script, your own tools, or to benchmark our model against others.
Next-gameweek projections
GET https://fplcat.com/api/v1/projections
GET https://fplcat.com/api/v1/projections?format=csv- No API key, no login, no rate-limit headers. CORS is open, so it works from a browser too.
- Responses are cached for 5 minutes; fetching more often than that gets the same answer.
- JSON (default): the gameweek, its deadline, when our model computed the numbers, and one entry per player, highest projection first.
- CSV (
?format=csv): one row per player, the same fields, with the gameweek and computed time on every row.
curl https://fplcat.com/api/v1/projections
curl -o projections.csv "https://fplcat.com/api/v1/projections?format=csv"Example response
Live, from the current gameweek (first two players):
{
"gameweek": 7,
"deadline": "2026-10-17T10:00:00Z",
"computed_at": "2026-10-13T16:20:06.657Z",
"players": [
{
"id": 411,
"name": "Haaland",
"team": "MCI",
"position": "FWD",
"price": 15.6,
"status": "a",
"fixtures": 1,
"xp": 7.73,
"expected_minutes": 85,
"play_chance": 0.99,
"p_return": 0.66,
"p_haul": 0.31,
"p_blank": 0.34
},
{
"id": 12,
"name": "Saka",
"team": "ARS",
"position": "MID",
"price": 9.6,
"status": "a",
"fixtures": 1,
"xp": 5.54,
"expected_minutes": 80,
"play_chance": 0.96,
"p_return": 0.45,
"p_haul": 0.19,
"p_blank": 0.52
},
…
]
}Fields
- id
- FPL's own player id: the same as elements[].id in FPL's bootstrap-static, so it joins straight onto FPL data.
- name
- FPL's short name (web_name).
- team
- Club short name, e.g. ARS.
- position
- GKP, DEF, MID or FWD.
- price
- Current price, £m.
- status
- FPL's availability flag: a available, d doubtful, i injured, s suspended, u unavailable, n not in the squad.
- fixtures
- His team's fixtures this gameweek: 0 is a blank, 2 a double.
- xp
- Projected points: the average our model expects, summed over a double gameweek's fixtures.
- expected_minutes
- Expected minutes.
- play_chance
- Chance he plays at all, 0-1 (summed over a double gameweek, so it can pass 1).
- p_return
- Chance of a goal or an assist.
- p_haul
- Chance of 10 or more points.
- p_blank
- Chance of 3 or fewer points, not playing included.
Top-level: gameweek (the next gameweek), deadline (its FPL deadline, UTC), computed_at (UTC) and players.
When it updates
- Our model runs every morning, again whenever FPL changes a player's injury or availability news, and in the two hours before each deadline.
- The final numbers for a gameweek are the ones from shortly before its deadline. After the deadline, the endpoint moves on to the next gameweek.
- Prices and status are current at the time of the request;
computed_attells you how fresh the projections are. - Points are projections from our model: averages, not predictions of exactly what a player will score.
Versions
The path carries the version (/api/v1/). Within v1 we may add fields but won't rename or remove them; a change that would break your code gets a new version, with v1 kept running alongside it for a while.
Using the data
- Free for personal use, research, and comparing or benchmarking prediction models.
- Share and publish what you find: credit “Projections: FPL Cat (fplcat.com)” with a link.
- Republishing our projections in a paid product or service, or presenting them as your own, needs our written permission: [email protected].
- No guarantees of uptime or accuracy. See the terms.
For AI assistants
To use FPL Cat from ChatGPT, Claude or an agent rather than code, connect our MCP server at https://fplcat.com/mcp (setup guide): it can rate a team, pick a captain and look up players, fixtures and injuries.
Questions and ideas
Missing a field or another endpoint you'd use? Email [email protected].