@@ -47,6 +47,7 @@ The API exposes Content-Range and accepts these request headers:
4747| GET | /public/clan/: clanTag | Clan statistics |
4848| GET | /public/clan/: clanTag /exists | Clan existence check |
4949| GET | /public/clan/: clanTag /sessions | Clan game sessions |
50+ | GET | /public/tribe/: name | Purchased tribe-name stats |
5051| GET | /leaderboard/public/ffa | Public free-for-all leaderboard |
5152| GET | /leaderboard/ranked | Ranked 1v1 and 2v2 leaderboards |
5253| GET | /leaderboard/tribes | Custom tribe-name leaderboard |
@@ -447,6 +448,41 @@ then stable internal ID order. playerReach is the accumulated impression/reach
447448metric, not a distinct-player count. ownerUsername can be null. This
448449leaderboard is cached for about one hour.
449450
451+ ### GET /public/tribe/: name
452+
453+ Looks up a purchased custom tribe name by its normalized name. Lookup is
454+ case- and whitespace-insensitive, and the response preserves the canonical
455+ display form.
456+
457+ Only active names (` pending ` or ` live ` ) are visible. A name owned by an
458+ actively banned player, a rejected or revoked name, and an unknown name all
459+ return 404. A name that is empty after normalization returns 400.
460+
461+ Response:
462+
463+ {
464+ "name": "Cool Tribe",
465+ "ownerPublicId": "abc123",
466+ "ownerUsername": "Ada.4821",
467+ "activeBoosts": 2,
468+ "lifetime": {
469+ "gamesAppeared": 107,
470+ "playerReach": 10699
471+ },
472+ "window": {
473+ "days": 30,
474+ "start": "2026-07-02",
475+ "end": "2026-08-01",
476+ "gamesAppeared": 7,
477+ "playerReach": 700
478+ }
479+ }
480+
481+ ` lifetime ` contains all-time games-appeared and player-reach totals.
482+ ` window ` contains the same metrics for the rolling 30-day leaderboard window.
483+ ` activeBoosts ` counts only unexpired boosts. ` ownerUsername ` is null when the
484+ owner has not set an account username.
485+
450486## Health
451487
452488### GET /ping
0 commit comments