Player Props

Access normalized player prop markets for NBA, NFL, MLB, NHL, NCAAB, and NCAAF using canonical event identifiers that are join-safe with Events, Odds, and Edge. If you already have an eventId, you can use it directly against both /v1/events/:eventId/odds and /v1/events/:eventId/player-props.

Need game lines too? See the Odds docs.

Browse Player Props

GET/v1/player-props

Browse player props grouped by event, then player, market, and line.

ParameterTypeRequiredDescription
leaguestringNoFilter by league identifier
marketstringNoFilter by prop market key such as player_points or player_pass_yds
playerstringNoCase-insensitive player-name filter
playerIdstringNoExact playerId filter when you already have the canonical player identifier
bookmakerstringNoFilter by bookmaker key or display name
sourceTypestringNoall, sportsbook, dfs, exchange
limitnumberNoMax 50, default 25
pagenumberNoPage number for pagination

Response

{
  "success": true,
  "data": [
    {
      "eventId": "nba-ev-311286",
      "canonicalEventId": "nba-ev-311286",
      "leagueId": "nba",
      "sport": "basketball",
      "homeTeamName": "Boston Celtics",
      "awayTeamName": "New York Knicks",
      "startTime": "2026-03-26T23:10:00.000Z",
      "fetchedAt": "2026-03-25T00:10:00.000Z",
      "players": [
        {
          "playerName": "Jayson Tatum",
          "playerId": "nba-p-1628369",
          "teamAbbr": "BOS",
          "teamName": "Boston Celtics",
          "markets": [
            {
              "marketType": "player_points",
              "marketName": "Points",
              "format": "over_under",
              "isAlternate": false,
              "lines": [
                {
                  "point": 29.5,
                  "offers": [
                    { "bookmakerId": "fanduel", "bookmakerName": "FanDuel", "sourceType": "sportsbook", "sourceRegion": "us", "selection": "Over", "price": 120, "impliedProbability": 0.455, "isBest": false },
                    { "bookmakerId": "prizepicks", "bookmakerName": "PrizePicks", "sourceType": "dfs", "sourceRegion": "us_dfs", "selection": "Over", "price": 125, "impliedProbability": 0.444, "isBest": true }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "meta": { "count": 1, "page": 1 }
}

Event Player Props

GET/v1/events/:eventId/player-props

Get player props for one canonical event ID from /v1/events. Legacy/mismatched stored IDs are resolved server-side.

ParameterTypeRequiredDescription
eventIdstringYesCanonical MoneyLine event identifier
marketstringNoOptional exact prop market key filter
playerstringNoOptional case-insensitive player-name filter
bookmakerstringNoOptional bookmaker key or display-name filter
sourceTypestringNoall, sportsbook, dfs, exchange

Response

{
  "success": true,
  "data": {
    "eventId": "nba-ev-311286",
    "canonicalEventId": "nba-ev-311286",
    "leagueId": "nba",
    "sport": "basketball",
    "homeTeamName": "Boston Celtics",
    "awayTeamName": "New York Knicks",
    "startTime": "2026-03-26T23:10:00.000Z",
    "fetchedAt": "2026-03-25T00:10:00.000Z",
    "players": [
      {
        "playerName": "Jayson Tatum",
        "markets": [
          {
            "marketType": "player_points",
            "marketName": "Points",
            "format": "over_under",
            "isAlternate": false,
            "lines": [
              {
                "point": 29.5,
                "summary": {
                  "over":  { "fairOdds": -108, "bestOdds": 120, "avgOdds": -112 },
                  "under": { "fairOdds": -104, "bestOdds": -105, "avgOdds": -106 }
                },
                "offers": [
                  { "bookmakerId": "fanduel", "bookmakerName": "FanDuel", "sourceType": "sportsbook", "sourceRegion": "us", "selection": "Over", "price": 120, "impliedProbability": 0.455, "isBest": true },
                  { "bookmakerId": "kalshi", "bookmakerName": "Kalshi", "sourceType": "exchange", "sourceRegion": "us_ex", "selection": "Over", "price": 118, "impliedProbability": 0.459, "isBest": false }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "meta": { "league": "nba", "event": "nba-ev-311286" }
}

Line-level summary

  • Each line object now includes a summary with fair (no-vig), best, and average odds per selection.
  • fairOdds removes vig by averaging implied probabilities across books, normalizing the Over/Under pair to sum to 1.0, then converting back to American.
  • bestOdds is the highest American odds offered by any book for that selection.
  • avgOdds is the mean implied probability across all books, converted to American.
  • Summary is computed from all returned bookmakers for that line.

Supported Markets

GET/v1/player-props/markets

List all supported player prop markets by league.

ParameterTypeRequiredDescription
leaguestringNoOptional league identifier to return one league only

Response

{
  "success": true,
  "data": [
    {
      "leagueId": "nba",
      "sport": "basketball",
      "markets": [
        { "marketType": "player_points", "marketName": "Points", "format": "over_under", "isAlternate": false, "supportsPoint": true },
        { "marketType": "player_points_alternate", "marketName": "Alternate Points", "format": "over_under", "isAlternate": true, "supportsPoint": true }
      ]
    }
  ],
  "meta": { "count": 1, "league": "nba" }
}