Teams & Players

Access team information, rosters, injury reports, player stats, and schedules across all supported leagues. Player stats are refreshed daily and support both season-level summaries and per-game logs.

Teams

GET/v1/teams

List all teams, optionally filtered by league.

ParameterTypeRequiredDescription
leaguestringNoOptional league filter: nba, nfl, mlb, nhl, ncaa_basketball, ncaa_football

Response

{
  "success": true,
  "data": [
    {
      "teamId": "nba-lal",
      "name": "Los Angeles Lakers",
      "abbreviation": "LAL",
      "leagueId": "nba"
    }
  ],
  "meta": { "count": 1, "league": "nba" }
}
GET/v1/leagues/:leagueId/teams

List all teams in a league.

ParameterTypeRequiredDescription
leagueIdstringYesThe unique identifier of the league.

Response

{
  "success": true,
  "data": [
    {
      "teamId": "nba-lal",
      "name": "Los Angeles Lakers",
      "abbreviation": "LAL",
      "leagueId": "nba"
    },
    {
      "teamId": "nba-bos",
      "name": "Boston Celtics",
      "abbreviation": "BOS",
      "leagueId": "nba"
    }
  ],
  "meta": { "league": "nba", "count": 2 }
}
GET/v1/teams/:teamId

Get detailed information for a single team.

ParameterTypeRequiredDescription
teamIdstringYesThe unique identifier of the team.
GET/v1/teams/:teamId/roster

Get the current roster for a team.

ParameterTypeRequiredDescription
teamIdstringYesThe unique identifier of the team.

Response

{
  "success": true,
  "data": {
    "teamId": "nba-lal",
    "leagueId": "nba",
    "players": [
      {
        "playerId": "nba-p-2544",
        "name": "LeBron James",
        "position": "SF",
        "number": 23
      },
      {
        "playerId": "nba-p-203076",
        "name": "Anthony Davis",
        "position": "PF",
        "number": 3
      }
    ]
  },
  "meta": { "league": "nba", "team": "nba-lal" }
}
GET/v1/teams/:teamId/injuries

Get the latest injury report for a team.

ParameterTypeRequiredDescription
teamIdstringYesThe unique identifier of the team.

Response

{
  "success": true,
  "data": {
    "teamId": "nba-lal",
    "leagueId": "nba",
    "players": [
      {
        "name": "Anthony Davis",
        "status": "Questionable",
        "injury": "Right knee soreness"
      },
      {
        "name": "Jarred Vanderbilt",
        "status": "Out",
        "injury": "Left foot surgery recovery"
      },
      {
        "name": "Gabe Vincent",
        "status": "Day-to-Day",
        "injury": "Left ankle sprain"
      }
    ]
  },
  "meta": { "league": "nba", "team": "nba-lal" }
}
GET/v1/teams/:teamId/stats

Get current-season player stat summaries for a team.

ParameterTypeRequiredDescription
teamIdstringYesThe unique identifier of the team.
seasonstringNoSeason identifier (e.g. "2025"). Defaults to the current season.
GET/v1/teams/:teamId/schedule

Get the upcoming and past schedule for a team.

ParameterTypeRequiredDescription
teamIdstringYesThe unique identifier of the team.

Players

GET/v1/players

List players, optionally filtered by league or team.

ParameterTypeRequiredDescription
leaguestringNoOptional league filter: nba, nfl, mlb, nhl, ncaa_basketball, ncaa_football
teamstringNoOptional teamId filter
limitnumberNoMax 100, default 50
pagenumberNoPage number, default 1

Response

{
  "success": true,
  "data": [
    {
      "playerId": "nba-p-2544",
      "playerName": "LeBron James",
      "teamId": "nba-lal",
      "leagueId": "nba",
      "position": "SF"
    }
  ],
  "meta": { "count": 1, "total": 1, "page": 1, "pages": 1, "league": "nba" }
}
GET/v1/players/:playerId

Get detailed information for a single player.

ParameterTypeRequiredDescription
playerIdstringYesThe unique identifier of the player.
GET/v1/players/:playerId/stats

Get season summaries or per-game logs for a single player.

ParameterTypeRequiredDescription
playerIdstringYesThe unique identifier of the player.
typestringNoStat type: "season" or "game". Defaults to season.
seasonstringNoSeason identifier (e.g. "2025"). Defaults to the current season.
eventIdstringNoFor type=game only. Filter to one exact event ID.
datestringNoFor type=game only. Exact date in YYYY-MM-DD.
fromstringNoFor type=game only. Inclusive start date/time in YYYY-MM-DD or ISO 8601.
tostringNoFor type=game only. Inclusive end date/time in YYYY-MM-DD or ISO 8601.

Response

{
  "success": true,
  "data": [
    {
      "playerId": "nba-p-12345",
      "playerName": "Jayson Tatum",
      "teamId": "nba-bos",
      "leagueId": "nba",
      "sport": "basketball",
      "season": "2025-26",
      "statType": "game",
      "eventId": "nba-ev-311286",
      "gameDate": "2026-03-09T00:00:00.000Z",
      "stats": {
        "points": 32,
        "rebounds": 8,
        "assists": 5
      }
    }
  ],
  "meta": {
    "player": "nba-p-12345",
    "type": "game",
    "season": "2025-26",
    "count": 1
  }
}

Player stats query rules

  • If you omit type, the API returns season summaries.
  • type=season supports season only.
  • type=game supports season, eventId, date, from, and to.
  • date cannot be combined with from or to.
  • Use eventId when you want the stat line for one exact game.
  • type=career is not supported in this version.

Player Analysis

These endpoints combine historical game stats with live betting data to surface hit rates, trending players, and integrated player analysis views.

GET/v1/players/trending

Get players sorted by hit rate, paired with their best available prop line and odds. Designed for discovery surfaces.

ParameterTypeRequiredDescription
leaguestringYesLeague ID: nba, nfl, mlb, nhl, ncaa_basketball, ncaa_football
marketstringYesProp market key (e.g. player_points)
sortBystringNoHit-rate window to sort by: l5, l10, l25, season. Default l5
directionstringNoover or under. Default over
limitnumberNoMax 50, default 25
pagenumberNoPage number for pagination

Response

{
  "success": true,
  "data": [
    {
      "playerId": "nba-p-4065648",
      "playerName": "Coby White",
      "teamId": "nba-cha",
      "position": "PG",
      "market": "player_points",
      "bestLine": 14.5,
      "bestOdds": -108,
      "bookmakerName": "DraftKings",
      "hitRates": {
        "L5":  { "games": 5, "hits": 4, "rate": 0.800 },
        "L10": { "games": 10, "hits": 6, "rate": 0.600 },
        "L25": { "games": 25, "hits": 15, "rate": 0.600 }
      }
    }
  ],
  "meta": { "count": 25, "total": 87, "page": 1, "league": "nba", "market": "player_points" }
}
GET/v1/players/trends

Get each player's highest-profit active prop trend over a rolling game window, including matchup context and flat-stake profit.

ParameterTypeRequiredDescription
leaguestringNoOptional league ID filter: nba, nfl, mlb, nhl, ncaa_basketball, ncaa_football
windownumberNoRolling game window size. Integer 1-100, default 25
bookmakerstringNoOptional bookmaker key or display name filter
sourceTypestringNoall, sportsbook, dfs, exchange. Default all
limitnumberNoMax 50, default 25
pagenumberNoPage number for pagination

Response

{
  "success": true,
  "data": [
    {
      "player": {
        "playerId": "nba-p-4065648",
        "name": "Coby White",
        "teamId": "nba-chi",
        "team": "CHI",
        "matchup": "CHI @ NYK"
      },
      "eventId": "nba-ev-311286",
      "leagueId": "nba",
      "bet": {
        "market": "player_points",
        "marketName": "Player Points",
        "direction": "under",
        "line": 24.5,
        "price": 125,
        "bookmakerId": "bovada",
        "bookmakerName": "Bovada",
        "sourceType": "sportsbook"
      },
      "sampleSize": 25,
      "performance": {
        "wins": 20,
        "losses": 5,
        "pushes": 0,
        "hitRate": 0.8,
        "stake": 100
      },
      "profit": 2000
    }
  ],
  "meta": { "count": 25, "total": 73, "page": 1, "pages": 3, "window": 25, "stake": 100, "league": "nba", "sourceType": "all" }
}
GET/v1/players/:playerId/hit-rates

Get hit rates (L5, L10, L25, season) for a player against a specific prop line.

ParameterTypeRequiredDescription
playerIdstringYesThe unique identifier of the player.
marketstringYesProp market key (e.g. player_points)
linenumberNoRequired for standard line-based markets. Omit or use 0 for yes/no and over-only markets.

Response

{
  "success": true,
  "data": {
    "playerId": "nba-p-4065648",
    "market": "player_points",
    "line": 14.5,
    "direction": "over",
    "hitRates": {
      "L5":     { "games": 5, "hits": 4, "rate": 0.800 },
      "L10":    { "games": 10, "hits": 6, "rate": 0.600 },
      "L25":    { "games": 25, "hits": 15, "rate": 0.600 },
      "season": { "games": 62, "hits": 37, "rate": 0.597 }
    }
  }
}
GET/v1/players/:playerId/odds-history

Cross-event consensus odds history for a single player. Each snapshot row contains the cross-book average, best, and no-vig fair price for the player's prop lines at that moment. Pairs well with a player detail page that charts how the market has moved on a player over time.

ParameterTypeRequiredDescription
playerIdstringYesThe unique identifier of the player.
marketstringNoOptional exact prop market filter (e.g. player_points, player_rebounds)
eventIdstringNoOptional exact event filter — scope to one game
fromstringNoOptional ISO 8601 timestamp lower bound on snapshotAt
tostringNoOptional ISO 8601 timestamp upper bound on snapshotAt
limitnumberNoMax snapshots returned. Default 500, max 2000

Response

{
  "success": true,
  "data": {
    "playerId": "nba-p-4065648",
    "count": 8,
    "snapshots": [
      {
        "eventId": "nba-ev-311286",
        "leagueId": "nba",
        "sport": "basketball",
        "snapshotAt": "2026-04-08T19:00:00.000Z",
        "markets": [
          {
            "marketType": "player_points",
            "outcome": "Over",
            "player": "Jayson Tatum",
            "playerId": "nba-p-4065648",
            "point": 28.5,
            "avgPrice": -112,
            "avgImpliedProb": 0.5283,
            "bestPrice": -105,
            "bestBook": "fanduel",
            "fairOdds": -108,
            "bookCount": 9
          }
        ],
        "playerIds": ["nba-p-4065648"]
      }
    ]
  },
  "meta": { "player": "nba-p-4065648" }
}
GET/v1/players/:playerId/analysis

Integrated player analysis: current best bet, game-by-game chart data, and hit rates in one response.

ParameterTypeRequiredDescription
playerIdstringYesThe unique identifier of the player.
marketstringYesProp market key (e.g. player_points)
windowstringNoTime window for chart data: l5, l10, l25, season. Default l5
seasonstringNoOptional season filter for chart and hit-rate inputs
eventIdstringNoOptional exact game filter for chart and hit-rate inputs
datestringNoOptional exact game date in YYYY-MM-DD
fromstringNoOptional inclusive range start in YYYY-MM-DD or ISO 8601
tostringNoOptional inclusive range end in YYYY-MM-DD or ISO 8601

Response

{
  "success": true,
  "data": {
    "player": { "playerId": "nba-p-4065648", "playerName": "Coby White", "teamId": "nba-cha" },
    "currentEvent": { "eventId": "nba-ev-311286", "startTime": "2026-03-26T23:10:00Z" },
    "bestBet": { "market": "player_points", "line": 14.5, "odds": -108, "bookmakerName": "DraftKings" },
    "hitRates": {
      "L5": { "games": 5, "hits": 4, "rate": 0.800 },
      "L10": { "games": 10, "hits": 6, "rate": 0.600 }
    },
    "chart": {
      "window": "l5",
      "line": 14.5,
      "games": [
        { "gameDate": "2026-03-14T00:00:00Z", "opponent": "SAS", "value": 18, "hit": true },
        { "gameDate": "2026-03-17T00:00:00Z", "opponent": "MIA", "value": 24, "hit": true },
        { "gameDate": "2026-03-21T00:00:00Z", "opponent": "MEM", "value": 12, "hit": false }
      ]
    }
  }
}