LoL Esports API endpoint
Returns every completed match of one tournament with final game wins and the game ids and VOD references for each game. An empty list is valid for a tournament that has not started.
/lolesports/completed-eventsHeader: x-api-key required.
Parameters:
hl: optional language for names and labels; defaults to en-US. Allowed values: cs-CZ, de-DE, en-US, es-ES, es-MX, fr-FR, hu-HU, ja-JP, ko-KR, pl-PL, pt-BR, th-TH, tr-TR, vi-VN, zh-TW. Other values return 400.tournament_id: required numeric tournament id from lolesports-tournaments.Notable response behavior:
games[].vods carries the provider (for example youtube) and its parameter (the video id). Call lolesports-event for locale and timing of each VOD.state has these values: unstarted, inProgress, completed. Team outcome has these values: win, loss.| Field | Filled in, of 53 checked | Values in the sample |
|---|---|---|
| start_time | 53 | 2026-07-24 to 2026-09-20 |
| block_name | 53 | Week 2 (8), Week 3 (8), Week 4 (8) and 5 more |
| league | 53 | |
| match | 53 | |
| games | 53 | median 3 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| hl | string | No | en-US | Language for names and labels; one of cs-CZ, de-DE, en-US, es-ES, es-MX, fr-FR, hu-HU, ja-JP, ko-KR, pl-PL, pt-BR, th-TH, tr-TR, vi-VN, zh-TW; defaults to en-US Allowed values: cs-CZ, de-DE, en-US, es-ES, es-MX, fr-FR, hu-HU, ja-JP, ko-KR, pl-PL, pt-BR, th-TH, tr-TR, vi-VN, zh-TW. | |
| tournament_id | string | Yes | Numeric tournament id from lolesports-tournaments | 115548681802226458 |
curl -X GET "https://api.crawlora.net/api/v1/lolesports/completed-events?hl=cs-CZ&tournament_id=115548681802226458" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://esports-api.lolesports.com/persisted/gw/getCompletedEvents?hl=en-US&tournamentId=115548681802226458",
"fetched_at": "2026-10-27T10:00:00Z",
"tournament_id": "115548681802226458",
"count": 1,
"events": [
{
"start_time": "2026-07-24T14:30:00Z",
"block_name": "Week 1",
"league": {
"name": "LEC"
},
"match": {
"id": "115548681803406275",
"teams": [
{
"name": "G2 Esports",
"code": "G2",
"game_wins": 2
}
],
"strategy": {
"type": "bestOf",
"count": 3
}
},
"games": [
{
"id": "115548681803406276",
"vods": [
{
"parameter": "r6VYzUuCed4"
}
]
}
]
}
]
}
}Request schema
No body schema
Response schema
Inline response schema
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | lolesports.CompletedEventsResponse | No | ||||
| data.count | integer | No | 54 | |||
| data.events | array | No | Event record, 37 fields: block_name, games, league, match, start_time, state, type. Described under LoL Esports live matches API. | |||
| data.fetched_at | string | No | 2026-10-27T10:00:00Z | |||
| data.source_url | string | No | https://esports-api.lolesports.com/persisted/gw/getSchedule?hl=en-US | |||
| data.tournament_id | string | No | 115548681802226458 | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/lolesports/completed-events?hl=cs-CZ&tournament_id=115548681802226458" \
-H "x-api-key: $CRAWLORA_API_KEY"