Player module
This module manages player stats and online player count & list.
It is located at https://api.wynncraft.com/v3/player
Player stats
Collection of endpoints to gather various data on a defined player:
- GET Player main stats
- GET Player full stats
- GET Player character list
- GET Player character data
- GET Player character ability map
- GET Player whoami
WARNING
When requesting a player by its name rather than their UUID there are possible edge-case where multiple names will match the said name, in that case a multi-selector will be returned with player UUIDs as the identifier and their storedName
aside their rank as descriptive keys.
Player main stats
GET .../ 2 minutes TTL
{
"username": str,
"online": bool,
"server": str,
"activeCharacter": str or None,
"nickname": str or None,
"uuid": str,
"rank": str,
"rankBadge": str, # URL to the badge SVG in the Wynncraft CDN (only path)
"legacyRankColour": {
"main": str,
"sub": str
},
"shortenedRank": str,
"supportRank": str,
"veteran": bool,
"firstJoin": str,
"lastJoin": str,
"playtime": float,
"guild": {
"name": str,
"prefix": str,
"rank": str,
"rankStars": str
},
"globalData": {
"wars": int,
"totalLevels": int,
"killedMobs": int,
"chestsFound": int,
"dungeons": {
"total": int,
"list": {
"Dungeon Name": int # Number of total completions on all characters
[...]
}
},
"raids": {
"total": int,
"list": {
"Raid Name": int # Number of total completions on all characters
[...]
}
},
"completedQuests": int,
"pvp": {
"kills": int,
"deaths": int
}
},
"forumLink": int or None,
"ranking": {
"Ranking Type": int
[...]
},
"previousRanking": {
"Ranking Type": int
[...]
},
"publicProfile": bool
}
Request Playground
TIP
previousRanking
is stored daily (depending on activity, if the player is not active the stored ranks stay the same), simply doing current rank - previous rank gives player's progression in a leaderboard (it can be negative)
Player full stats
GET .../ 2 minutes TTL
{
"username": str,
"online": bool,
"server": str,
"activeCharacter": str or None,
"uuid": str,
"rank": str,
"rankBadge": str, # URL to the badge SVG in the Wynncraft CDN (only path)
"legacyRankColour": {
"main": str,
"sub": str
},
"shortenedRank": str,
"supportRank": str,
"veteran": bool,
"firstJoin": str,
"lastJoin": str,
"playtime": float,
"guild": {
"name": str,
"prefix": str,
"rank": str,
"rankStars": str
},
"globalData": {
"wars": int,
"totalLevels": int,
"killedMobs": int,
"chestsFound": int,
"dungeons": {
"total": int,
"list": {
"Dungeon Name": int # Number of total completions on all characters
[...]
}
},
"raids": {
"total": int,
"list": {
"Raid Name": int # Number of total completions on all characters
[...]
}
},
"completedQuests": int,
"pvp": {
"kills": int,
"deaths": int
}
},
"forumLink": int or None,
"ranking": {
"Ranking Type": int
[...]
},
"previousRanking": {
"Ranking Type": int
[...]
},
"publicProfile": bool,
"characters": {
"characterUuid": {
"type": str,
"nickname": str,
"level": int,
"xp": int,
"xpPercent": int,
"totalLevel": int,
"wars": int,
"playtime": float,
"mobsKilled": int,
"chestsFound": int,
"blocksWalked": int,
"itemsIdentified": int,
"logins": int,
"deaths": int,
"discoveries": int,
"pvp": {
"kills": int,
"deaths": int,
},
"gamemode": [
"hunted",
"hardcore",
[...]
],
"skillPoints": {
"strength": int,
"dexterity": int,
"intelligence": int,
"defence": int,
"agility": int
},
"professions": {
"fishing": {
"level": int,
"xpPercent": int
},
"mining": {
"level": int,
"xpPercent": int
},
# [...]
},
"dungeons": {
"total": int,
"list": {
"Dungeon Name": int
# [...]
}
},
"raids": {
"total": int,
"list": {
"Raid Name": int
# [...]
}
},
"quests": [
"Quest Name",
[...]
],
},
# [...]
},
}
Request Playground
?fullResult
Structure of characters
is shared with player character data
Player character list
GET .../ 2 minutes TTL
{
"characterUuid": {
"type": str,
"nickname": str,
"level": int,
"xp": int,
"xpPercent": int,
"totalLevel": int,
"gamemode": [
"hunter",
"hardcore",
# [...]
],
"meta": {
"died": bool,
},
},
# [...]
}
Request Playground
Player character data
GET .../ 2 minutes TTL
{
"type": str,
"nickname": str,
"level": int,
"xp": int,
"xpPercent": int,
"totalLevel": int,
"wars": int,
"playtime": float,
"mobsKilled": int,
"chestsFound": int,
"blocksWalked": int,
"itemsIdentified": int,
"logins": int,
"deaths": int,
"discoveries": int,
"pvp": {
"kills": int,
"deaths": int,
},
"gamemode": [
"hunted",
"hardcore",
# [...]
],
"skillPoints": { # Can be empty if !playerProfile
"strength": int,
"dexterity": int,
"intelligence": int,
"defence": int,
"agility": int
},
"professions": {
"fishing": {
"level": int,
"xpPercent": int
},
"mining": {
"level": int,
"xpPercent": int
},
# [...]
},
"dungeons": {
"total": int,
"list": {
"Dungeon Name": int
# [...]
}
} or None,
"raids": {
"total": int,
"list": {
"Raid Name": int
# [...]
}
} or None,
"quests": [
"Quest Name",
# [...]
],
}
Request Playground
WARNING
Players have the ability to hide their skill points which will return an empty object for skillPoints
. To hide your skill points you need to do /toggle publicProfile
in-game which can take up to 10mins to propagate.
Player character ability map
GET .../ 10 mins TTL
[
{
"type": "ability",
"coordinates": {
"x": int,
"y": int
},
"meta": {
"icon": {
"value": dict({
"id": str,
"name": str,
"customModelData": str
}) or str,
"format": str
},
"page": int,
"id": str # Internal id of the ability, abilities in AT response are refered by the same id
},
"familiy": [ # Ability ids listed here are abilities connected to the current one
"ability1"
# [...]
]
},
{
"type": "connector",
"coordinates": {
"x": int,
"y": int
},
"meta": {
"icon": "connector_up_down",
# Connector icon syntax is both direction clockwise like right_left or right_down_left
"page": int
},
"family": [ # Ability ids listed here are abilities assiciated to this connector
"ability1",
# [...]
]
},
# [...]
]
Request Playground
TIP
The ability map above only list abilities the player has enabled and does the pathfinding on the go, it is recommended to associate this map + the ability tree of the class + the ability map of the class
WARNING
Players have the ability to hide their ability tree. Requesting an hidden one will return a 403
error. To hide your AT you need to do /toggle publicProfile
in-game which can take up to 10mins to propagate.
Player whoami
GET .../ 0 seconds TTL
{
"uuid": {
"username": str,
"online": bool,
"nickname": str or None,
"rank": str,
"veteran": bool or None,
"rankBadge": str or None,
"supportRank": str or None,
"shortenedRank": str or None,
"legacyRankColour": dict({
"sub": str,
"main": str
}) or None
},
# [...]
}
Request Playground
TIP
Data returned here depends on the accounts you used to join Wynncraft, those accounts represent who we think you are and will be used for features like store Auto Log in or the map live position viewer.
Online players
Online player list
GET .../ 30 seconds TTL
{
"onlinePlayers": int,
"players": {
"playerName": "WC1",
"playerName": "WC43",
# [...]
}
}