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.

EndpointPurposeKey filters
GET /v6/esports/lol/propsLive player propsbook, market
GET /v6/esports/lol/matchesSchedule / live / completedstatus, dates
GET /v6/esports/lol/players/{slug}/gamelogsMap historylimit
GET /v6/esports/lol/linesConsensus 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.

FieldExampleUsed for
propIdkr_prop_a6f1a6866b31Stable contract key
stat_typeLOL_KILLS_MAPS_1_3Sport-prefixed market
line9.5DFS threshold
book_namePrizePicksVenue
GET /v6/esports/lol/props
{
  "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.

SourceSchemaBest use
Riot / community scrapesToS and breakage riskPersonal projects
Stats sitesResults, not book linesPost-match analysis
KashRock LoL APINormalized props + IDsPick'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.

Frequently asked questions

Does the League of Legends API include DFS props?

Yes. Live LoL player props from PrizePicks and other listed books, normalized onto one propId with sport-prefixed stat types.

Is LoL on the free Sandbox tier?

Sandbox focuses on CS2 for schema verification. LoL and full multi-sport boards start on paid plans from $29/mo — see esports API pricing.

How do map-scoped LoL kill lines work?

Stat types encode scope (e.g. LOL_KILLS_MAPS_1_3) so you never guess whether a line is map 1 or a series aggregate.