LoL Esports Schedule & Results Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
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:
| Field | Type | Description |
|---|---|---|
event_id | string | Unique match ID from the lolesports API |
league_name | string | League name (e.g. Worlds, LCS, LEC) |
league_region | string | League slug / region identifier |
state | string | Match state: unstarted, inProgress, or completed |
start_time_utc | string | Match start time in UTC ISO-8601 format |
block_name | string | Stage/block within the tournament (e.g. Groups, Knockouts) |
team_1_code | string | Team 1 abbreviation (e.g. T1, C9) |
team_1_name | string | Team 1 full name |
team_1_score | integer | Team 1 game wins |
team_2_code | string | Team 2 abbreviation |
team_2_name | string | Team 2 full name |
team_2_score | integer | Team 2 game wins |
best_of | integer | Series format (e.g. 3 for best-of-3) |
vod_url | string | VOD replay link when available |
source | string | Always 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
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 10 | Maximum match records to return. Fetches most recent events first. |
leagueSlug | string | worlds | Filter 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
maxItemshigh 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.