Skip to content
PuckAPI

The hockey data API.

Every NHL play since 2010.

6.8 million plays, each with the x and y it happened at and the skaters on the ice for it. Sixteen seasons of games, goalie and skater stats that refresh every morning, and line movement from the books we track. Call it over REST or point Claude at it over MCP. The first 500 credits are free and we do not ask for a card.

plays
6.8M+
games
23,000+
players
4,900+
seasons
17

This week

What get_schedule returns right now.

Rendered from the same rows get_schedule returns, refreshed every hour. Lines appear here once books post them, a few days before puck drop.

KickoffAwayHomeGame id
Sat 3:00 PM ETCARNSH2026010053
Sat 3:00 PM ETPITBUF2026010055
Sat 4:00 PM ETANALAK2026010052
Sat 5:00 PM ETCOLUTA2026010054
Sat 5:00 PM ETWSHPHI2026010057
Sat 6:00 PM ETTBLFLA2026010059

get_schedule · 2 credits · then get_game_detail for the box score and odds

Coverage

Coverage you can inspect before you build.

Play-by-play events
6,800,000+

Every event since 2010-11 with coordinates, strength state and the players involved.

Games
23,000+

Regular season, playoffs, and preseason across supported seasons.

Odds records
107,000+

Supported moneyline, spread, and totals snapshots where available.

DatasetSeasonsVolumeStatusTools
Play-by-play
Every event with rink coordinates, strength state, zone, shot type, and the players involved: goals, shots, misses, blocks, faceoffs, hits, giveaways, takeaways, penalties.
2010-11 through current6,800,000+ eventsFull
21,980 of 22,067 completed games. The 87 gaps are preseason games before 2018, for which the source publishes no play data. Coordinates are present on locatable events; stoppages and period markers carry none.
Games
Game records and detail for supported regular season, playoff, and preseason matchups.
2010-11 through current23,000+Full
Historical coverage depends on supported seasons and source availability.
Players
Player search and player stat lookup across supported datasets.
Bio, roster, position, supported stats4,800+Full
Skaters
Skater season totals: goals, assists, points, plus/minus, power play and shorthanded production, shooting%, faceoff% and time on ice.
2024-25 and 2025-261,803Partial
Two seasons only. Earlier seasons are not stored; the source publishes them per player, so they are backfillable but not backfilled.
Goalies
Goalie stat lookup including save percentage, GAA, goals saved above expected, high-danger save%, rolling form and rest days.
Supported goalie stat seasons1,509Full
Teams
Team metadata, abbreviations, divisions, conferences, and arenas.
Active and historical franchises represented in PuckAPI34Full
Standings + rankings
Standings and rankings with 5v5 possession: Corsi%, Fenwick% and expected goals for and against.
Supported seasons and current-season snapshots494Full
Do not treat standings as real-time unless freshness is shown separately.
Odds
Odds for supported games, books, and markets where available.
2019-20 through current107,000+Partial
Coverage varies by sportsbook, game, market, and source availability.
Line movement
Line movement data where multiple odds snapshots exist for a supported game and market.
Historical odds snapshots where availableOpening/current/closing snapshotsPartial
Not every game, book, or market has line movement history.
Head-to-head
Historical matchup context for supported teams and games.
Supported teams and gamesMatchup historyFull

Full detail in the data atlas. Sportsbooks: DraftKings, FanDuel, BetMGM, and ESPN BET. Sportsbook availability varies by game, market, and source. Do not assume every book is available for every game.

Last written 2026-09-26 10:00 UTC. Every dataset's own refresh time is in the changelog.

Why trust it

Our expected-goals model picks the Vezina winner, six times out of six.

Nobody told the model who won anything. It scores shots on distance, angle, type, strength and rebound, and the goalie who saved the most above expectation each season keeps turning out to be the one who won the award.

SeasonGSAX leaderGSAXWhat happened
2014-15Carey Price+33.7Vezina, Hart, Ted Lindsay
2017-18John Gibson+35.3the analytics pick that year
2019-20Connor Hellebuyck+27.7Vezina
2021-22Igor Shesterkin+47.2Vezina, and the highest in the set
2022-23Linus Ullmark+37.1Vezina — Sorokin +39.9, the finalist
2023-24Connor Hellebuyck+26.2Vezina

The model was trained on fifteen seasons and tested on the two most recent it had never seen: expected goals came within 0.15% of actual, and the top tenth of shots converted at 27x the bottom tenth. It over-rates the very best chances slightly, so a goalie facing an unusually high-danger workload is flattered — treat small gaps as noise.

Tools

Every tool, and what a call costs.

Every tool is one REST endpoint and one MCP tool with the same name, the same parameters, and a fixed credit cost. Empty results are not charged.

Access

REST or MCP. Same data either way.

Call it from any language over REST. Let Claude or Cursor query it in plain English over MCP.

  • GET https://mcp.puckapi.com/v1/tools public catalogue with JSON Schema
  • POST https://mcp.puckapi.com/v1/{tool}
  • MCP https://mcp.puckapi.com/mcp
curl -X POST https://mcp.puckapi.com/v1/list_teams \
  -H "x-api-key: YOUR_API_KEY"

# every tool: POST /v1/{tool} with a JSON body
# responses carry X-Credits-Used and X-Credits-Remaining

Pricing

Free to start, then you pay per call.

500 credits on signup, no card. Subscriptions add a monthly allowance; wallet top-ups never expire.

Free
$0
500 wallet credits on signup
  • +All 15 endpoints
  • +REST API + MCP access
  • +No credit card required
Start free
Starter
$19/mo
10,000 credits/month
  • +10,000 credits/month
  • +All 15 endpoints
  • +Email support
  • +Overage at wallet rates
Choose Starter
ProMost popular
$49/mo
30,000 credits/month
  • +30,000 credits/month
  • +All 15 endpoints
  • +Priority support
  • +Overage at wallet rates
Choose Pro
Scale
$149/mo
125,000 credits/month
  • +125,000 credits/month
  • +All 15 endpoints
  • +Dedicated support
  • +Volume rates available
Choose Scale

Full breakdown, credit costs per tool, and FAQ on the pricing page.

Questions

The things people ask before signing up.

Is PuckAPI free?

Every account starts with 500 credits and no card. Calls cost 1 to 25 credits depending on the endpoint, so 500 is a few hundred real requests. Paid plans start at $19/mo for 10,000 credits a month, and wallet top-ups never expire.

How far back does the data go?

Play-by-play runs from the 2010-11 season to the current one — 6.8 million events, each with the coordinates it happened at. There is nothing before 2010-11, and a query for an earlier season returns an empty result rather than an error.

What is MCP, and do I need it?

MCP is the protocol Claude, Cursor and similar assistants use to call tools. Point one at https://mcp.puckapi.com/mcp with your key and it picks the endpoint and reads the response itself — no client code. If you are writing an application instead, ignore MCP and use the REST endpoints; they are the same 15 tools.

Can I use this commercially?

Yes, within the terms. The one thing to know is that odds data comes from a commercial provider, so reselling the odds themselves as a feed is not permitted — using them inside a product or a model is.

How current is it?

One update a day, at 6am Eastern: scores, standings, rosters, goalie and skater stats, odds and the previous night's play-by-play. There is no live in-game feed, and a game in progress is not reflected until the next morning.

Are the advanced stats computed or sourced?

Computed here, from the play-by-play. Expected goals come from a shot-quality model trained on 1.8 million shots and calibrated within each season; Corsi and Fenwick are counted from shot attempts at 5v5. Nothing is licensed from another analytics provider.

What are the rate limits?

60 requests a minute, dropping to 10 if your credit balance falls below 100. The limit is the same on every plan — credits, not requests, are the spend boundary.

Before you write another scraper

Start with 500 credits and no card.

PuckAPI · The hockey data API.