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:

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,
    "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.

Online players

Online player list


GET .../ 30 seconds TTL
{
    "onlinePlayers": int,
    "players": {
        "playerName": "WC1",
        "playerName": "WC43",
        # [...]
    }
}

Request Playground

Last Updated:
Contributors: UltraMegaNep, SuperMegaNep