OrbTop

Fantasy Premier League (FPL) Official API Scraper

SPORTSDEVELOPER TOOLS

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

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. Running cost is near zero, and it is priced at the standard pay-per-event rate to match the minimal compute needed.

Notes

  • The FPL API is public and official, and needs no authentication.
  • 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.

Further reading: Sports Results & Fixtures Data: APIs, Feeds and Bulk Exports