NFL Stats and Play-by-Play Scraper
Pricing
from $15.00 / 1,000 results
NFL Stats and Play-by-Play Scraper
Get NFL player and team stats by week or season, play-by-play with EPA and win probability, snap counts, injury reports, rosters, depth charts, betting lines, weather and draft picks. Weekly player rows include snap share and injury status. Any season since 1999. Export to CSV or Excel.
This NFL scraper returns player stats, team stats, play-by-play, snap counts, injury reports, rosters, depth charts, schedules with betting lines and weather, draft picks and combine results as clean rows. Pick a season, add filters for teams, weeks, positions or player names and export the result. Data goes back to 1999.
The weekly player rows are built for fantasy football and modeling. Each row has the full stat line (passing, rushing, receiving, defense, kicking), advanced numbers such as EPA, CPOE, target share, air yards share and WOPR, three fantasy point columns (standard, half PPR, full PPR), plus the player's snap counts and share and the injury report status for that same week. You get what usually takes four separate downloads in one table.
Fantasy players, betting analysts, sports journalists, data scientists and students use it to rank players, build models and write about the game.
What can you do with this NFL scraper?
- Get weekly stats for every NFL player in a season
- Rank running backs and receivers by snap share and target share
- Find players who were listed as questionable or out on the injury report
- Pull play-by-play with EPA, win probability and success rate
- Download every pass play of one team in one week
- Get schedules with spread, total, moneylines, roof, surface, temperature and wind
- Compare teams by offensive and defensive EPA per week
- See passing drops, pressures and broken tackles from advanced reports
- List draft picks and combine results by year
- Export NFL data to CSV or Excel
What data can you extract from the NFL?
| Mode | One row is | Highlights |
|---|---|---|
| Player stats | One player and week, or season | Passing, rushing, receiving, defense, kicking, EPA, CPOE, target share, WOPR, fantasy points, snap share, injury status |
| Team stats | One team and week, or season | Team totals for offense and defense with EPA |
| Games | One game | Score, spread, total, moneylines, rest days, roof, surface, temperature, wind, quarterbacks, coaches, referee, stadium |
| Play-by-play | One play | Down, distance, field position, play type, description, EPA, win probability, players involved, scores |
| Injuries | One player and week | Report status, injury, practice status |
| Snap counts | One player and game | Offense, defense and special teams snaps and shares |
| Rosters and depth charts | One player | Position, jersey number, height, weight, college, IDs, depth chart slot |
| Advanced stats | One player and week | Drops, bad throws, pressures, blitzes, broken tackles, yards after contact |
| Draft picks and combine | One player | Round, pick, team, career value, forty time, vertical, bench |
| Player directory | One player | Birth date, position, college, latest team, IDs across sites |
How to scrape NFL stats
- Choose What to collect, for example Player stats.
- Enter a season such as
2024. Leave it empty for the latest season with data. - Add optional filters: weeks, teams, positions or player names.
- Set Max Items and click Start.
- Export the dataset as CSV, Excel or from the Apify console.
Input example
{"mode": "playerstats","seasons": ["2024"],"weeks": ["1"],"positions": ["QB"],"level": "week","includeContext": true,"maxItems": 50}
Player stats output example
{"playerDisplayName": "Patrick Mahomes","position": "QB","season": 2024,"week": 1,"team": "KC","opponentTeam": "BAL","completions": 20,"attempts": 28,"passingYards": 291,"passingTds": 1,"passingInterceptions": 1,"passingEpa": 11.08,"passingCpoe": 4.19,"fantasyPoints": 14.14,"fantasyPointsHalfPpr": 14.64,"fantasyPointsPpr": 15.14,"offenseSnaps": 54,"offenseSnapPct": 1}
Play-by-play output example
{"gameId": "2024_01_BAL_KC","posteam": "BAL","defteam": "KC","qtr": 1,"down": 2,"ydstogo": 13,"playType": "pass","desc": "(13:55) (Shotgun) 8-L.Jackson pass short right to 43-J.Hill pushed ob at BAL 29 for 2 yards (27-C.Conner).","yardsGained": 2,"epa": -0.39,"wp": 0.404,"passerPlayerName": "L.Jackson","receiverPlayerName": "J.Hill"}
How much does it cost to scrape the NFL?
You pay per result: $20 per 1,000 rows plus a tiny start fee. The free plan returns up to 10 rows per run. A full season of weekly player stats is about 19,000 rows and a full season of play-by-play is about 49,000 plays.
Tips for better results
- For play-by-play, use the play type and team filters to keep the dataset small. The default returns about 70 useful columns. Switch to all columns to get every one of the 370.
- Snap share and injury status are added to weekly player rows by default. Turn that off if you only need the stat line.
- Playoff weeks continue the numbering after the regular season, so in recent seasons week 19 is the first playoff round.
- Names accept partial matches, so
Mahomesfinds Patrick Mahomes. - Very recent games can take a day or two to appear.
Who uses NFL data?
- Fantasy football players rank players by usage, not just points.
- Betting analysts build models from EPA, lines and weather.
- Writers and podcasters back up their takes with numbers.
- Students and data scientists practice on clean, complete play-by-play.
Automate and connect
Schedule the Actor every Tuesday during the season to pull the latest week. Send finished datasets to Google Sheets, Zapier, Make or n8n, or trigger a webhook when a run ends.
FAQ
Do I need an NFL account? No. The Actor works without any login.
Where does the data come from? It is compiled by the open nflverse project and shared under the Creative Commons Attribution 4.0 license. Credit nflverse if you publish the data.
How far back does it go? Player stats, team stats and play-by-play start in 1999. Some reports, such as snap counts and injuries, start in later seasons.
Does it include college football? No. This Actor covers the NFL only.
Can I get live scores during a game? No. Data is published after games finish.
Legal note
This Actor collects information that is publicly visible on the website. Check the source site's terms and your local rules before using the data. Nothing here is betting or financial advice.
Support
Missing a field or found a bug? Open an issue from the Actor page.