Coverage · 7 September 2026 · updated 14 October 2026

Every Premier League Betting Market in the SockOdds API

Result, double chance, draw no bet, totals, corners, cards and player markets for the English Premier League, with the keys to request each one.

The English Premier League is in SockOdds API v1 under the league key epl. It is soccer (sport key soccer), which has the widest market catalogue in the API: 63 market types apply to the Premier League, from the three-way result to corners, cards, exact scores and player markets for goals, shots, assists, tackles and saves.

As of 30 October 2026, 18 bookmakers, exchanges and prediction markets were delivering Premier League prices: Sportsbet, TAB, Neds, PointsBet, Unibet, Betfair Exchange, Pinnacle, Dabble, Betr, Kalshi, Polymarket, Matchbook, BetDeluxe, BetFocus, Mintbet, ProphetX, SwiftBet and TABtouch. Australian bookmakers sit next to exchanges and prediction markets in the same response, each under its own key.

Every Premier League market type

The table comes from the API's own catalogue. A bookmaker quotes the markets it offers for each game, so a type being listed means you can ask for it, not that every bookmaker prices it every week.

Game markets

MarketKeySidesLinePeriods
Either of two resultsresult_pairhome_or_draw, away_or_draw, either_teamNofull, half_1, half_2
Total goals odd/eventotal_goals_odd_evenodd, evenNofull, half_1, half_2
Total corners odd/eventotal_corners_odd_evenodd, evenNofull
Half-time/full-timeresult_half_time_full_timehome_home, home_draw, home_away, draw_home, draw_draw, draw_away, away_home, away_draw, away_awayNofull
Exact scoreresult_exact_scoreEach exact scoreNofull, half_1, half_2
Result (with the draw)resulthome, draw, awayNofull, half_1, half_2
Both teams to scoreboth_teams_to_scoreyes, noNofull, half_1, half_2
Result (draw no bet)result_draw_no_bethome, awayNofull, half_1, half_2
Handicaphandicaphome, away, competitor_1, competitor_2Yesfull, half_1, half_2
Total goalstotal_goalsover, underYesfull, half_1, half_2
Total cornerstotal_cornersover, underYesfull, half_1, half_2
Total cardstotal_cardsover, underYesfull
Total cards (a straight red counts one)total_cards_singleover, underYesfull
Three-way handicap (home line)result_handicaphome, draw, awayYesfull, half_1, half_2
A goal in both halvesgoal_in_both_halvesyes, noNofull
Both teams to score in both halvesboth_teams_to_score_both_halvesyes, noNofull
Both teams over (goals)both_teams_goals_overyes, noYesfull
Both teams over (cards)both_teams_cards_overyes, noYesfull
Highest-scoring halfhighest_scoring_halfhalf_1, half_2, tieNofull
Half of the first goalfirst_goal_halfhalf_1, half_2, no_goalNofull
Which teams scorewhich_teams_scoreboth_teams, home_only, away_only, neither_teamNofull
An own goal is scoredown_goalyes, noNofull
First team to scorefirst_team_to_scorehome, awayNofull, half_1, half_2
Last team to scorelast_team_to_scorehome, awayNofull
Most cornersresult_cornershome, draw, awayNofull, half_1
Corners handicaphandicap_cornershome, awayYesfull
Corners three-way handicap (home line)result_handicap_cornershome, draw, awayYesfull
Most cardsresult_cardshome, draw, awayNofull
Cards three-way handicap (home line)result_handicap_cardshome, draw, awayYesfull
Total shots on targettotal_shots_on_targetover, underYesfull
Total savestotal_savesover, underYesfull

Team markets

MarketKeySidesLinePeriods
Team goals odd/eventeam_goals_odd_evenodd, evenNofull, half_1, half_2
Team corners odd/eventeam_corners_odd_evenodd, evenNofull
Team goals over/underteam_goals_over_underover, underYesfull, half_1, half_2
Team corners over/underteam_corners_over_underover, underYesfull, half_1, half_2
Team shots on target over/underteam_shots_on_target_over_underover, underYesfull
Team saves over/underteam_saves_over_underover, underYesfull
Team cards over/underteam_cards_over_underover, underYesfull
Team wins either halfteam_win_either_half_yes_noyes, noNofull
Team wins both halvesteam_win_both_halves_yes_noyes, noNofull
Team scores in both halvesteam_goal_in_both_halves_yes_noyes, noNofull
Team keeps a clean sheetteam_clean_sheet_yes_noyes, noNofull

Player markets

MarketKeySidesLinePeriods
Anytime goal scorerplayer_goals_anytimeyesNofull
First goal scorerplayer_goals_firstEach competitorNofull
Last goal scorerplayer_goals_lastEach competitorNofull
Player goals over/underplayer_goals_over_underover, underYesfull
Player tackles over/underplayer_tackles_over_underover, underYesfull
Player shots over/underplayer_shots_over_underover, underYesfull
Player shots on target over/underplayer_shots_on_target_over_underover, underYesfull
Anytime assistplayer_assists_anytimeyesNofull
To be cardedplayer_cards_anytimeyesNofull
Player saves over/underplayer_saves_over_underover, underYesfull
Assist, starter onlyplayer_assists_starter_anytimeyesNoincluding_extra_time
First goalscorer, starter onlyplayer_goals_starter_firstyesNoincluding_extra_time
Last goalscorer, starter onlyplayer_goals_starter_lastyesNoincluding_extra_time
Goals, starter onlyplayer_goals_starter_anytimeyesNoincluding_extra_time
Goals or assists, starter onlyplayer_goals_assists_starter_anytimeyesNoincluding_extra_time
Booked, starter onlyplayer_cards_starter_anytimeyesNoincluding_extra_time
Shots on target, starter onlyplayer_shots_on_target_starter_over_underover, underYesincluding_extra_time
Shots, starter onlyplayer_shots_starter_over_underover, underYesincluding_extra_time
Fouls committed, starter onlyplayer_fouls_committed_starter_over_underover, underYesincluding_extra_time
Tackles, starter onlyplayer_tackles_starter_over_underover, underYesincluding_extra_time
Times fouled, starter onlyplayer_fouled_starter_over_underover, underYesincluding_extra_time

Reading soccer markets

Soccer has three outcomes where most sports have two, and the catalogue names them plainly:

  • result is the three-way market: sides home, draw and away. It settles on the market's period: full is the whole match, half_1 and half_2 the halves.
  • result_pair is double chance: home_or_draw, away_or_draw and either_team.
  • result_draw_no_bet returns your stake on a draw.
  • result_exact_score has one outcome per score, so its sides are the scores themselves.
  • handicap is the goal line, with each outcome carrying its own figure: home at -0.5 with away at 0.5, for example.
  • total_goals, total_corners and total_cards are over/under markets with a line on each outcome; team_goals_over_under and team_corners_over_under are the same for one team, which is the market's subject.
  • The odd/even markets (total_goals_odd_even and friends) have sides odd and even.

Periods are full, half_1 and half_2. Check period on every market before you compare two prices: a first-half result and a full-time result are different bets.

Player markets

Goalscorer markets come in three forms. player_goals_anytime is one market per player with side yes. player_goals_first and player_goals_last are runner markets: one outcome per player, and the outcome's side is the player's id. Shots, shots on target, tackles and saves are over/under markets on one player, who is the market's subject. "N or more" bets, such as two or more shots on target, arrive as the over at N minus 0.5.

The same player keeps the same pl_ id across bookmakers and games, and one player's shots line at every bookmaker comes back as one market, with each bookmaker's price under its outcomes.

Compare the result across bookmakers

Because market and outcome ids are shared, each outcome appears once with every bookmaker's price on it, sorted best first, so a best-price board reads the first price on each outcome. This program reads the next Premier League game's result market from every Australian bookmaker quoting it and prints the highest price for each outcome:

const response = await fetch(`https://api.sockodds.com/v1/odds?league=epl&markets=result&regions=au&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
  headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
const body = await response.json();
for (const event of body.data) {
  console.log(`${event.name}, ${event.scheduled_start}`);
  for (const market of event.markets) {
    if (market.period !== "full") continue;
    for (const outcome of market.outcomes) {
      const best = outcome.prices[0]; // prices are sorted best first
      console.log(`  ${outcome.name}: ${best.decimal_odds.toFixed(2)} at ${best.bookmaker}`);
    }
  }
}
import json, os, urllib.request
from datetime import datetime, timezone

request = urllib.request.Request(
    f"https://api.sockodds.com/v1/odds?league=epl&markets=result&regions=au&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
    headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
    body = json.load(response)
for event in body["data"]:
    print(f"{event['name']}, {event['scheduled_start']}")
    for market in event["markets"]:
        if market["period"] != "full":
            continue
        for outcome in market["outcomes"]:
            best = outcome["prices"][0]  # prices are sorted best first
            print(f"  {outcome['name']}: {best['decimal_odds']:.2f} at {best['bookmaker']}")

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

AFC Bournemouth v Arsenal, 2026-10-16T12:00:00.000Z
  AFC Bournemouth: 2.11 at tab
  Draw: 3.50 at tab
  Arsenal: 3.71 at tab

The output comes from a local copy of the API with invented prices. Prices move, so check observed_at before you act on one.

Which plan

The Premier League is on Rookie and Pro, not on the free Developer plan. Rookie includes 9 bookmakers (Sportsbet, TAB, Ladbrokes, Neds, PointsBet, Unibet, Betfair Exchange, Dabble and Betr); Pro includes every bookmaker we deliver, recorded price history and the odds stream. See pricing and the Premier League page.

Next

SockOdds provides data only. It does not offer tips or predictions on any game.

Search across the SockOdds documentation and catalogue.