NBA Odds API Guide: Fetch NBA player props and odds

November 13, 2025

NBA Odds API Guide: Fetch NBA player props and odds

NBA Odds API Guide: Fetch NBA player props and odds

If you’re building a basketball or multi-sport betting app, the NBA odds data in the SportsGameOdds API gives you fast access to moneylines, spreads, totals, player props, alt-lines, and more—all through a single unified endpoint. This quick NBA Odds API guide walks you through the most common NBA queries using the /v2/events endpoint, including how to fetch player props, filter for specific markets, and pull odds for individual players.

All examples below use real query patterns you can copy-paste directly into your project. For full field definitions and optional parameters, refer to the official documentation here: /docs/reference#tag/events/GET/events/

A Guide to Getting NBA Odds from Our Odds API

If you want to fetch events with game odds and player props, the easiest way would be this:

https://api.sportsgameodds.com/v2/events?apiKey=API_KEY_HERE&oddsAvailable=true&leagueID=NBA&limit=10

This returns NBA games with standard markets (moneyline, spread, totals) plus any available player props for those games. It only returns:

  • NBA events (leagueID=NBA)
  • Events where there are odds currently open/available for betting (oddsAvailable=true)
  • Up to 10 events (limit=10 – you can increase this if needed)

We recommend keeping limit reasonable for speed, especially if you’re including a lot of markets and bookmakers.

Remember, we are generous with our limits: 1 object = 1 event, not 1 event-market. For example, 10 NBA games = 10 objects regardless of how many odds were returned across those 10 games. Most events return hundreds of odds markets, but you’re only charged once per event.

Fetch NBA odds for a specific prop market

If you want to get more fine-grained with the specific player props you pull, you can use the oddIDs parameter to focus on particular bet types.

For example, to pull full-game points over/unders for all players:

https://api.sportsgameodds.com/v2/events?apiKey=API_KEY_HERE&leagueID=NBA&oddsAvailable=true&oddIDs=points-PLAYER_ID-game-ou-over,points-PLAYER_ID-game-ou-under

That will give you over/under lines on player points for all players where that market is available.

We have a wide range of NBA props and markets you can query. The full list is in our documentation here: /docs/data-types/markets/basketball

Here are a few example oddID patterns you might use (swap ANY_PLAYER_ID with either PLAYER_ID for all players, or a specific player ID):

  • Player total points – full game (Over/Under) points-ANY_PLAYER_ID-game-ou-over,points-ANY_PLAYER_ID-game-ou-under
  • Player total assists – full game (Over/Under) assists-ANY_PLAYER_ID-game-ou-over,assists-ANY_PLAYER_ID-game-ou-under
  • Player total rebounds – full game (Over/Under) rebounds-ANY_PLAYER_ID-game-ou-over,rebounds-ANY_PLAYER_ID-game-ou-under
  • Player made threes – full game (Over/Under) threes_made-ANY_PLAYER_ID-game-ou-over,threes_made-ANY_PLAYER_ID-game-ou-under

You can mix and match any of these in a comma-separated list via oddIDs to pull exactly the markets you care about.

Fetch NBA odds for a specific player

Just like with MLB, the special value PLAYER_ID means “any player ID.” If you swap PLAYER_ID with a specific player’s ID, you’ll only get odds for that player.

For example, to get points over/under lines for a specific player (e.g. Jalen Duren):

https://api.sportsgameodds.com/v2/events?apiKey=API_KEY_HERE&leagueID=NBA&oddsAvailable=true&oddIDs=points-JALEN_DUREN_1_NBA-game-ou-over,points-JALEN_DUREN_1_NBA-game-ou-under

As you can see in these examples, you’re able to provide a comma-separated list of any oddID values. Conceptually, an oddID is a single bet and takes the following format:

{statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID}For example:
  • points-JALEN_DUREN_1_NBA-game-ou-over
    • points → stat (player points)
    • JALEN_DUREN_1_NBA → statEntityID (the player’s ID in our system)
    • game → period (full game)
    • ou → bet type (over/under)
    • over → side (over side of the market)

You can use the same pattern for assists, rebounds, threes, combinations (PAR, PRA, etc.), and split periods like halves and quarters.

A few extra notes for NBA odds

To keep responses fast and payloads small, we strongly recommend:

  • Trim oddIDs to only include the markets you actually need.
  • Specify bookmakerID to only include the books you care about, for example: bookmakerID=fanduel,draftkings,caesars,betmgm

Two other useful params:

  • includeOpposingOdds=true When set, you only need to list the over side in oddIDs, and we’ll automatically include the corresponding under odds in the response.
  • includeAltLines=true Adds alternate lines (e.g. multiple point totals for the same player). This is powerful but can slow response times and increase response size, so use it when you really need the full ladder of alt lines.

Once you’re comfortable with leagueID=NBA, oddIDs, and a few key params like bookmakerID, includeOpposingOdds, and includeAltLines, you can shape the NBA feed to match almost any betting or modeling use case—without wasting objects on unwanted markets.

From here, the best next step is to plug these example URLs into your app or Postman collection, then explore the full basketball markets list in the docs to discover everything else that’s availabe

If you’d like to dive deeper, here are some helpful links:

Read More: MLB Odds API Guide | NFL Odds API Guide

Ready to get started?

Join thousands of developers building the next generation of sports and betting applications.