LoL Esports Schedule & Results Scraper avatar

LoL Esports Schedule & Results Scraper

Pricing

Pay per event

Go to Apify Store
LoL Esports Schedule & Results Scraper

LoL Esports Schedule & Results Scraper

Scrape the official LoL Esports schedule and match results for all leagues including Worlds, MSI, LCS, LEC, LCK and regional splits. Fetches live data directly from Riot's official lolesports API — the same source the official lolesports.com site uses.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

Scrapes match schedules and results from the official Riot lolesports API — the same source lolesports.com renders. Covers all active leagues: Worlds, MSI, LCS, LEC, LCK, CBLOL, and 10+ regional splits. Data is live, not cached, and includes match state, team scores, best-of format, and VOD links where available.

What you get

Each record is a flattened match entry from GET /persisted/gw/getSchedule:

FieldTypeDescription
event_idstringUnique match ID from the lolesports API
league_namestringLeague name (e.g. Worlds, LCS, LEC)
league_regionstringLeague slug / region identifier
statestringMatch state: unstarted, inProgress, or completed
start_time_utcstringMatch start time in UTC ISO-8601 format
block_namestringStage/block within the tournament (e.g. Groups, Knockouts)
team_1_codestringTeam 1 abbreviation (e.g. T1, C9)
team_1_namestringTeam 1 full name
team_1_scoreintegerTeam 1 game wins
team_2_codestringTeam 2 abbreviation
team_2_namestringTeam 2 full name
team_2_scoreintegerTeam 2 game wins
best_ofintegerSeries format (e.g. 3 for best-of-3)
vod_urlstringVOD replay link when available
sourcestringAlways getSchedule

tournament_id, tournament_name, and league_id are currently null — the schedule endpoint doesn't expose them. Join on league_name if you need full league metadata.

Input

ParameterTypeDefaultDescription
maxItemsinteger10Maximum match records to return. Fetches most recent events first.
leagueSlugstringworldsFilter to a specific league slug. Leave blank for all leagues.

Valid league slugs include: worlds, msi, first_stand, lcs, lec, lck, lpl, cblol-brazil, americas_cup, and others. If you pass an invalid slug, the run fails with a clear error — check the slug against the getLeagues API.

How it works

The actor calls the Riot lolesports persisted API using the publicly documented shared API key. Each page returns up to 80 events. The cursor in pages.older moves backward in time until maxItems is reached or there are no more events. When leagueSlug is set, the actor resolves the slug to a leagueId via a one-time getLeagues prefetch and scopes all schedule requests to that league.

Non-match events (show segments, placeholders) are silently skipped.

Notes

  • This API key (0TvQnueqKa5mxJntVWt0w4LpLfEkrV1Ta8rQBb9Z) is the publicly documented Riot shared key used by third-party apps and scrapers for years. It's in the clear in countless GitHub repos. If it stops working, open a support ticket.
  • Results arrive newest-first by default. If you need a full historical dataset, set maxItems high enough to exhaust the schedule.
  • Worlds 2026 (October, China) is the high-demand event this actor was built for. The API includes it alongside the year-round regional schedule.

Pairs well with the esports-tournament-roster-scraper for player-level joins on team_1_code / team_2_code.