LoL Esports API endpoint
Returns the articles listed on the League of Legends Esports news page: title, summary, link, publication time, banner image, authors and whether the item links out to another site (a video or a store page). The page shows up to the newest 100 items and has no category, tag or paging controls; `hl` selects the site language and `limit` keeps the newest items only.
/lolesports/newsHeader: x-api-key required.
Parameters:
hl: optional site language; allowed values: cs-CZ, de-DE, el-GR, en-AU, en-GB, en-PH, en-SG, en-US, es-ES, es-MX, fr-FR, hu-HU, id-ID, it-IT, ja-JP, ko-KR, pl-PL, pt-BR, ro-RO, ru-RU, th-TH, tr-TR, vi-VN, zh-TW. Defaults to en-US; any other value returns 400.limit: optional number of newest articles to return, 1 to 100; defaults to all the page lists.Notable response behavior:
vi-VN, which has fewer), has no category, tag or paging controls, and ignores query strings, so older news is not reachable. total is the number the page lists and count the number returned after limit.external set (true) link out, for example to a video or a store page; their url is that external link and external_url repeats it. For the others url is the lolesports.com article link and path its site path. authors can be empty.503.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| id | 40 | |
| title | 40 | median 32 characters |
| description | 40 | median 75 characters |
| path | 40 | “/news/drop-the-beat-with-true-damage-know-my-name-yasuo” and 39 other values |
| url | 40 | youtube.com and 4 other hosts |
| external | 40 | true in 19 of 40 |
| external_url | 19 | youtube.com and 3 other hosts |
| published_at | 40 | 2026-05-19 to 2026-10-15 |
| image_url | 40 | cdn.sanity.io |
| authors | 16 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| hl | string | No | en-US | Site language; one of cs-CZ, de-DE, el-GR, en-AU, en-GB, en-PH, en-SG, en-US, es-ES, es-MX, fr-FR, hu-HU, id-ID, it-IT, ja-JP, ko-KR, pl-PL, pt-BR, ro-RO, ru-RU, th-TH, tr-TR, vi-VN, zh-TW; defaults to en-US Allowed values: cs-CZ, de-DE, el-GR, en-AU, en-GB, en-PH, en-SG, en-US, es-ES, es-MX, fr-FR, hu-HU, id-ID, it-IT, ja-JP, ko-KR, pl-PL, pt-BR, ro-RO, ru-RU, th-TH, tr-TR, vi-VN, zh-TW. | |
| limit | integer | No | all the page lists | Number of newest articles to return, 1 to 100; defaults to all the page lists Minimum: 1. Maximum: 100. |
curl -X GET "https://api.crawlora.net/api/v1/lolesports/news?hl=cs-CZ&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://lolesports.com/en-US/news",
"fetched_at": "2026-10-28T10:00:00Z",
"hl": "en-US",
"total": 100,
"count": 1,
"articles": [
{
"id": "e18c9f59-8497-4196-af3f-18b2fac2b920.en-us",
"title": "Introducing the Worlds 2026 Merch Collection",
"description": "The Worlds 2026 merch lineup is here. Gear up with exclusive drops, collabs, collectibles, and more.",
"path": "/news/introducing-the-worlds-2026-merch-collection",
"url": "https://lolesports.com/en-US/news/introducing-the-worlds-2026-merch-collection",
"external": false,
"published_at": "2026-10-07T18:00:00.000Z",
"image_url": "https://cdn.sanity.io/images/dsfx7636/news_live/7f0897eef5fd7fc0842b3f264528c5cf91391cfe-1920x1080.jpg",
"authors": []
}
]
}
}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.NewsResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].authors | array | No | ||||
| data.articles[].description | string | No | Everything You Need To Know About Worlds! | |||
| data.articles[].external | boolean | No | false | |||
| data.articles[].external_url | string | No | https://www.youtube.com/watch?v=H_B91cxvCRQ | |||
| data.articles[].id | string | No | e18c9f59-8497-4196-af3f-18b2fac2b920.en-us | |||
| data.articles[].image_url | string | No | https://cdn.sanity.io/images/dsfx7636/news_live/0286cc9daee206f55cf722a3b2830ca3fdad7d59-1600x900.jpg | |||
| data.articles[].path | string | No | /news/worlds-2026-primer | |||
| data.articles[].published_at | string | No | 2026-10-05T15:00:00.000Z | |||
| data.articles[].title | string | No | Worlds 2026 Primer | |||
| data.articles[].url | string | No | https://lolesports.com/en-US/news/worlds-2026-primer | |||
| data.count | integer | No | 100 | |||
| data.fetched_at | string | No | 2026-10-27T10:00:00Z | |||
| data.hl | string | No | en-US | |||
| data.source_url | string | No | https://esports-api.lolesports.com/persisted/gw/getSchedule?hl=en-US | |||
| data.total | integer | No | 100 | |||
| 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 |
| 404 | Not Found | #/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/news?hl=cs-CZ&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"