Soccer odds API

Soccer leagues, markets and prices through one REST API.

Soccer has the sport key soccer. Its events are between two teams, home and away.

Leagues

LeagueKeyBookmakers delivering
English Premier Leagueepl18
La Ligala_liga16
Serie Aserie_a15
Bundesligabundesliga11
Ligue 1ligue_115
MLSmls12
UEFA Champions Leaguechampions_league4

Also in the catalogue, with no prices delivered yet: Scottish Premiership (scottish_prem), Iceland Besta deild (iceland_besta_deild), Iceland 1. deild (iceland_1_deild), Slovak Super Liga (slovak_super_liga), Slovak 2. Liga (slovak_2_liga), Brazilian Serie A (brazilian_serie_a), UEFA Champions League qualifiers (ucl_qualifiers), UEFA Europa League qualifiers (uel_qualifiers), UEFA Conference League qualifiers (uecl_qualifiers), UEFA Nations League (nations_league) and International soccer (international_soccer).

Request the leagues

curl -sS "https://api.sockodds.com/v1/leagues?sport=soccer" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
const response = await fetch("https://api.sockodds.com/v1/leagues?sport=soccer", {
  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/leagues?sport=soccer",
    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": "epl",
      "name": "English Premier League",
      "sport": "soccer",
      "region": "uk",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "scottish_prem",
      "name": "Scottish Premiership",
      "sport": "soccer",
      "region": "uk",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "la_liga",
      "name": "La Liga",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "serie_a",
      "name": "Serie A",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "bundesliga",
      "name": "Bundesliga",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "ligue_1",
      "name": "Ligue 1",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "iceland_besta_deild",
      "name": "Iceland Besta deild",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "iceland_1_deild",
      "name": "Iceland 1. deild",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "slovak_super_liga",
      "name": "Slovak Super Liga",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "slovak_2_liga",
      "name": "Slovak 2. Liga",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "mls",
      "name": "MLS",
      "sport": "soccer",
      "region": "us",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "brazilian_serie_a",
      "name": "Brazilian Serie A",
      "sport": "soccer",
      "region": "intl",
      "periods": [
        "including_extra_time",
        "full",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "champions_league",
      "name": "UEFA Champions League",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "ucl_qualifiers",
      "name": "UEFA Champions League qualifiers",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "uel_qualifiers",
      "name": "UEFA Europa League qualifiers",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "uecl_qualifiers",
      "name": "UEFA Conference League qualifiers",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "nations_league",
      "name": "UEFA Nations League",
      "sport": "soccer",
      "region": "eu",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    },
    {
      "key": "international_soccer",
      "name": "International soccer",
      "sport": "soccer",
      "region": "intl",
      "periods": [
        "including_extra_time",
        "full",
        "regulation",
        "half_1",
        "half_2"
      ]
    }
  ],
  "meta": {
    "count": 18,
    "cursor": null
  },
  "links": {
    "next": null
  }
}

Markets

63 market types are defined for soccer: result_pair, total_goals_odd_even, team_goals_odd_even, total_corners_odd_even, team_corners_odd_even, result_half_time_full_time, result_exact_score, result, both_teams_to_score, result_draw_no_bet, handicap and total_goals and more. Each league page lists the markets and periods that apply to it, and Markets lists them all.

Search across the SockOdds documentation and catalogue.