Skip to content
PuckAPI

Data timing and rights

The questions people ask before they build on PuckAPI: what the timestamps mean, how fresh each dataset is, and what the terms let you do with the data.

Timing

Measured on our own data. The data changelog shows when each dataset last refreshed.

What does captured_at mean on odds?
Since October 2026 each book's lines are fetched every hour for games in the next four days and kept as five snapshots a day, and captured_at is the book's own last-update time. For earlier seasons captured_at is the time of the archived snapshot the line was read from.
What are opening and closing lines?
Lines and prices are pre-game only: anything captured at or after the start is dropped, so no in-play price is served. Opening is the first capture we hold for a game and book, which isn't always the book's very first posting; closing is the last capture before the start. For hockey the opening line is the game-day morning line (about 11 hours before puck drop in 2025-26), and the closing line is recorded once the game starts, so before puck drop snapshot_type=closing has nothing yet.
Are player props pre-game?
A prop row is served only if it was captured before the sportsbooks' listed start, capped at 45 minutes after the scheduled start. In the 2025-26 archive each game has two captures, about 12 hours before and around puck drop, so about half of games' closing capture is a minute or so after the scheduled start. Every row carries scheduled_start and minutes_before_scheduled_start (negative when captured after it): filter on minutes_before_scheduled_start > 0 for a strictly before-schedule cut. From October 2026 props are captured at 15:00 and 20:00 UTC on game day and once more in the last 75 minutes.
When do stats, play-by-play and shifts update?
Once a day at 10:00 UTC. Scores are rechecked nightly. Play-by-play is loaded once per game, the morning after. Shifts are reloaded every night for the last seven days, because the league revises them, and a game's shift chart usually appears a day or so after it ends.
Are starting goalies announced before the game?
No. goalie_starts is worked out after the game from play-by-play (the goalie who faced the first shot), so confirmed is always false. There's no pre-game starter feed.
Are predictions as published?
get_predictions and get_prop_projections return today's slate only, published around 08:15 UTC, with the time each was generated. Past predictions aren't served.
Do you keep revision history?
No. We keep the current version of each record. When a source corrects a score, stat or play, the record is overwritten, and we don't keep the earlier version, a change log per record, or a revision id. The data changelog shows when each dataset last refreshed.
Is there a free way to tell whether a response changed?
Not per record. Calls are charged as normal, an empty answer is refunded, and the same call repeated within two minutes is charged once.

What you can do with the data

A plain summary of the terms, which control if the two ever differ.

Can I store the data and build on it?
Yes. While your account is open you can store what you pull for as long as you like, derive values from it, and use it for research, backtesting and training your own models. The same terms apply on the free plan and every paid plan.
Can I use it in a commercial product?
Yes. You can build commercial apps, websites and tools on PuckAPI data, show your users statistics, forecasts and other values you derive from it, and show individual data points, including individual odds, in your own app or dashboard. You can sell what you generate yourself, such as probabilities or model outputs.
What isn't allowed?
Passing the data on as a dataset, feed, file or API of its own, or building a service that competes with PuckAPI using it. Redistributing odds, lines or prices as a raw or bulk feed or export. Presenting the data as official league data, or suggesting a league, team or player endorses you.
What happens after I cancel?
Data you stored while your account was open can still be used for your own internal purposes, such as research and backtesting. It doesn't cover a product that keeps serving users on the data, so keep an account open for as long as a product runs on it.
Do you grant league rights?
No. PuckAPI is an independent data provider, not an official league partner, so league rights, marks and the league's own reports aren't ours to grant. If your use needs the league's permission, that's between you and the league.
Do I need to credit you or anyone else?
No attribution is required.
Where does the data come from?
PuckAPI combines public sources and archives with its own models, and we don't publish a source list per dataset. Values we compute ourselves, such as ratings, expected goals or points and win probability, say so in each endpoint's docs.

Something not covered? Email support@puckapi.com.