OrbTop

Fantasy Premier League (FPL) Official API Scraper

SPORTSDEVELOPER TOOLS

Fantasy Premier League (FPL) Official API Scraper

Scrapes the official Fantasy Premier League API — all ~700+ players with xG, xA, ICT index, ownership percentage, per-gameweek point history, current season fixtures — delivered as a clean, normalized Apify dataset. Built for FPL analytics tools, content sites, fantasy-data pipelines, and DFS modellers.

What you get

  • All active FPL players (~700-840 depending on season) with full stats: goals, assists, clean sheets, expected goals (xG), expected assists (xA), ICT index, form, PPG, ownership percentage, current price, and GW transfer activity.
  • Gameweek history (optional): per-GW points, minutes played, price, transfers in/out, and selection count — one timeline per player.
  • Fixtures (optional): the full current-season fixture list with home/away teams, scores, kickoff times, and gameweek numbers.

Inputs

Field Type Default Description
maxItems integer 0 (all) Maximum player records to return. 0 = all ~700+ players.
includeHistory boolean false Fetch per-player gameweek history. Adds one API call per player — use for analytics, leave off for a fast bootstrap-only run.
includeFixtures boolean false Append fixture records to the dataset after players.

Output schema

Each player record contains:

Field Type Description
player_id integer FPL element ID
web_name string Short name (e.g. "Salah")
first_name / second_name string Full name
team string Club name
position string GKP / DEF / MID / FWD
now_cost number Price in 0.1m units (130 = £13.0m)
total_points integer Total FPL points this season
form number Rolling 30-day average points per game
points_per_game number Season average points per game
selected_by_percent number Ownership percentage
minutes integer Minutes played
goals_scored / assists / clean_sheets integer Season totals
expected_goals / expected_assists number xG and xA
ict_index number Influence, Creativity, Threat composite
transfers_in_event / transfers_out_event integer Current GW transfer activity
gameweek_history string JSON array of per-GW stats (when includeHistory: true)
source string Source API endpoint

Fixture records use position: "FIXTURE" and pack fixture metadata into the gameweek_history field as a JSON object.

Use cases

  • FPL analytics dashboards — pull the full player pool into your tool without maintaining your own poller.
  • DFS and betting models — xG, xA, ICT index, and ownership in one call, ready for modelling.
  • Content automation — generate weekly player rankings, top transfers, value picks.
  • Historical analysis — gameweek history gives you the full season-to-date timeline per player.

Performance

The bootstrap-static endpoint returns ~2 MB of JSON in a single call — typically under 1 second. A full run with includeHistory: true for all 700+ players takes a few minutes at the polite 100ms call rate. A bootstrap-only run (default) completes in seconds.

Cost

This actor uses the official open FPL API — no proxy required. Running cost is near zero. Priced at the standard PPE rate with a 0.8x coefficient reflecting the minimal compute needed.

Notes

  • The FPL API is public and official. No authentication, no proxy, no anti-bot measures.
  • Player IDs are stable within a season but may change between seasons as new elements are added.
  • The gameweek_history field is a JSON string — deserialize with JSON.parse() in your downstream pipeline.
  • Fixture records are identifiable by position: "FIXTURE" in the dataset.