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,
    "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",
        # [...]
    }
}

Request Playground

Last Updated:
Contributors: UltraMegaNep, SuperMegaNep