Open data
Three JSON files: the player-ID crosswalk, FAAB clearing prices, and the closing line for every NFL game since 1999. Anonymous, CORS on, no key.
/api/players.json
Sleeper, GSIS (nflverse), ESPN, Yahoo, RotoWire, and Sportradar ids side by side, with name, team, and position. Built from Sleeper’s player file; cached a day.
{
"source": "sleeper players + nflverse gsis",
"count": 11826,
"players": [
{ "sleeper_id": "4866", "gsis_id": "00-0034844", "espn_id": "3929630",
"yahoo_id": "30972", "rotowire_id": "12507", "sportradar_id": "9811b753-…",
"name": "Saquon Barkley", "team": "PHI", "position": "RB" }
]
}/api/wire/:season/:week.json
What each player cleared for on waivers that week, across every Sleeper league that has asked for a receipt, as a share of budget. Median, quartiles, max, share of what the winner had left, and the count. Raw dollars appear only when every bid came from the same budget.
Filter to a cohort: ?rosters=12&format=half&superflex=false. The budgets map shows how many contributing leagues run each purse.
{
"season": "2025", "week": 14, "leagues": 1,
"budgets": { "200": 1 }, // contributing leagues per FAAB purse
"cohort": {}, // or { rosters: 14, format: "half", superflex: false }
"prices": [
{ "player_id": "2449", "name": "Stefon Diggs", "position": "WR", "n": 1,
"median_pct": 39.5, "p25_pct": 39.5, "p75_pct": 39.5, "max_pct": 39.5,
"median_pct_remaining": 76.7, // share of what the winner still had
"dollars": { "budget": 200, "median": 79 } } // only within one budget
]
}- Only leagues that have been pasted contribute. Each receipt read registers its league; nothing is crawled.
- No league id, manager, or roster appears in the payload.
nis the number of winning bids behind a price.median_pct_remainingis the bid as a share of what the winner still had. - Cached an hour once a league has a cleared claim. Empty results are not cached.
- A team’s receipt shows the median share and count beside a won claim once a second league has one.
/api/lines/:season.json
Every game of a season with its closing spread, total, moneylines, prices, result, and context: rest days, roof, surface, division game, weekday, starting quarterbacks, referee. Source: nflverse’s games table, 1999 to now, refreshed every six hours. Closing lines only; opening lines for 2007–2021 exist in the Sportsbook Review archive and are not wired in.
Public betting splits are a separate opt-in feed, read over MCP as getBettingSplits. OPENLEAGUES_SPLITS_SOURCE=actionnetwork,dknetwork,wiseguyteam adds the consensus with history from 2023, DraftKings’ own numbers, and a multi-book read for the current slate, each under its own book. They are not republished here.
{
"source": "nflverse nfldata games.csv · closing lines", "season": 2025, "count": 272,
"games": [
{ "gameId": "2025_14_DAL_DET", "season": 2025, "week": 14, "home": "DET", "away": "DAL",
"spread": 3.5, // home-signed: DET favored by 3.5
"total": 55.5, "homeMoneyline": -192, "awayMoneyline": 160,
"homeSpreadOdds": -110, "awaySpreadOdds": -110, "overOdds": -110, "underOdds": -110,
"result": 14, // home − away
"points": 74, "homeScore": 44, "awayScore": 30,
"divGame": false, "roof": "dome", "surface": "fieldturf", "homeRest": 7, "awayRest": 7,
"weekday": "Thursday", "gameday": "2025-12-04", "gametime": "20:15",
"homeQb": "Jared Goff", "awayQb": "Dak Prescott", "referee": "Shawn Hochuli" }
]
}The same rows drive the lab verbs over MCP: getGameLines, getGameContext, getBettingSplits, sampleGames, evaluateBets, summarizeRun (with pBreakEven), simulateBankroll. freezeStrategy, recordLabRun, and getLabRuns hold frozen strategies and the run ledger. lab-discover holds out a season before it freezes anything; lab-run grades a frozen rule weekly. Neither places a bet. The guide runs one.