Public API

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.

Endpoints: /api/online · /api/leaderboards/<bracket> · /api/character/<name> · /api/search/chars
GET http://aeterniumclan.de/palworld/api/online

Live Palworld roster from PalDefender across Forest, Mountain, Abyss and Ascension. Whitelist Server is excluded. Public output never contains player IPs or PalDefender UserIds.

Query parameters
serverall · forest · mountain · abyss · ascension
registeredall · yes · no
q — optional player/account/guild search
limit — integer, 1..500, default 100
// example response { "online_count": 42, "registered_online": 18, "servers": [ { "name": "Forest", "online_count": 12, "available": true } ], "players": [ { "name": "Player", "server": "Ascension", "guild": "Aeternium", "level": 80, "platform": "Steam", "registered": true, "profile_url": "/palworld/armory?server=ascension&player=..." } ] }
GET http://aeterniumclan.de/palworld/api/leaderboards/<bracket>

Top-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.

Path
bracket2v2 · 3v3 · rbg
Query parameters
limit — integer, 1..100, default 20
// GET /api/leaderboards/3v3?limit=5 { "bracket": "3v3", "season": 14, "top": [ { "rank": 1, "name": "Tester", "level": 90, "race": 1, "class": 4, "gender": 0, "rating": 2400, "wins": 120 } ] }
GET http://aeterniumclan.de/palworld/api/character/<name>

Single character profile by name. Returns 404 { "error": "not_found" } for unknown names.

Path
name — character name, 1..12 letters
// GET /api/character/Tester { "name": "Tester", "level": 90, "race": 1, "class": 4, "gender": 0, "online": false, "guild": "Frost", "zone": 5841, "honorable_kills": 1234, "total_playtime_seconds": 98765, "last_logout": 1716000000 }

ID reference

class: 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

Policy

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.

Quick examples

curl

curl -s http://aeterniumclan.de/palworld/api/online | jq '.online_count'

JavaScript (Discord.js / browser)

const res = await fetch('http://aeterniumclan.de/palworld/api/leaderboards/3v3?limit=5'); const data = await res.json(); data.top.forEach(p => console.log(`#${p.rank} ${p.name} (${p.rating})`));