Install
Where 4IceHockey's data comes from
Every score and statistic on this site comes from a source that publishes it openly or under terms that permit our use. We credit each one here, as their licences require, and we are equally clear about what we refuse to use — because that decision is why some things you might expect are missing.
What we use
| Source | Licence / terms | What we use it for | Refresh |
|---|---|---|---|
| The NHL's public web service | Undocumented and keyless. NHL.com's terms reserve it for non-commercial personal use; this site's owner has decided to use it on the basis that scores and standings are facts, and accepts that risk. We identify ourselves honestly and nothing is circumvented — see the note below. | NHL scores with period, clock and shots on goal; goal-by-goal scoring summaries; the published schedule; and the standings table | Every minute while a game is in progress |
| NCAA.com via ncaa-api | Open-source wrapper (MIT); unofficial — the underlying results are published by the NCAA | College scoreboards (Division I men and women, Division III men), line scores by period, scoring summaries with strength codes, box scores, team stats and the men's Division I ranking (the USCHO.com poll in season, the NPI between seasons) | Every minute while games are live; daily otherwise |
| The Odds API | Documented API (key). Terms permit displaying the data on a commercial site; they prohibit re-offering it as a feed, so our odds snapshots are rendered server-side and never published as files. | NHL schedule, final and in-progress scores, and betting lines | Odds twice daily · scores a few times on game nights |
| BALLDONTLIE | Documented API (key); free tier | NHL teams, rosters and player bios | Daily, paced across the day |
| Wikipedia | CC BY-SA 4.0 — attribution required, and given on every page that uses it | The NHL standings table: games played, wins, losses, overtime losses, points, regulation wins, goals for and against. It is the only source we have that records HOW a game ended, which a hockey table cannot be built without. | Four times a day; volunteer-maintained, so it can lag by hours |
| Wikidata | CC0 (public domain dedication) | Cross-checking arena names and coordinates in our curated team files | One-off |
| Wikimedia / Wikipedia | Team logos are trademarks of their owners; used small, self-hosted, for identification only | Small team logo thumbnails | Fetched once |
| 4IceHockey curated files | Hand-curated by us | Team facts: divisions, arenas, cities, founding years, championship counts, and the mapping from each team to its search topic | Checked manually |
How it works
A single job on our server collects data on a schedule and writes small snapshot files. Your browser only ever reads those snapshots from 4IceHockey — visitors never touch an upstream source, so a busy night for us is still one polite request a minute for them.
Our collector identifies itself honestly as 4IceHockeyBot with a link to this page. If a source declines a request we stop, back off for fifteen minutes, and fall through to the next source or the last good snapshot — you will see a "scores delayed" note. We never disguise the client, rotate identities or spread requests around to avoid being noticed.
About the league's own data service. Most of what you see on our NHL pages comes from it. It is public and keyless, and it answers us without objection — but NHL.com's terms of service reserve it for non-commercial, personal use. The owner of this site has decided to use it anyway, taking the view that scores and standings are facts rather than property. We would rather tell you that plainly than let you assume we hold a licence we do not. If the league asks us to stop, we will.
What is missing, and why
- No NHL player statistics or leaderboards. There is no free, licensed source for them, so we would rather show nothing than numbers we cannot stand behind.
- No live period or clock when the league's service is unavailable. Our fallback score source does not carry them, so while we are on it the NHL scoreboard refreshes roughly every half hour instead of every minute, and the page says so.
- No PWHL scoreboard. Teams, arenas and coverage instead →
- No prices in our gear guides. We are not a retailer.
- No player photographs.
What we still do not use
A source that blocks an honestly identified client is out, and stays out. We do not spoof a browser, blank our user-agent, switch hostnames or spread requests across many sites to avoid being noticed. That rule has not changed.
| Source | Why not |
|---|---|
| The PWHL's stats platform | Reached with client keys embedded in the league's own pages, and the league's terms prohibit using automated scripts to collect information. We read the league's public pages and made no request to the stats platform. |
| Datasets that republish the PWHL platform | Open data projects that mirror it carry no data licence of their own, and the mirror does not improve on the original. |
| MoneyPuck | Their data is offered free for non-commercial purposes and for ad-hoc journalism, with credit. Ours is a commercial site, so it is not covered — we would need to ask first. |
| A commercial hockey API | It refused our honestly identified collector with an HTTP 403 on every page, including the page containing its terms. We did not retry under another identity. |
| Hockey-Reference, Natural Stat Trick, Elite Prospects | Their terms prohibit automated collection. We did not probe them. |
| Player photographs and headshots | Not ours to republish. |
How our guides are fact-checked
Every number in the Play section — every size, age, certification date and rule — was checked against a governing body (USA Hockey, Hockey Canada, the IIHF), a certification body (HECC, CSA, BNQ) or a manufacturer's own fitting guidance before publication, and each guide names its sources at the end. Where authorities disagree, we publish both figures and say that they disagree; our ice-safety guide is the clearest example, because that is a life-safety topic and we will not average away a difference between a state agency and a lifesaving body. Where we could not verify something, we left it out.
Live feed status
Generated · hockey day 2026-11-06
| Feed | State | Provider | Last run | Note |
|---|---|---|---|---|
| registries | OK | curated | NHL + PWHL team files from data/teams/*.curated.json | |
| nhl_scores | OK | nhlweb | live, 3 games on 2026-11-06 | |
| nhl_schedule | OK | nhlweb | 48 games in the published week | |
| nhl_odds | Not connected | none | ODDS_API_KEY not configured — the odds page shows its empty state (scores come from the primary source) | |
| nhl_standings | OK | nhlweb | 32 clubs, season 2026-27 | |
| nhl_rosters | Not connected | none | BALLDONTLIE_API_KEY not configured — roster and player pages show their empty states | |
| college_ncaa-men | OK | ncaa | live, 26 games on 2026-11-06 | |
| college_ncaa-women | OK | ncaa | idle, 18 games on 2026-11-06 | |
| college_ncaa-d3 | OK | ncaa | live, 31 games on 2026-11-06 | |
| college_lookahead | OK | ncaa | 170 games in the next 7 days | |
| college_daily | OK | ncaa | NPI ranking; standings and team registries recomputed |
4IceHockey is independent and is not affiliated with, endorsed by or sponsored by the NHL, the NHLPA, the PWHL, the NCAA, the IIHF, Hockey Canada, USA Hockey, or any team, league, conference or school. Team names, logos and marks belong to their owners and appear here for identification only, at small size. Rights-holders can contact us to have a logo replaced with a neutral colour badge — it is a one-line configuration change and we will make it on request.
Spotted something wrong? Our curated team facts come from human research and they age — arena names change and teams get renamed. We would genuinely like to hear about it.
4IceHockey is an independent site and is not affiliated with, endorsed by or sponsored by the National Hockey League, the NHLPA, the PWHL, the NCAA, the IIHF, Hockey Canada, USA Hockey, or any team, league, conference or school. Team names, logos and marks are the property of their respective owners and are used here for identification only.