A fantasy football API for developers
Quick answer: GridIron Data is a REST API that returns fantasy football data as JSON. It covers PPR projections, weekly actuals from 2020 through the current 2026 season, snap share, injury status, player news and matchup history. You send one x-api-key header. A free key allows 50 requests a month with no credit card for player lookups and this week's projections; the rest of the data starts at Basic, $5 a month.
- Seasons of actuals
- 2020–2026
- Scoring
- PPR, half, std
- Auth
- x-api-key
- Free plan
- 50 req/month
What is a fantasy football API?
A fantasy football API is a web service that returns player data your code can use. You ask for a player, a week or a position. You get back JSON with projections, stats and status. You skip the work of collecting, cleaning and matching data from many sources.
GridIron Data is built for developers who write their own tools. It is not a fantasy app and it does not host leagues. It gives you the data layer so your app, bot, spreadsheet or model can make the decisions.
What data does GridIron return?
| Data | Endpoint | Coverage |
|---|---|---|
| Player profile and status | /players/{player_id} | Every fantasy-relevant player |
| Weekly PPR projections | /projections/{week} | Current season, by position |
| Game-by-game actuals | /stats/{player_id}/{season} | 2020–2026 |
| Actual vs projected | /deviations/{player_id} | Weekly deltas and averages |
| Snap share | /snaps/{player_id} | Per week, 0–100 |
| Matchup history | /matchups/{player_id}/{opponent} | Splits vs one team |
| Player news | /news/{player_id} | Impact-tagged, 90 days |
| Rest-of-season projections | /projections/ros | Weeks left, byes skipped |
| Schedule and bye weeks | /schedule, /byes | Kickoffs, scores, byes |
| Injury changes (Pro) | /injuries/changes?since= or webhooks | Every 2 minutes |
| Prop probabilities (Pro) | /props?player_id=&stat=&line= | P(over/under), fair odds, backtest |
| Defense vs position (Pro) | /defense?position= | Per game, ranked, from box scores |
| Betting lines and per-stat projections (Pro) | odds on /schedule, projected_stats on /projections | Spread, total, moneylines, implied points |
How do I make my first call?
- Create a free account and confirm your email.
- Copy your key from the dashboard.
- Send it in the
x-api-keyheader.
curl -H "x-api-key: YOUR_KEY" \
"https://api.gridirondata.com/api/v1/players?name=Josh%20Allen&position=QB"
Player IDs use the form First Last#POS, such as Josh Allen#QB. URL-encode the space and the # when you put an ID in a path. The API reference lists every parameter.
What can I build with it?
- A start/sit helper. Pull this week's projections for your roster and rank them. See the start/sit guide.
- A draft board. Rank players by value over replacement. See the draft tool guide.
- A Discord or Slack bot. Answer "who should I start?" with live projections and news.
- A breakout finder. Use deviations and snap share to spot rising roles. See the breakouts guide.
- An AI assistant. Our MCP server lets Claude query the API in plain English. See the MCP guide.
What does it look like in Python?
This script prints the top five projected running backs for a week. It uses the requests library and one API call.
import os, requests
API = "https://api.gridirondata.com/api/v1"
headers = {"x-api-key": os.environ["GRIDIRON_KEY"]}
r = requests.get(f"{API}/projections/4", params={"position": "RB"}, headers=headers)
r.raise_for_status()
for p in r.json()["projections"][:5]:
print(p["player_name"], p["projected_points"])
Cache results for a few hours. Projections refresh once a day, so polling every minute only spends your quota.
What are the limits?
Stats land the day after games, at about 11:00 ET. GridIron has no live in-game scoring. Projections default to PPR; add ?scoring=half or ?scoring=standard for the other formats. Injury status is checked against ESPN's injury report every 2 minutes from 8:00 am to 1:00 am ET. If you need live play-by-play, a free option such as nflverse may suit you better.
Frequently asked questions
Is there a free fantasy football API?
Yes. GridIron Data has a free plan with 50 requests a month and no credit card, covering player lookups and the current week's projections. Stats, snaps, news and other weeks need Basic at $5 a month. Open data projects such as nflverse are also free if you want raw play-by-play data.
What scoring format does GridIron use?
PPR (point per reception) is the default. Add ?scoring=half or ?scoring=standard to projections and stats for half-PPR or standard scoring.
Does GridIron have live in-game stats?
No. Stats land the day after games, around 11:00 ET. Injury status is checked against ESPN every 2 minutes from 8:00 am to 1:00 am ET.
How do I authenticate?
Send your API key in the x-api-key header on every request to https://api.gridirondata.com/api/v1.