Data / methodology
This is an unofficial companion for Brawl Stars club 'N3X (#2JYGUQ2P8). Club is the home tab: live roster, member profiles and who joined or left. Stats counts the club's own battles, Meta collects what the creators publish, Ladder shows the official global leaderboards and Maps the live event rotation.
Where the numbers come from
Everything is read from the official Brawl Stars API through this app's own Cloudflare Worker. The Worker holds the API key, caches responses for a minute and is the only party that talks to Supercell — the browser never sees a key. Official API keys are locked to the IP addresses that may use them, and a Worker has no fixed address, so the Worker calls the API through RoyaleAPI's public proxy and that proxy's published addresses are the ones on the key.
Why the app no longer reads Brawl Time Ninja
Earlier builds scraped Brawl Time Ninja. That site answers every datacenter request with a Cloudflare challenge and sends no CORS headers, so a hosted build can read neither its pages nor the browser-side Cube API they feed. The measurement (Cloudflare Workers, GitHub/Azure runners, Vercel and the jina relay all rejected) is recorded in the repository's HANDOFF.md. The club, member, Ladder and Maps data above does not depend on it.
Joined / left
Brawl Stars publishes no club activity feed. The Worker keeps one shared snapshot of the last roster it saw and compares it on every refresh: new tags are joins, missing tags are leaves, a changed role is a promotion or demotion. The first stored snapshot is a baseline — nothing is invented as a join or leave until a later snapshot differs. The log lives in the Worker's KV store, so it is the same for everyone who opens the app.
Member profiles
Trophies, highest trophies, experience level, per-brawler trophies and the recent battle list come from the official player and battle-log endpoints. Ranked Elo and the league name are the fields the official API publishes for a player (a Ranked battle's trophyChange is the Elo delta, and its brawlerTrophies field carries the league index, not trophies — the app labels those rows accordingly).
Ladder, Maps, Stats and Meta
- Ladder: the official global leaderboards — the top 200 players or clubs, with trophies and club names, exactly as the API returns them. Rank order is never re-sorted.
- Maps: the live event rotation — what is running now and what comes next, with mode and map names. Counts of games per map are not published by the API, so the app does not show any.
- Stats: what this club actually played and won with, counted from the members' own battle logs (about the last 25 games each, competitive queues only — friendlies and event modes stay out). The official API publishes no global win or pick rates, so these are club numbers: every row carries its own sample size, and fewer than five games reads as a small sample instead of a ranking. A dash in the right-hand column means the API published no trophy or Elo change for those battles.
- Meta: recent uploads from seven tracked channels — SpenLC, Ash, KairosTime, CryingMan, Rey, Lex and bobby — read from their public YouTube feeds. The Tier lists filter keeps only uploads the backend tagged as a tier list or meta video; Everything shows the feeds as they are. "Named most in titles" counts brawler names across the last 30 days of headlines — a reading of the titles, not a tier list. Placements inside a video are never transcribed, and the app does not guess them from a thumbnail.
- Brawler and map art: BrawlAPI and the Brawlify CDN (a static catalog, loaded by the browser directly).
Freshness
The Worker caches club data for 45 seconds and player data for a minute; the browser keeps the last good payload and shows it, labelled, if the network fails. Club re-checks about every 90 seconds while the tab is open, Ladder every 5 minutes, Maps every 10. Nothing is invented to fill a gap: a failed request shows the reason it failed.
Known limits
- Joins and leaves only exist after a stored snapshot; history from before this app started watching cannot be reconstructed.
- The official battle log lags behind by up to about half an hour and returns only the most recent battles, so a member page can miss very recent games.
- Ranked win-rate and pick-rate boards (per map, per brawler, filtered by league) existed only in Brawl Time Ninja's analytics cube and have no official equivalent — they are not part of this app rather than replaced with invented numbers. Stats is club-scoped for the same reason.
- Creator pages only see the recent window of each channel's public feed, so an older tier list drops out of Meta as new uploads arrive.
- Ban rates are not published anywhere official, so they are not estimated from pick rates.
- The club's own roster is the only club the app tracks.
Fan content
This content is not affiliated with, endorsed, sponsored, or specifically approved by Supercell and Supercell is not responsible for it. For more information see Supercell's Fan Content Policy.