Skip to content

Leaderboards ​

GET /leaderboards

Global paginated ranking for one stat, one gamemode, one mode.

Query parameters ​

ParameterTypeRequiredDescription
typestringrequiredgamemode id, see Gamemode Catalog
statstringrequiredraw stat key, case-sensitive, mixed-case (kills, BOW_KILLS)
modestringrecommendednot crawled without this param; unconfirmed if omittable
intervalstringoptionaltotal | weekly | monthly | yearly, default total
offsetnumberoptionalzero-indexed, default 0
limitnumberoptionalrequested page size, hard-capped at 15 server-side

interval=yearly valid only for gamemodes tagged yearly in the Gamemode Catalog. Other gamemodes: 200 with empty result, not 400.

Try it ​

GET/leaderboards
https://stats.pika-network.net/api/leaderboards?type=bedwars&stat=BED_DESTROYED&interval=total&mode=ALL_MODES&offset=0&limit=15
open

Response 200 ​

LIVE REQUESTopen raw
fetching https://stats.pika-network.net/api/leaderboards?type=bedwars&stat=kills&interval=total&mode=ALL_MODES&offset=0&limit=5 ...
FieldTypeNotes
metadata.totalnumbertotal players tracked for this stat, not page size
entriesEntry[] | nullnull observed in place of [] in some cases
entries[].placenumber1-indexed, absolute rank
entries[].valuestringnumeric string, see numeric encoding
entries[].idstringplayer username
entries[].clanstringoptional omitted, not null, when absent
entries[].rankstringoptional omitted when absent

Request forms ​

text
GET /leaderboards?type=bedwars&stat=kills&interval=total&mode=ALL_MODES&offset=0&limit=15
bash
curl 'https://stats.pika-network.net/api/leaderboards?type=bedwars&stat=kills&interval=total&mode=ALL_MODES&offset=0&limit=15'
ts
import { Gamemode, PikaNetworkClient, Stat } from '@kyizl/craftify';

const pika = new PikaNetworkClient();

await pika.getLeaderboard({
  gamemode: Gamemode.BedWars,
  stat: Stat.BedWars.Kills,
  limit: 15,
});

Errors ​

StatusCondition
400invalid type
400invalid stat for type
400invalid mode for type
400stat valid for type overall but not for the requested mode

No 404 case. Unmatched query values return 400; the route itself always resolves.

Distributed under the MIT License.