Player props odds API

Player markets with the player named, priced by every bookmaker that offers them.

Player markets cover what one player does in a game: tries, goals, touchdowns, disposals, points, shots and more. Each has a key built from the stat and the bet, such as player_tries_anytime or player_points_over_under, and names its player in the market's subject.

Player markets by sport

Australian football

10 player markets, in AFL Women's: player_goals_anytime, player_goals_first, player_goals_last, player_goals_over_under, player_disposals_over_under, player_kicks_over_under, player_handballs_over_under, player_marks_over_under, player_hitouts_over_under and player_tackles_over_under.

Soccer

21 player markets, in Bundesliga, UEFA Champions League, English Premier League, La Liga, Ligue 1, MLS and Serie A: player_goals_anytime, player_goals_first, player_goals_last, player_goals_over_under, player_tackles_over_under, player_shots_over_under, player_shots_on_target_over_under, player_assists_anytime, player_cards_anytime, player_saves_over_under, player_assists_starter_anytime, player_goals_starter_first, player_goals_starter_last, player_goals_starter_anytime, player_goals_assists_starter_anytime, player_cards_starter_anytime, player_shots_on_target_starter_over_under, player_shots_starter_over_under, player_fouls_committed_starter_over_under, player_tackles_starter_over_under and player_fouled_starter_over_under.

Ice hockey

9 player markets, in NHL: player_goals_anytime, player_goals_first, player_goals_last, player_goals_over_under, player_points_over_under, player_assists_over_under, player_saves_over_under, player_shots_on_goal_over_under and player_blocked_shots_over_under.

Rugby league

6 player markets, in Rugby League World Cup and Rugby League World Cup Women's: player_tries_anytime, player_tries_first, player_tries_last, player_tries_over_under, player_tackles_over_under and player_run_metres_over_under.

Basketball

14 player markets, in NBA and NBL: player_points_over_under, player_rebounds_over_under, player_assists_over_under, player_three_pointers_over_under, player_steals_over_under, player_blocks_over_under, player_points_rebounds_assists_over_under, player_points_rebounds_over_under, player_points_assists_over_under, player_rebounds_assists_over_under, player_blocks_steals_over_under, player_double_double_yes_no, player_triple_double_yes_no and player_field_goals_first.

American football

24 player markets, in College football and NFL: player_passing_yards_over_under, player_rushing_yards_over_under, player_receiving_yards_over_under, player_receptions_over_under, player_passing_touchdowns_over_under, player_completions_over_under, player_passing_attempts_over_under, player_interceptions_thrown_over_under, player_touchdowns_anytime, player_touchdowns_first, player_touchdowns_last, player_touchdowns_over_under, player_rushing_attempts_over_under, player_longest_reception_over_under, player_longest_pass_over_under, player_field_goals_made_over_under, player_kicking_points_over_under, player_rushing_receiving_yards_over_under, player_passing_rushing_yards_over_under, player_receiving_touchdowns_over_under, player_rushing_touchdowns_over_under, player_longest_rush_over_under, player_sacks_over_under and player_interceptions_over_under.

Baseball

14 player markets, in MLB: player_hits_over_under, player_home_runs_anytime, player_home_runs_over_under, player_hits_runs_runs_batted_in_over_under, player_total_bases_over_under, player_runs_batted_in_over_under, player_runs_over_under, player_strikeouts_over_under, player_strikeouts_thrown_over_under, player_hits_allowed_over_under, player_earned_runs_allowed_over_under, player_outs_recorded_over_under, player_stolen_bases_over_under and player_walks_over_under.

Tennis

1 player markets, in ATP Tour and WTA Tour: player_aces_over_under.

Mixed martial arts

6 player markets, in UFC: player_significant_strikes_landed_over_under, player_strikes_landed_over_under, player_takedowns_over_under, player_win_by_points_dq_void_yes_no, player_win_by_ko_tko_dq_void_yes_no and player_win_by_submission_dq_void_yes_no.

How to read a player market

  • The player is the market's subject, with their pl_ id and name. The same player keeps the same id across bookmakers and games.
  • _anytime, _first and _last markets are backed with side yes or by naming the player; _over_under markets carry a line.
  • An "N or more" bet is side over at N minus 0.5: two or more tries is player_tries_over_under, over 1.5.
  • Which player markets a bookmaker prices varies by game. Ask for the ones you want with markets=.

Request the player markets for a league

curl -sS "https://api.sockodds.com/v1/markets?league=rlwc&limit=100" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
const response = await fetch("https://api.sockodds.com/v1/markets?league=rlwc&limit=100", {
  headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));
import json, os, urllib.request

request = urllib.request.Request(
    "https://api.sockodds.com/v1/markets?league=rlwc&limit=100",
    headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
    print(json.dumps(json.load(response), indent=2))

Response from a local copy of the API with invented test prices

{
  "data": [
    {
      "key": "winner",
      "name": "Winner",
      "subject": "event",
      "bet": "winner",
      "stat": null,
      "has_line": false,
      "sides": [
        "home",
        "away"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "basketball",
        "american_football",
        "baseball",
        "ice_hockey",
        "tennis",
        "mma",
        "cricket",
        "esports"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "innings_1_to_5",
        "half_2_ot",
        "period_1",
        "period_2",
        "period_3",
        "set_1",
        "set_2",
        "set_3",
        "set_4",
        "set_5",
        "map_1",
        "map_2",
        "map_3",
        "map_4",
        "map_5"
      ]
    },
    {
      "key": "result",
      "name": "Result (with the draw)",
      "subject": "event",
      "bet": "result",
      "stat": null,
      "has_line": false,
      "sides": [
        "home",
        "draw",
        "away"
      ],
      "sports": [
        "american_football",
        "soccer",
        "rugby_league",
        "rugby_union",
        "ice_hockey",
        "cricket",
        "baseball"
      ],
      "periods": [
        "full",
        "regulation",
        "half_1",
        "half_2",
        "period_1",
        "period_2",
        "period_3",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "inning_1",
        "innings_1_to_5"
      ]
    },
    {
      "key": "handicap",
      "name": "Handicap",
      "subject": "event",
      "bet": "handicap",
      "stat": null,
      "has_line": true,
      "sides": [
        "home",
        "away"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "soccer",
        "basketball",
        "american_football",
        "baseball",
        "ice_hockey",
        "tennis",
        "esports"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "innings_1_to_5",
        "half_2_ot",
        "quarter_4_ot",
        "period_1",
        "period_2",
        "period_3"
      ]
    },
    {
      "key": "total_points",
      "name": "Total points",
      "subject": "event",
      "bet": "total",
      "stat": "points",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "basketball",
        "american_football"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "half_2_ot",
        "quarter_4_ot"
      ]
    },
    {
      "key": "total_tries",
      "name": "Total tries",
      "subject": "event",
      "bet": "total",
      "stat": "tries",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ]
    },
    {
      "key": "team_points_over_under",
      "name": "Team points over/under",
      "subject": "team",
      "bet": "over_under",
      "stat": "points",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "rugby_union",
        "basketball",
        "american_football"
      ],
      "periods": [
        "full",
        "half_1",
        "half_2",
        "quarter_1",
        "quarter_2",
        "quarter_3",
        "quarter_4",
        "half_2_ot",
        "quarter_4_ot"
      ]
    },
    {
      "key": "team_tries_over_under",
      "name": "Team tries over/under",
      "subject": "team",
      "bet": "over_under",
      "stat": "tries",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ]
    },
    {
      "key": "player_tries_anytime",
      "name": "Anytime try scorer",
      "subject": "player",
      "bet": "anytime",
      "stat": "tries",
      "has_line": false,
      "sides": [
        "yes"
      ],
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "player_tries_first",
      "name": "First try scorer",
      "subject": "player",
      "bet": "first",
      "stat": "tries",
      "has_line": false,
      "sides": "participants",
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "player_tries_last",
      "name": "Last try scorer",
      "subject": "player",
      "bet": "last",
      "stat": "tries",
      "has_line": false,
      "sides": "participants",
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "player_tries_over_under",
      "name": "Player tries over/under",
      "subject": "player",
      "bet": "over_under",
      "stat": "tries",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "rugby_league",
        "rugby_union"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "player_tackles_over_under",
      "name": "Player tackles over/under",
      "subject": "player",
      "bet": "over_under",
      "stat": "tackles",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "australian_football",
        "rugby_league",
        "soccer"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "player_run_metres_over_under",
      "name": "Player run metres over/under",
      "subject": "player",
      "bet": "over_under",
      "stat": "run_metres",
      "has_line": true,
      "sides": [
        "over",
        "under"
      ],
      "sports": [
        "rugby_league"
      ],
      "periods": [
        "full"
      ],
      "non_participant": [
        "void",
        "loses",
        "under",
        "fair_price"
      ]
    },
    {
      "key": "team_tries_first",
      "name": "Team first try scorer",
      "subject": "team",
      "bet": "first",
      "stat": "tries",
      "has_line": false,
      "sides": "participants",
      "sports": [
        "rugby_league"
      ],
      "periods": [
        "full"
      ],
      "ungraded_periods": [
        "full"
      ]
    },
    {
      "key": "team_tries_last",
      "name": "Team last try scorer",
      "subject": "team",
      "bet": "last",
      "stat": "tries",
      "has_line": false,
      "sides": "participants",
      "sports": [
        "rugby_league"
      ],
      "periods": [
        "full"
      ],
      "ungraded_periods": [
        "full"
      ]
    },
    {
      "key": "team_win_by_1_to_12_yes_no",
      "name": "Team wins by 1 to 12",
      "subject": "team",
      "bet": "yes_no",
      "stat": "win_by_1_to_12",
      "has_line": false,
      "sides": [
        "yes",
        "no"
      ],
      "sports": [
        "rugby_league"
      ],
      "periods": [
        "full"
      ],
      "ungraded_periods": [
        "full"
      ]
    }
  ],
  "meta": {
    "count": 16,
    "cursor": null
  },
  "links": {
    "next": null
  }
}

Players for a team come from GET /v1/players. See Markets for every market and Keys and identifiers for player ids.

Search across the SockOdds documentation and catalogue.