NBA PLAYER PROPSLive · cross-book lines

NBA Player Props API

Per-player props live across 7 sportsbooks and 5 markets: points, rebounds, assists, points+rebounds+assists, and threes. Cross-book best-line aggregation in the same canonical schema as the rest of the API.

1,000 req/day on the free plan (2,000 with GitHub). No credit card.

Cross-book lines from BetMGM, DraftKings, FanDuel, Caesars, BetRivers, Fanatics, and Rebet, plus a 20-game rolling hit rate per market.

What you'll get

The same prop primitives that power the live NHL props page, built for NBA first. One free key, one shape.

  • Cross-book best line

    Surface the best over and best under per market in a single request, with the book that posted the price.

  • Hit rate dashboards

    Render last-20-game hit rate per market so users see the bet history at a glance.

  • Unified player_id

    Props join cleanly to /v1/nba/games/{id}/matchup, player streaks, rolling stats — one id everywhere.

  • Bets Chat ready

    JSON envelope mirrors the live NHL props shape, so a prop integration built for one sport ports to the other with no schema rework.

  • Five core markets

    Points, rebounds, assists, points+rebounds+assists, and threes. Audited markets, no novelty clutter.

  • Season-round coverage

    Cross-book lines pull from BetMGM, DraftKings, FanDuel, Caesars, BetRivers, Fanatics, and Rebet; hit-rate history stays queryable year-round, including the offseason.

Markets covered

Five core NBA markets live today. Audited, no novelty props.

MarketDescription
pointsTotal points scored in the game
reboundsTotal rebounds
assistsTotal assists
points_rebounds_assistsCombined points + rebounds + assists (the standard PRA prop)
threesThree-pointers made

Endpoint shape

One call returns a single market for the player: the current line across books (best book per side) plus a rolling 20-game hit rate for that market.

GET /v1/nba/players/:id/props?market=points

Response shapejson
{
  "data": {
    "player": {
      "bbs_id": "6b928f2d-3c95-433a-89d6-00db5813364d",
      "name": "Nikola Jokic",
      "position": "C",
      "team": { "bbs_id": "bf31614a-a23a-40ad-a7cc-760cea3a5443", "name": "Denver Nuggets", "abbr": "DEN" }
    },
    "market": "points",
    "current_line": {
      "line": 28.5,
      "over_juice": -115,
      "under_juice": -115,
      "sportsbook": "balldontlie_betmgm",
      "sportsbook_display": "BetMGM",
      "fetched_at": "2026-06-02T06:57:19.711Z",
      "all_books": [
        { "sportsbook": "balldontlie_betrivers", "display": "BetRivers", "line": 27.5, "over_juice": -108, "under_juice": -127 },
        { "sportsbook": "balldontlie_draftkings", "display": "DraftKings", "line": 17.5, "over_juice": 420, "under_juice": -660 },
        { "sportsbook": "balldontlie_fanduel", "display": "FanDuel", "line": 22.5, "over_juice": 162, "under_juice": -220 }
      ]
    },
    "hit_rate": {
      "lookback_games": 20,
      "games_with_box_score": 20,
      "over_hits": 5,
      "under_hits": 15,
      "pushes": 0,
      "hit_pct_over": 0.25,
      "samples": [
        { "match_id": "52fa99d1-ea1d-4fc4-869a-b380b92dc00d", "game_date": "2026-04-30", "opponent": "MIN", "value": 28, "result": "under" },
        { "match_id": "1a5866bb-cada-46d9-817c-dc62004dab18", "game_date": "2026-04-06", "opponent": "POR", "value": 35, "result": "over" }
      ]
    },
    "as_of": "2026-08-03T23:25:25.507Z"
  },
  "meta": { "cached": false, "cache_age_ms": 0 }
}

SDK call

One call returns the market you ask for, with the cross-book attribution in the same payload.

  • · Five markets, one per call
  • · Cross-book best-line attribution per market
  • · Same canonical envelope as the rest of the API
Node.js, @bigballsdata/sdktypescript
// One market per call: best line across books + a rolling hit rate.
const url =
  'https://api.bigballsdata.com/v1/nba/players/' + playerId +
  '/props?market=points';
const res = await fetch(url, { headers: { 'x-api-key': process.env.BBS_API_KEY! } });
const { data } = await res.json();

console.log(data.market, data.current_line?.line, 'best:', data.current_line?.sportsbook_display);
console.log('over hit rate:', data.hit_rate?.hit_pct_over, 'on', data.hit_rate?.games_with_box_score, 'games');

for (const b of data.current_line?.all_books ?? []) {
  console.log(' ', b.display, b.line, b.over_juice, '/', b.under_juice);
}

What will it cost

Free tier: 1,000 req/day on the free plan, 2,000 with GitHub connected. No credit card. Paid tiers (Solo / Trio / Edge / Pro) carry forward with the rest of the API.

See all plans

Frequently asked

How do I call the NBA Player Props endpoint?
GET /v1/nba/players/:id/props?market=points with your API key in the Authorization header or as ?api_key=. One call returns one market: data.current_line (line, over_juice / under_juice, the best book per side, and all_books) plus data.hit_rate (over_hits / under_hits, hit_pct_over, games_with_box_score, and per-game samples). Live today across BetMGM, DraftKings, FanDuel, Caesars, BetRivers, Fanatics, and Rebet. The market param is required — call without one and the endpoint 400s with the five valid values.
Will it be on the free tier?
Yes. NBA Player Props is on the free tier (1,000 req/day, 2,000 if you connect GitHub). No credit card to start.
Which sportsbooks does it cross-reference?
The same books the rest of the API normalises across. The response includes the specific book that posted the best over and the best under per market in all_books, so the source attribution is in the payload, not buried in a separate call.
How fresh are the prices?
Prices refresh from the upstream books while the NBA season is active, canonicalised to the BBS schema; current_line.fetched_at shows exactly when each book's line was last pulled, so you never have to guess. Between seasons, the endpoint keeps serving the most recently posted lines and the hit-rate history stays queryable year-round rather than going dark.

Get an API key now

The endpoint is live across BetMGM, DraftKings, FanDuel, Caesars, BetRivers, Fanatics, and Rebet, with a 20-game rolling hit rate on every market.