Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "get_odds"
⟨145 unchanged words⟩ ) returns every book it has. Each linesayscarriesitsa source:the_odds_apifield (ouroneOddsvalueAPIforpulls,opening and closing lines from August 2020),oranotherespnfor(ESPN'sfinal per-book lines); a season answer lists each ⟨24 unchanged words⟩
Changed the definition of "get_player_props" and "get_prop_history"
⟨82 unchanged words⟩ , with each book's over and under prices. Outside football the archive mostly holds one pre-game capture per line, so the opening and closing lines are usually the same; the opening line differs only where a second capture was taken (live capture from October 2026, and wherever else it is held). Set estimate_only to get the price without being ⟨23 unchanged words⟩
⟨117 unchanged words⟩ the game starts. opening: the first onecaptured.captured, which is the same capture as the close wherever only one was taken.","enum":["opening","closing"], ⟨20 unchanged words⟩
Changed the definition of "get_player_stats" and "get_predictions"
⟨5 unchanged words⟩ details for one player: bio, team,physical attributes,andheadshot.physical attributes. For skaters, also returns the latest season ⟨26 unchanged words⟩
⟨68 unchanged words⟩ not a live record. An empty slate costsnothing;nothing, and a note says why (not generated yet, or no games today); so does a failed call. Costs 5 credits.
Changed the definition of "get_goalie_stats", "get_odds" and "get_skater_season_stats"
⟨44 unchanged words⟩ :{"description":"Minimum games played (default1010; early in a season, half the most games anyone has played so far)","maximum":9007199254740991,"minimum":-9007199254740991," ⟨81 unchanged words⟩
⟨162 unchanged words⟩ closing (final pre-game). Single game: defaultboth.every snapshot held, including first (each book's first posted line, from October 2026). Season: default closing.","enum":["opening ⟨19 unchanged words⟩
Added "get_prop_projections" (21 tools before, 22 now)
Prop projections — Paid plans only (not available on the free plan). Use for the model's projected stat lines for tonight's NHL players: for each game, each skater's projected goals, assists, points and shots with a low-to-high range, and each goalie's projected saves. Skaters also carry over probabilities at the usual half-point lines (goals 0.5 and 1.5, assists 0.5 and 1.5, points 0.5 to 2.5, shots 1.5 to 5.5): goals use the model's own goal distribution, the others are Poisson on the projected rate. Optional team (either side of the game) and player (name fragment) filters. Tonight's slate only; no date argu…
Changed the definition of "get_game_detail", "get_line_movement", "get_odds" and 2 more
⟨61 unchanged words⟩ played games, not upcoming ones. Costs 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
⟨25 unchanged words⟩ current lines, use get_odds (10 cr) instead. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
Authorization not required, issuer https://puckapi.com/api/auth
Added "get_predictions" (20 tools before, 21 now)
Predictions — Use for the model's win probability for each NHL game on the current slate: home and away win probability, the A/B/C confidence grade, start time, plus the model version and when the slate was generated. Takes no arguments (current slate only). Probabilities are the model's own; no odds, prices or goalie and injury notes are included. The accuracy note states the backtest figure and that it is not a live record. An empty slate costs nothing; so does a failed call. Costs 5 credits.
Changed the definition of "get_game_detail", "get_games", "get_goalie_stats" and 17 more
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Game detail"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Games"}
Changed the definition of "get_game_detail", "get_games", "get_goalie_stats" and 17 more
before
—after
Game detail{"openWorldHint":false,"readOnlyHint":true,"title":"Game detail"}
before
—Games
Added "get_shifts" and "get_situation_time" (18 tools before, 20 now)
Use for who was on the ice and when: every player's shifts in one NHL game, each with period, start and end (period clock and seconds from the opening faceoff) and duration, plus the official boxscore time on ice and plus/minus. Filter to one team or player. NHL games from 2010-11 on. Costs 10 credits.
Use for exact time at each strength: the seconds each team spent at 5v5, 5v4, 4v5, 4v4, 6v5 with the goalie pulled and every other on-ice state in an NHL game, split into regulation and overtime, from the shift charts. Also even / power-play / shorthanded totals, goalie-pulled seconds, period lengths and a completeness check against the play-by-play. include_players adds each skater's time by strength. One game by game_id (10 credits), or every game on a date (10 credits per game). NHL games from 2010-11 on.
Changed the definition of "search_players"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
Use when looking up a player by name. Searches 4,800+900+ players across every season since 2010-11. Returns active ⟨20 unchanged words⟩
Changed the definition of "get_odds"
⟨93 unchanged words⟩ and part of the 2019 playoffs): about12-1416 to 18 books a game from 2020-21 to 2023-24,6-7about 6 in 2019-20,48 in 2024-25,and 2025-26 (60+ on about 300 games in 2025-26), withall_books.all_books; a season answer defaults to the four main books. A season those four do not carry ( ⟨32 unchanged words⟩
Added "get_player_props" and "get_prop_history" (16 tools before, 18 now)
Use for player prop lines by sportsbook: over/under on points, goals, assists, shots on goal, blocked shots, goalie saves and anytime goal scorer, from May 2023 (DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle and others). Pass game_id for every player's props in one game (10 credits), or player_id with from_date (and to_date) for one player across games (10 credits per game returned, up to 100). Returns the closing line by default (the last before the game starts) or the opening line, with each book's over and under prices. Set estimate_only to get the price without being charged.
Use to see how a player did against his prop line over time: for one market (points, goals, assists, shots on goal, blocked shots, goalie saves or anytime goal scorer), one row per game with the closing line (the median across books, or one book's), the opening line, the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games.
Changed the definition of "get_game_detail", "get_games", "get_goalie_stats" and 13 more
⟨21 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"}},"required" ⟨3 unchanged words⟩
⟨68 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit":
Changed the definition of "get_game_detail", "get_games", "get_goalie_stats" and 12 more
⟨29 unchanged words⟩ get one from get_games or get_schedule). Oddsavailablefor2019-20everyonwards,gamethoughfrom 2019-20itselfonis(andsparse.part of the 2019 playoffs). Goalie starts are derived from play-by-play, so ⟨12 unchanged words⟩
Added "get_player_game_log" (15 tools before, 16 now)
Use when you need a player's game-by-game stat lines for a season, not a season total. For skaters: date, opponent, home/away, goals, assists, points, shots, PIM and power-play points for each game. For goalies: date, opponent, home/away, decision, shots against, saves, goals against and save% for each game. Built from play-by-play, so time on ice and plus/minus are not available and come back null; goalie time on ice is available only for games the goalie started. Requires player ID from search_players. Costs 5 credits.
Changed the definition of "get_game_detail", "get_games", "get_goalie_stats" and 10 more
⟨9 unchanged words⟩ (e.g. 2025020887)","type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"}},"required":["game_id"],"type":"object"}
⟨57 unchanged words⟩ ,"preseason"],"type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max results (default ⟨37 unchanged words⟩
Changed the definition of "get_skater_season_stats"
⟨28 unchanged words⟩ shooting%, faceoff%, and average time on ice.Covers 2024-25 and 2025-26 only; earlier seasonsSeasonsreturnfromno2010-11rows.on. Costs 5 credits.
Changed the definition of "get_games", "get_odds" and "get_skater_season_stats"
⟨18 unchanged words⟩ "game_state":{"description":"Filter by gamestatestate. FINAL and OFF both mean finished and return the same games; FUT is scheduled, LIVE in progress.","enum":["FUT","LIVE"," ⟨58 unchanged words⟩
⟨83 unchanged words⟩ the price without being charged. Odds from 2020-21on;on, with sparse 2019-20 coverage; 60+ books from 2025-26 with all_books.
Authorization required → not required
Changed the definition of "get_odds"
Use when checking bettinglineslines. Pass game_id foraonegame.gameReturns(10moneylinescredits): moneyline,spreadspuck line and total by bookmaker, opening andtotalsclosing.fromOrDraftKings
First tool surface recorded: 15 tools (server version 1.0.0)
Certificate recorded, valid to 2026-12-03
Authorization required
Showing the latest 25 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨41 unchanged words⟩ books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded ⟨44 unchanged words⟩
⟨57 unchanged words⟩ "},"modelVersion":{"type":"string"},"note":{"type":"string"}},"required":["generatedAt","modelVersion"," ⟨5 unchanged words⟩
⟨44 unchanged words⟩ :{"description":"Minimum games played (default1010; early in a season, half the most games anyone has played so far)","maximum":9007199254740991,"minimum":-9007199254740991," ⟨75 unchanged words⟩
⟨168 unchanged words⟩ ); a season answer lists each game's sources. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
⟨90 unchanged words⟩ estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
⟨69 unchanged words⟩ Costs 10 credits for up to 200 games. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Goalie stats"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Head to head"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Line movement"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Odds"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Player game log"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Player props"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Player stats"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Plays"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Prop history"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Schedule"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Shifts"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Shot map"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Situation time"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Skater season stats"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Standings"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Team stats"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"List teams"}
{"destructiveHint":false,"openWorldHint":false,"readOnlyHint":true,"title":"Search players"}
{"openWorldHint":false,"readOnlyHint":true,"title":"Games"}
before
—after
Goalie stats{"openWorldHint":false,"readOnlyHint":true,"title":"Goalie stats"}
before
—after
Head to head{"openWorldHint":false,"readOnlyHint":true,"title":"Head to head"}
before
—after
Line movement{"openWorldHint":false,"readOnlyHint":true,"title":"Line movement"}
before
—after
Odds{"openWorldHint":false,"readOnlyHint":true,"title":"Odds"}
before
—after
Player game log{"openWorldHint":false,"readOnlyHint":true,"title":"Player game log"}
before
—after
Player props{"openWorldHint":false,"readOnlyHint":true,"title":"Player props"}
before
—after
Player stats{"openWorldHint":false,"readOnlyHint":true,"title":"Player stats"}
before
—after
Plays{"openWorldHint":false,"readOnlyHint":true,"title":"Plays"}
before
—after
Prop history{"openWorldHint":false,"readOnlyHint":true,"title":"Prop history"}
before
—after
Schedule{"openWorldHint":false,"readOnlyHint":true,"title":"Schedule"}
before
—after
Shifts{"openWorldHint":false,"readOnlyHint":true,"title":"Shifts"}
before
—after
Shot map{"openWorldHint":false,"readOnlyHint":true,"title":"Shot map"}
before
—after
Situation time{"openWorldHint":false,"readOnlyHint":true,"title":"Situation time"}
before
—after
Skater season stats{"openWorldHint":false,"readOnlyHint":true,"title":"Skater season stats"}
before
—after
Standings{"openWorldHint":false,"readOnlyHint":true,"title":"Standings"}
before
—after
Team stats{"openWorldHint":false,"readOnlyHint":true,"title":"Team stats"}
before
—after
List teams{"openWorldHint":false,"readOnlyHint":true,"title":"List teams"}
before
—after
Search players{"openWorldHint":false,"readOnlyHint":true,"title":"Search players"}
⟨5 unchanged words⟩ description":"With season: every book held (12-1416 to 18 a game from 2020-21 to 2023-24, 8 in 2024-25, more than 60 on about 300 games ⟨164 unchanged words⟩
⟨12 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨103 unchanged words⟩
⟨12 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨56 unchanged words⟩
⟨37 unchanged words⟩ "type":["string","null"]},"source":{"type":["string","null"]},"spreadHome":{"type":["number","null" ⟨28 unchanged words⟩
⟨125 unchanged words⟩ carry (2019-20) returns every book it has. Each line says its source: the_odds_api (our Odds API pulls, from August 2020) or espn (ESPN's per-book lines); a season answer lists each game's sources.
⟨38 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨92 unchanged words⟩
⟨12 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"player_id": ⟨14 unchanged words⟩
⟨21 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨147 unchanged words⟩
⟨28 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"team": ⟨9 unchanged words⟩
⟨18 unchanged words⟩ of: nhl, pwhl, ohl, qmjhl,echl.echl, ahl.","enum":["nhl","pwhl","ohl","qmjhl","echl","ahl"],"type":"string"},"limit": ⟨75 unchanged words⟩
⟨12 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨97 unchanged words⟩
⟨34 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"season": ⟨22 unchanged words⟩
⟨12 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"season": ⟨34 unchanged words⟩
⟨29 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"}},"type":"object"}
⟨31 unchanged words⟩ nhl, pwhl, ohl, whl, qmjhl,echl.echl, ahl, ushl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl","ahl","ushl"],"type":"string"},"limit": ⟨50 unchanged words⟩
⟨15 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"}},"required" ⟨3 unchanged words⟩
⟨62 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨41 unchanged words⟩
⟨6 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨103 unchanged words⟩
⟨6 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨56 unchanged words⟩
⟨80 unchanged words⟩ estimate_only to get the price without being charged.OddsEvery game from2020-212019-20 on,with(andsparsepart2019-20ofcoverage;the60+2019 playoffs): about 12-14 books a game from 2020-21 to 2023-24, 6-7 in 2019-20, 4 in 2024-25, 60+ in 2025-26 with all_books. A season those four do not carry (2019-20) returns every book it has.
⟨5 unchanged words⟩ description":"With season: every book held (60+12-14 a game from 2020-21 to 2023-24, more than 60 on about 300 games in 2025-26) instead of DraftKings, FanDuel, BetMGM ⟨157 unchanged words⟩
⟨51 unchanged words⟩ "type":["number","null"]},"note":{"type":"string"},"odds":{"items":{"additionalProperties":false," ⟨94 unchanged words⟩
⟨32 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨92 unchanged words⟩
⟨6 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"player_id": ⟨14 unchanged words⟩
⟨15 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨147 unchanged words⟩
⟨22 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"team": ⟨9 unchanged words⟩
⟨13 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, qmjhl, echl.","enum":["nhl","pwhl","ohl","qmjhl","echl"],"type":"string"},"limit": ⟨75 unchanged words⟩
⟨6 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨97 unchanged words⟩
⟨28 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"season": ⟨22 unchanged words⟩
⟨6 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"season": ⟨34 unchanged words⟩
⟨23 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"}},"type":"object"}
⟨5 unchanged words⟩ player by name. Searches 4,800+ players across16everyseasons.season since 2010-11. Returns active players by default; set active=false for ⟨14 unchanged words⟩
⟨25 unchanged words⟩ League. Defaults to nhl. One of: nhl,pwhl.pwhl, ohl, whl, qmjhl, echl.","enum":["nhl","pwhl","ohl","whl","qmjhl","echl"],"type":"string"},"limit": ⟨50 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max results (default ⟨99 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max games to return ⟨51 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"player_id":{"description":"NHL player ID", ⟨10 unchanged words⟩
⟨9 unchanged words⟩ e.g. 2025020887)","type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max events (default ⟨143 unchanged words⟩
⟨16 unchanged words⟩ "minimum":1,"type":"integer"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"team":{"description":"Team abbreviation to filter ⟨4 unchanged words⟩
⟨7 unchanged words⟩ game ID","type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max shots per page ⟨70 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max results (default ⟨93 unchanged words⟩
⟨23 unchanged words⟩ , Pacific)","type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"season":{"description":"Season ID, 8-digit ⟨18 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"season":{"description":"Season ID, 8-digit ⟨30 unchanged words⟩
⟨16 unchanged words⟩ "Filter by division","type":"string"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"}},"type":"object"}
⟨19 unchanged words⟩ retired/historical players.","type":"boolean"},"league":{"description":"League. Defaults to nhl. One of: nhl, pwhl.","enum":["nhl","pwhl"],"type":"string"},"limit":{"description":"Max results (default ⟨46 unchanged words⟩
⟨128 unchanged words⟩ ,"snapshot_type":{"description":"opening (game-day morning; for a game not yet played, the latest morning line) or closing (final pre-game). Single game ⟨26 unchanged words⟩
⟨28 unchanged words⟩ shooting%, faceoff%, and average time on ice. Covers 2024-25 and 2025-26 only; earlier seasons return no rows. Costs 5 credits.
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"all_books":{"description":"With season: every book held (60+ from 2025-26) instead of DraftKings, FanDuel, BetMGM and ESPN BET.","type":"boolean"},"bookmaker":{"description":"Filter by bookmaker key ⟨4 unchanged words⟩ ). Lowercase.","type":"string"},"estimate_only":{"description":"Return what this call would cost, without charging or running it.","type":"boolean"},"game_id":{"description":"NHL game ID (e.g. 2025020887). Omit and pass season for a whole season.","type":"string"},"snapshot_typelimit":{"description":"FilterWithbyseason:snapshotgames per page (default 100, max 500).","maximum":500,"minimum":1,"type":"integer"},"offset":{"description":"With season: page offset; use next_offset from the previous page.","maximum":9007199254740991,"minimum":0,"type":"integer"},"season":{"description":"Season for a whole season of lines, e.g. 2025-26 or 20252026. Used when game_id is not set.","type":"string"},"snapshot_type":{"description":"opening (game-day morninglines) or closing (final pre-gamelines).DefaultSinglereturnsgame: default both. Season: default closing.","enum":["opening","closing"],"type":"string"}},"requiredteam":[{"game_iddescription"]:"With season: only this team's games (abbreviation, e.g. BUF).","type":"string"}},"type":"object"}
⟨9 unchanged words⟩ ,"bookmaker_count":{"type":"number"},"columns":{"items":{"type":"string"},"type":"array"},"count":{"type":"number"},"credits":{"type":"number"},"credits_per_game":{"type":"number"},"estimate_only":{"type":"boolean"},"game_date":{"type":["string","null"]},"game_id":{"type":"string"},"games":{"items":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"type":"array"},"home_team":{"type":"string"},"next_offset":{"type":["number","null"]},"odds":{"items":{"additionalProperties":false," ⟨76 unchanged words⟩ type":"object"},"type":"array"}},"requiredseason":[{"game_idtype",:"home_teamstring"},"away_teamsnapshot_type",:{"game_datetype":"string"},"oddstool":{"type":"string"},"bookmaker_counttotal_games"]:{"type":"number"}},"type":"object"}