A lightweight TypeScript library for fetching League of Legends: Wild Rift champion data directly from Riot’s public web endpoints — no API key required.
- Fetch all champion headers
- ID, name, image URL
- Fetch a single champion's full details
- Role, difficulty
- Full abilities (name, description, icon, video)
- Skins (name, image)
- Intro video
- Strongly-typed responses via
types.d.ts - Zero dependencies
- Works in Node.js and browsers
npm install @wildrift/champions-apior
yarn add @wildrift/champions-apiimport { fetchChampionHeaders } from "wildrift-champions-api";
const headers = await fetchChampionHeaders();
console.log(headers);import { fetchChampionHeaders, fetchChampion } from "wildrift-champions-api";
const headers = await fetchChampionHeaders();
const garen_header = headers.find((champ) => champ.name === "garen");
if (garen_header) {
const garen = await fetchChampion(garen_header);
console.log(garen);
}See wildrift_api_reference.md or src/types.d.ts for all types.
Fetch all champion headers (basic info).
Fetch full champion details from a given header.
All fetch functions throw an
Errorif a network or parsing error occurs. Usetry/catchto handle errors gracefully.
import { fetchChampionHeaders, fetchChampion } from "wildrift-champions-api";
async function printFirstChampion() {
const headers = await fetchChampionHeaders();
if (headers.length > 0) {
const champ = await fetchChampion(headers[0]);
console.log(champ.name, champ.role, champ.abilities);
}
}
printFirstChampion();interface ChampionHeader {
id: string;
name: string;
image_url: string;
}
interface Ability {
name: string;
icon_url: string;
video_url: string;
description: string;
ability_type: AbilityType;
}
interface Skin {
name: string;
image_url: string;
}
interface Champion extends ChampionHeader {
role: string;
skins: Skin[];
intro_video_url: string;
difficulty: number;
abilities: Record<AbilityType, Ability>;
}npm run buildOutputs ESM & CJS bundles.
MIT © Arman