Public read-only endpoints for rankings, tiers, search, and player profiles.
Base URL: /api/v2
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /health | API health/version |
| GET | /modes | List Overall + every Ryneth gamemode |
| GET | /rankings/overall?limit=50&offset=0 | Overall leaderboard |
| GET | /rankings/{mode} | Tier board grouped into Tier 1–5, HT above LT |
| GET | /players/{username} | Full player profile |
| GET | /players/uuid/{uuid} | Profile lookup by Minecraft UUID |
| GET | /players?search=abc | Username search |
{
"data": {
"mode": {"key": "vanilla", "name": "Vanilla"},
"tiers": {
"tier1": {"ht": [], "lt": []},
"tier2": {"ht": [], "lt": []},
"tier3": {"ht": [], "lt": []},
"tier4": {"ht": [], "lt": []},
"tier5": {"ht": [], "lt": []}
}
}
}{
"data": {
"username": "Player",
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"location": "AS",
"rank": 1,
"points": {"overall": 60, "sword": 0},
"modes": {
"vanilla": {
"current": {"tier":"HT1","level":1,"kind":"HT","points":60},
"peak": {"tier":"HT1","level":1,"kind":"HT","points":60},
"previous": {"tier":"LT1","level":1,"kind":"LT","points":45},
"points": 60
}
}
}
}{
"error": {
"code": "player_not_found",
"message": "Player not found."
}
}Database/server errors are returned as 503 rather than leaking SQL details into the public response.