League of Legends API.
Props and IDs built for production joins.
LoL boards fragment the same way CS2 does — every book spells the player differently, map scope hides in the market string, and yesterday's line disappears from the app. A League of Legends API that only returns free-text names forces you to rebuild identity on every request.
Why a LoL API needs a schema
Source fragmentation, roster moves, and vanishing DFS boards are the default for League of Legends tooling. Without a schema, every dashboard becomes a one-off parser.
Practical rule: normalize player and team IDs before you chart anything — display names are an output, not a join key.
Series, maps, and kill lines
Treat the series as the parent, maps as children, and book props as offers joined by canonical event + player IDs. Kill lines must carry map scope in stat_type, not in free text.
Parent and child rows
Series timing and status live on the match. Map gamelogs carry the K/D/A you grade. Props carry the line the book posted that day.
Core League of Legends endpoints
Production paths live under /v6/esports/lol/. Prefer path-style props routes for speed.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v6/esports/lol/props | Live player props | book, market |
| GET /v6/esports/lol/matches | Schedule / live / completed | status, dates |
| GET /v6/esports/lol/players/{slug}/gamelogs | Map history | limit |
| GET /v6/esports/lol/lines | Consensus odds (Hobby+) | — |
Canonical IDs
- —propId shared across books for the same market
- —canonical_player_id through renames
- —LOL_* stat types — never ambiguous ESPORTS_* aliases
Sample live LoL prop
Live PrizePicks LoL prop from production — same envelope as CS2 and Dota.
| Field | Example | Used for |
|---|---|---|
| propId | kr_prop_a6f1a6866b31 | Stable contract key |
| stat_type | LOL_KILLS_MAPS_1_3 | Sport-prefixed market |
| line | 9.5 | DFS threshold |
| book_name | PrizePicks | Venue |
{
"source": "kashrock",
"sport": "lol",
"props": [
{
"propId": "kr_prop_a6f1a6866b31",
"player_name": "Faker",
"stat_type": "LOL_KILLS_MAPS_1_3",
"line": 9.5,
"odds": -137,
"direction": "over",
"team": "T1",
"book_name": "PrizePicks",
"event_time": "2026-09-12T05:00:00.000Z"
}
]
}Comparing LoL data sources
Scraping client APIs breaks. Stats sites lack book lines. A normalized League of Legends API is the middle that production tools actually keep.
| Source | Schema | Best use |
|---|---|---|
| Riot / community scrapes | ToS and breakage risk | Personal projects |
| Stats sites | Results, not book lines | Post-match analysis |
| KashRock LoL API | Normalized props + IDs | Pick'ems, models, grading |
Prop verification
- —Bind propId + book + line + direction at placement
- —Resolve against finalized map gamelogs
- —Persist hit / miss / push with evidence
Operational practices
- —Short TTL on live props; longer on completed matches
- —Filter by book when you only need one venue
- —Use history/contract for quote tape, not ad-hoc scrapes
Quick reference
Start at GET /v6/esports/lol/props, join on propId, grade from gamelogs. Published pricing — no sales call.
If you need a normalized feed instead of another UI wrapper, KashRock exposes live boards, schedules, and history on one schema — with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.