JSON endpoints for the realm's public-facing data — current online roster, rated PvP leaderboards, character profiles. Open to any origin (CORS *), no auth, modestly cached. Build a Discord bot, a streamer overlay, an external tracker — all welcome.
Snapshot of all characters currently online. The top-level online_count is the realm-wide total (not the page); characters[] is capped by limit (default 100, max 500), highest level first.
limit — integer, 1..500, default 100Top-N rated PvP ladder for the bracket, current season. Bots excluded. Returns the current season number in the response so you can attach it to your output.
bracket — 2v2 · 3v3 · rbglimit — integer, 1..100, default 20Single character profile by name. Returns 404 { "error": "not_found" } for unknown names.
name — character name, 1..12 lettersPrefix character-name autocomplete (powers the navbar search). Up to 8 matches, alphabetic-only queries, highest level first. Empty [] for empty or invalid queries — never 4xx in normal use.
q — string, 1..12 lettersclass: 1 Warrior · 2 Paladin · 3 Hunter · 4 Rogue · 5 Priest · 6 DK · 7 Shaman · 8 Mage · 9 Warlock · 10 Monk · 11 Druid
race: 1 Human · 2 Orc · 3 Dwarf · 4 Night Elf · 5 Undead · 6 Tauren · 7 Gnome · 8 Troll · 9 Goblin · 10 Blood Elf · 11 Draenei · 22 Worgen · 25 Pandaren (A) · 26 Pandaren (H)
gender: 0 male · 1 female
Read-only. No write endpoints. No game-economy mutations (AH, mail, gold) — that's a hard locked decision, never coming.
No auth, no rate limit, no API keys. Same data the public Armory / Leaderboards / Who's Online pages already render. CORS * so any origin can fetch.
Cached. Cache-Control max-age 20–60s on each endpoint. Don't pound it — your bot won't get faster data.
Best-effort, no SLA. Endpoints may return 503 when the characters DB is temporarily unavailable. Always check the HTTP status.
curl
JavaScript (Discord.js / browser)