# LOL Odds API
URL: https://sockodds.com/sports/lol-odds-api/

> Access lol betting odds from every Australian bookmaker through the SockOdds API. LOL odds for LOL including head to head, lines, totals, player props and more.

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

| League | leagueID | Events | Markets | Bookmakers |
| --- | --- | --- | --- | --- |
| [LOL](https://sockodds.com/leagues/lol-odds-api/) | `LOL` | 2 | 6 | 4 |

## 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](https://sockodds.com/player-props-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

**Browser URL** · **cURL** · **JavaScript** · **Python** · **Ruby** · **PHP** · **Java** · **Go**

```text
https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&sportID=LOL&limit=10
```

```bash
curl -X GET "https://api.sockodds.com/v2/events?oddsAvailable=true&sportID=LOL&limit=10" -H "x-api-key: YOUR_API_KEY"
```

```javascript
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));
```

```python
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"])
```

```ruby
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
<?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']);
```

```java
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());
```

```go
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:

**Browser URL** · **cURL** · **JavaScript** · **Python** · **Ruby** · **PHP** · **Java** · **Go**

```text
https://api.sockodds.com/v2/events?apiKey=YOUR_API_KEY&oddsAvailable=true&leagueID=LOL&limit=10
```

```bash
curl -X GET "https://api.sockodds.com/v2/events?oddsAvailable=true&leagueID=LOL&limit=10" -H "x-api-key: YOUR_API_KEY"
```

```javascript
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));
```

```python
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"])
```

```ruby
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
<?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']);
```

```java
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());
```

```go
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

| statID | Name | Markets | Levels |
| --- | --- | --- | --- |
| `maps` | Maps | 12 | all, 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

- [Interactive documentation](https://sockodds.com/docs/) — live examples, copy-paste snippets and an [AI (vibe coding)](https://sockodds.com/docs/info/ai-vibe-coding/) context
- [SDKs & libraries](https://sockodds.com/docs/sdk/) — the SportsGameOdds SDKs for TypeScript, Python, Ruby, Go and Java work unchanged with the base URL pointed here
- [Postman collection](https://sockodds.com/postman-collection/) — pre-built requests ready to run
- [Support](https://sockodds.com/docs/help/) — email support on every plan, priority on paid plans

### LOL market coverage by category

| Market category | Example markets | Markets | Availability | Typical bookmakers |
| --- | --- | --- | --- | --- |
| **Team & game specials** | Maps O/U, Maps, Maps line | 6 oddIDs | Pre-match | [Neds](https://sockodds.com/bookmakers/neds-odds-api/), [TAB](https://sockodds.com/bookmakers/tab-odds-api/), [Unibet](https://sockodds.com/bookmakers/unibet-odds-api/), [BetRight](https://sockodds.com/bookmakers/betright-odds-api/) |

## Use Cases for LOL API Data

- [Arbitrage](https://sockodds.com/use-cases/arbitrage-betting-api/) & [+EV tools](https://sockodds.com/use-cases/positive-ev-betting-api/) — compare lol odds across every Australian bookmaker to uncover arbitrage opportunities and positive expected value angles.
- [Odds comparison platforms](https://sockodds.com/use-cases/odds-comparison-api/) — 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](https://sockodds.com/use-cases/sports-betting-machine-learning/) — examine lol line movements and betting-market patterns, and build predictive models on retained events.
- [Betting automation](https://sockodds.com/use-cases/odds-alert-bot-api/) — build systems that monitor lol lines across bookmakers and trigger actions when your target odds appear.
- [Sportsbook & fantasy apps](https://sockodds.com/use-cases/sports-betting-app-api/) — 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](https://sockodds.com/docs/)

## Start building today

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