nerd

NHL player prop hit-rate + latest line across books

Requires the Edge plan or higher. Player props are part of the odds and model layer; Free, Solo and Trio are refused with 403 forbidden. Moved to Edge on 2026-09-25; previously free.

For one market (shots_on_goal/goals/assists/points; saves and power_play_points have no game-log field, so they return a real current_line with a null hit_rate), returns the latest line we hold picked by tightest juice plus rolling-last-N hit rate from player_stats (box stats). 60s cache. current_line null when no nhl_player_props row exists; hit_rate null when the player has no stats bridge or no history.

Check freshness before treating a line as a current price. Every response carries a freshness object DERIVED from the returned line's own fetched_at, never from the clock: data_as_of (the line's real timestamp), age_days, and status (live ≤2d, recent ≤14d, stale >14d, or no_data when no line exists). The top-level as_of is when the RESPONSE was built and says nothing about the line's age. Between seasons the newest lines can be months old and will report stale; the historical lines and the hit rate computed over them remain valid.

milestones: yes/no prop prices, separate from current_line. A milestone prop asks whether a player reaches a threshold at all, so it is priced as ONE American odds integer, not an over/under pair. Each entry is { sportsbook, display, line, odds, fetched_at }, one per (book, threshold): goals with line: 0.5 is the Anytime Goal Scorer price, 1.5 is 2+ goals, and so on.

These are strictly ADDITIVE. current_line, current_line.all_books and the hit_rate line are computed from over/under rows ALONE, so a milestone price can never appear as a line: the query keys on market_type rather than leaving it to a tiebreak. The array is empty until the milestone half of the board is being stored.

get/v1/nhl/players/{player_id}/props

Request

  • Base URL: https://api.bigballsdata.com
  • URL: https://api.bigballsdata.com/v1/nhl/players/{player_id}/props
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Path parameters

player_idstring uuid required

Query parameters

market'shots_on_goal' | 'goals' | 'assists' | 'points' | 'saves' | 'power_play_points' required
lookbackinteger
bookstring

Sportsbook short-name (e.g. betrivers). Omit for tightest-juice pick. Selects the over/under line only; milestones always returns every book.

Response

ok

object required

Changes

No recorded changes to this operation across all 3 revisions of this API.