LOL Odds API

Access lol betting odds from 4 bookmakers through the SockOdds API. Get lol odds for every event including head to head, lines, totals, player props and more — sportID=LOL.

LOL Odds API Features

Our lol odds API is fully filterable, so you pull exactly the data you want — events, player props, teams or specific markets. Curate the feed to your needs with the same parameters SportsGameOdds developers already know.

6 distinct markets are priced across 1 league right now:

  • Head to head / moneylines (2-way and 3-way markets)
  • Lines, spreads and handicaps
  • Totals (over/under)
  • Alternative lines
  • Player props and game props
  • Period-specific markets (halves)

LOL leagues

LeagueleagueIDEventsMarketsBookmakers
LOLLOL264

LOL Player Props

Player props for lol are keyed like every other sport (the playerID in the statEntityID slot); the Australian books price lol mainly at team and match level today. See the player prop odds API.

LOL API Odds with Results

SockOdds delivers lol odds and event data in one configuration:

  • Upcoming events with status flags
  • Home and away teams with ids
  • Players with production ids where the source carries them
  • LOL odds including lines, totals, head to head, player props and more
  • Results and grading flags where the source has them

Quick start: your first LOL odds API call

https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&sportID=LOL&limit=10
curl -X GET "https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10" -H "x-api-key: YOUR_API_KEY"
const response = await fetch("https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10", { headers: { "x-api-key": "YOUR_API_KEY" } });
const { data, nextCursor, notice } = await response.json();
console.log(JSON.stringify(data, null, 2));
import requests

response = requests.get("https://api.sockodds.com/v2/events", params=dict(oddsAvailable="true", sportID="LOL", limit="10"), headers={"x-api-key": "YOUR_API_KEY"})
output = response.json()
print(output["data"])
require 'net/http'
require 'json'

uri = URI("https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10")
req = Net::HTTP::Get.new(uri)
req['x-api-key'] = 'YOUR_API_KEY'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts JSON.pretty_generate(JSON.parse(res.body)['data'])
<?php
$ch = curl_init("https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['x-api-key: YOUR_API_KEY']);
$output = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($output['data']);
import java.net.URI;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10"))
    .header("x-api-key", "YOUR_API_KEY").GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
req, _ := http.NewRequest("GET", "https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
res, err := http.DefaultClient.Do(req)
if err != nil { log.Fatal(err) }
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))

Or one league at a time, which is faster:

https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&leagueID=LOL&limit=10
curl -X GET "https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10" -H "x-api-key: YOUR_API_KEY"
const response = await fetch("https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10", { headers: { "x-api-key": "YOUR_API_KEY" } });
const { data, nextCursor, notice } = await response.json();
console.log(JSON.stringify(data, null, 2));
import requests

response = requests.get("https://api.sockodds.com/v2/events", params=dict(oddsAvailable="true", leagueID="LOL", limit="10"), headers={"x-api-key": "YOUR_API_KEY"})
output = response.json()
print(output["data"])
require 'net/http'
require 'json'

uri = URI("https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10")
req = Net::HTTP::Get.new(uri)
req['x-api-key'] = 'YOUR_API_KEY'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts JSON.pretty_generate(JSON.parse(res.body)['data'])
<?php
$ch = curl_init("https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['x-api-key: YOUR_API_KEY']);
$output = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($output['data']);
import java.net.URI;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10"))
    .header("x-api-key", "YOUR_API_KEY").GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
req, _ := http.NewRequest("GET", "https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
res, err := http.DefaultClient.Do(req)
if err != nil { log.Fatal(err) }
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))

Stats priced in lol

statIDNameMarketsLevels
mapsMaps12all, team

LOL Odds API Technical Specifications

API Architecture

  • REST API — Simple HTTP endpoints with JSON responses, identical to the SportsGameOdds v2 paths
  • Native WebSocket snapshots - Pro/Platform at /v2/stream/events; polling-backed, with unchanged upstream freshness
  • Rate limits — per-key, per-minute meters that bind under concurrency; plans sized to your usage
  • Authentication — secure API key access via the x-api-key header or apiKey query parameter

Data Update Speed

  • Odds updates — every ~2 minutes across every bookmaker lane
  • Event status — status flags and info.stale tell you exactly how current a price is

Developer Resources

LOL market coverage by category

Market categoryExample marketsMarketsAvailabilityTypical bookmakers
Team & game specialsMaps O/U, Maps, Maps line6 oddIDsPre-matchNeds, TAB, Unibet, BetRight

Use Cases for LOL API Data

  • Arbitrage & +EV tools — compare lol odds across every Australian bookmaker to uncover arbitrage opportunities and positive expected value angles.
  • Odds comparison platforms — display lol odds from every book side by side for comprehensive line shopping.
  • Pricing models & trading — use lol market data as inputs for proprietary pricing algorithms and betting strategies.
  • Sports analytics & research — examine lol line movements and betting-market patterns, and build predictive models on retained events.
  • Betting automation — build systems that monitor lol lines across bookmakers and trigger actions when your target odds appear.
  • Sportsbook & fantasy apps — power your lol product with reliable odds, status and bet-slip deeplinks.

LOL Odds API Documentation

Our interactive documentation covers everything you need to integrate LOL odds into your project:

  • Full endpoint reference with parameters and response schemas
  • Live request and response examples
  • Code snippets in Python, JavaScript, Ruby, Go and Java
  • Authentication setup and API key management
  • Rate limiting and the notice field
  • Error handling and troubleshooting

View documentation

Start building today

Free plan available. Set up in 5 minutes. Scale when you're ready.

Search across the SockOdds documentation and catalogue.