# Wynncraft

> Access live Wynncraft game data through the keyless public API: online players, player profiles and characters, guilds and territories, the item and recipe databases, class ability trees and aspects, map markers, world events, raids, gathering nodes, leaderboards, and news. No account or API key required.

App · Gaming · 37 actions. Web page: https://docs.lodol.com/docs/integrations/wynncraft

## Actions

### Fetch a published article

Fetch one published article's full content by its type and id (the 'pk' from 'List published articles').

**Inputs**

- Article type (`article_type`, text, required): The article's type. One of: `blog`, `event`, `giveaway`, `article` (All article types), `poll`.
- Article ID (`pk`, text, required): The article's id (its 'pk'), from 'List published articles'.

**Outputs**

- `article` (object)

**Example output**

```json
{
  "article": {
    "created_by": "Salted",
    "id": 116,
    "title": "Wynncraft: Fruma Expansion is OUT!",
    "type": "blog"
  }
}
```

### Get character ability map

Get the ability-tree nodes a character has unlocked, as a map with each node's coordinates and metadata.

**Inputs**

- Username or UUID (`username`, text, required): The player's username or UUID.
- Character UUID (`character_uuid`, text, required): The character's UUID, from 'List a player's characters'.

**Outputs**

- `abilities` (list)

**Example output**

```json
{
  "abilities": [
    {
      "coordinates": {
        "x": 5,
        "y": 1
      },
      "meta": {
        "id": "arrow_storm",
        "page": 1
      },
      "type": "ability"
    }
  ]
}
```

### Get character details

Get one character's detailed data: level and XP, professions, dungeon and raid completions, quests, and gear.

**Inputs**

- Username or UUID (`username`, text, required): The player's username or UUID.
- Character UUID (`character_uuid`, text, required): The character's UUID, from 'List a player's characters'.

**Outputs**

- `character` (object)

**Example output**

```json
{
  "character": {
    "level": 120,
    "playtime": 210.4,
    "totalLevel": 142,
    "type": "ARCHER",
    "wars": 2,
    "xp": 548640
  }
}
```

### Get class ability tree

Get a class's full ability tree: every ability with its description, cost, requirements, and connections.

**Inputs**

- Class (`class_name`, text, required): The Wynncraft class to look up. One of: `archer`, `warrior`, `assassin`, `mage`, `shaman`.

**Outputs**

- `abilityTree` (object)

**Example output**

```json
{
  "abilityTree": {
    "archetypes": {
      "riftwalker": {
        "name": "Riftwalker"
      }
    },
    "pages": 3
  }
}
```

### Get class ability tree map

Get the layout map of a class's ability tree: each node's grid coordinates, page, and connections, for rendering the tree.

**Inputs**

- Class (`class_name`, text, required): The Wynncraft class to look up. One of: `archer`, `warrior`, `assassin`, `mage`, `shaman`.

**Outputs**

- `abilityMap` (object)

**Example output**

```json
{
  "abilityMap": {
    "1": [
      {
        "coordinates": {
          "x": 5,
          "y": 1
        },
        "meta": {
          "id": "meteor"
        },
        "type": "ability"
      }
    ]
  }
}
```

### Get class details

Get one class's detail: lore, overall difficulty, and its archetypes with their difficulty, damage, defence, and speed.

**Inputs**

- Class (`class_name`, text, required): The Wynncraft class to look up. One of: `archer`, `warrior`, `assassin`, `mage`, `shaman`.

**Outputs**

- `class` (object)

**Example output**

```json
{
  "class": {
    "archetypes": {
      "riftwalker": {
        "difficulty": 1
      }
    },
    "id": "mage",
    "name": "Mage (Dark Wizard)",
    "overallDifficulty": 1
  }
}
```

### Get guild by name

Get a guild's full profile by its exact name: level, XP, member roster by rank, territories, wars, and season rankings.

**Inputs**

- Guild name (`name`, text, required): The guild's exact name, such as 'Avicia'.
- Player reference (`identifier`, text): How nested player references are keyed in the response: by username or by UUID. Defaults to username. One of: `username`, `uuid`.

**Outputs**

- `guild` (object)

**Example output**

```json
{
  "guild": {
    "level": 135,
    "members": {
      "total": 149
    },
    "name": "Avicia",
    "prefix": "AVO",
    "territories": 59,
    "uuid": "00ccf9d3-6670-4cd7-a447-f7fec684129d"
  }
}
```

### Get guild by prefix

Get a guild's full profile by its prefix (the short tag shown in game, such as 'AVO').

**Inputs**

- Guild prefix (`prefix`, text, required): The guild's prefix tag, such as 'AVO'.
- Player reference (`identifier`, text): How nested player references are keyed in the response: by username or by UUID. Defaults to username. One of: `username`, `uuid`.

**Outputs**

- `guild` (object)

**Example output**

```json
{
  "guild": {
    "level": 135,
    "name": "Avicia",
    "prefix": "AVO",
    "uuid": "00ccf9d3-6670-4cd7-a447-f7fec684129d"
  }
}
```

### Get guild by UUID

Get a guild's full profile by its UUID.

**Inputs**

- Guild UUID (`uuid`, text, required): The guild's UUID.
- Player reference (`identifier`, text): How nested player references are keyed in the response: by username or by UUID. Defaults to username. One of: `username`, `uuid`.

**Outputs**

- `guild` (object)

**Example output**

```json
{
  "guild": {
    "level": 135,
    "name": "Avicia",
    "prefix": "AVO",
    "uuid": "00ccf9d3-6670-4cd7-a447-f7fec684129d"
  }
}
```

### Get item filter metadata

Get the item database's filter vocabulary: every valid item type, sub-type, tier, attack speed, profession, and identification, useful for building item searches.

**Inputs**

- Static only (`static_only`, true/false): Return only the static filter metadata, without live counts. Default: `false`.

**Outputs**

- `metadata` (object)

**Example output**

```json
{
  "metadata": {
    "filters": {
      "tier": {
        "items": [
          "common",
          "unique",
          "rare"
        ]
      },
      "type": [
        "weapon",
        "armour",
        "accessory"
      ]
    }
  }
}
```

### Get latest news

Get the latest news posts from the main site, each with its title, date, author, forum thread, and content.

**Inputs**: None.

**Outputs**

- `news` (list)

**Example output**

```json
{
  "news": [
    {
      "author": "Salted",
      "date": "Thu, 06 Aug 2026",
      "forumThread": "https://forums.wynncraft.com/threads/reworked-news-section.322692/",
      "title": "Reworked News Section"
    }
  ]
}
```

### Get leaderboard

Get a leaderboard's ranked entries. Pick the leaderboard from the dropdown and optionally cap how many entries to return.

**Inputs**

- Leaderboard (`leaderboard_type`, text, required): Which leaderboard to fetch. Pick one, or reference a leaderboard id from a previous step.
- Max entries (`result_limit`, number): How many ranked entries to return. Defaults to 100. At least 1. Default: `100`.

**Outputs**

- `leaderboard` (object)

**Example output**

```json
{
  "leaderboard": {
    "1": {
      "characterType": "shaman",
      "name": "koprr",
      "score": 1290,
      "uuid": "72250a1d-144c-48d8-8223-1209ffcaf82d"
    }
  }
}
```

### Get player profile

Get a player's global profile by username or UUID: rank, guild, global stats, and their characters. Enable the full result for the complete per-character breakdown.

**Inputs**

- Username or UUID (`username`, text, required): The player's username or UUID.
- Full result (`full_result`, true/false): Include the complete profile with every character's detailed data. Off by default for a smaller response. Default: `false`.

**Outputs**

- `player` (object)

**Example output**

```json
{
  "player": {
    "activeCharacter": "92ddbed6-cbab-49ac-bdb0-5385f4ceab91",
    "globalData": {
      "playtime": 1234.5,
      "totalLevel": 468,
      "wars": 2
    },
    "online": false,
    "rank": "Administrator",
    "server": null,
    "username": "Salted",
    "uuid": "1ed075fc-5aa9-42e0-a29f-640326c1d80c"
  }
}
```

### Get total quest count

Get the total number of quests currently in the game.

**Inputs**: None.

**Outputs**

- `questCount` (object)

**Example output**

```json
{
  "questCount": {
    "quests": 303
  }
}
```

### Global search

Search across public resources at once (players, guilds, items, territories, and discoveries), or narrow to a single category.

**Inputs**

- Search text (`query`, text, required): The text to search for.
- Limit to category (`only`, text): Restrict the search to a single result category. Leave blank to search all categories. One of: `players`, `guilds`, `guildsPrefix` (Guilds by prefix), `items`, `territories`, `discoveries`.

**Outputs**

- `results` (object)

**Example output**

```json
{
  "results": {
    "players": {
      "90089c96-df6b-4b23-ba2a-f71ea7e65f6b": {
        "rank": "Player",
        "username": "IDOLL1209"
      }
    },
    "query": "idol"
  }
}
```

### List a player's characters

List a player's characters keyed by character UUID, each with its class type, level, and total level.

**Inputs**

- Username or UUID (`username`, text, required): The player's username or UUID.

**Outputs**

- `characters` (object)

**Example output**

```json
{
  "characters": {
    "92ddbed6-cbab-49ac-bdb0-5385f4ceab91": {
      "level": 120,
      "totalLevel": 142,
      "type": "ARCHER"
    }
  }
}
```

### List class aspects

List all aspects available to a class, with each aspect's rarity and per-tier upgrade descriptions.

**Inputs**

- Class (`class_name`, text, required): The Wynncraft class to look up. One of: `archer`, `warrior`, `assassin`, `mage`, `shaman`.

**Outputs**

- `aspects` (list)

**Example output**

```json
{
  "aspects": [
    {
      "name": "Aspect of a Thousand Hours",
      "rarity": "legendary",
      "requiredClass": "mage"
    }
  ]
}
```

### List classes

List the five playable classes with their display names and overall difficulty.

**Inputs**: None.

**Outputs**

- `classes` (object)

**Example output**

```json
{
  "classes": {
    "archer": {
      "name": "Archer (Hunter)",
      "overallDifficulty": 1
    },
    "mage": {
      "name": "Mage (Dark Wizard)",
      "overallDifficulty": 1
    }
  }
}
```

### List crafting recipes

List crafting-recipe entries, 20 per page. Use the page number to page through the catalog, or enable the full result to return every recipe in one response.

**Inputs**

- Page number (`page`, number): Which page of results to return (starts at 1). At least 1. Default: `1`.
- Full result (`full_result`, true/false): Return every recipe at once instead of one page. This is a large response. Default: `false`.

**Outputs**

- `recipes` (object)

**Example output**

```json
{
  "recipes": {
    "controller": {
      "count": 720,
      "current": 1,
      "pages": 36
    },
    "results": [
      {
        "internalName": "Boots117-119",
        "skill": "tailoring"
      }
    ]
  }
}
```

### List featured videos

List the community videos currently featured by Wynncraft.

**Inputs**: None.

**Outputs**

- `videos` (object)

**Example output**

```json
{
  "videos": {
    "1": "https://youtu.be/3nUs8dFfN7Q",
    "2": "https://youtu.be/5qei6LHdw8w"
  }
}
```

### List gathering nodes

List gathering nodes (mining, fishing, farming, woodcutting) with each node's coordinates, resource type, and level.

**Inputs**: None.

**Outputs**

- `gatheringNodes` (list)

**Example output**

```json
{
  "gatheringNodes": [
    {
      "level": 1,
      "resource": "COPPER",
      "type": "CORNER",
      "x": -1751,
      "y": 59,
      "z": -4420
    }
  ]
}
```

### List guild seasons

List guild season-rating periods keyed by season number, with their start and end dates and reward tiers.

**Inputs**: None.

**Outputs**

- `seasons` (object)

**Example output**

```json
{
  "seasons": {
    "32": {
      "endDate": "2026-09-27T04:01:00Z",
      "srPerWar": 40,
      "startDate": "2026-07-24T23:01:00Z"
    }
  }
}
```

### List guilds

List every guild, keyed by name, each with its UUID and prefix.

**Inputs**

- Player reference (`identifier`, text): How nested player references are keyed in the response: by username or by UUID. Defaults to username. One of: `username`, `uuid`.

**Outputs**

- `guilds` (object)

**Example output**

```json
{
  "guilds": {
    "Avicia": {
      "prefix": "AVO",
      "uuid": "00ccf9d3-6670-4cd7-a447-f7fec684129d"
    }
  }
}
```

### List item sets

List every item set keyed by name, with its member items and the bonuses granted for each number of pieces equipped.

**Inputs**: None.

**Outputs**

- `sets` (object)

**Example output**

```json
{
  "sets": {
    "Petal": {
      "bonuses": {
        "2": {
          "minor": {
            "lifeSteal": 85
          }
        }
      },
      "internalName": "petal"
    }
  }
}
```

### List items

List item-database entries, 20 per page. Use the page number to page through the catalog, or enable the full result to return the entire database in one large response.

**Inputs**

- Page number (`page`, number): Which page of results to return (starts at 1). At least 1. Default: `1`.
- Full result (`full_result`, true/false): Return the entire item database at once instead of one page. This is a very large response. Default: `false`.

**Outputs**

- `items` (object)

**Example output**

```json
{
  "items": {
    "controller": {
      "count": 6701,
      "current": 1,
      "pages": 336
    },
    "results": [
      {
        "displayName": "Alstroemania",
        "type": "weapon"
      }
    ]
  }
}
```

### List leaderboard types

List every leaderboard id that 'Get leaderboard' accepts, such as 'playerContent' or 'guildLevel'.

**Inputs**: None.

**Outputs**

- `leaderboardTypes` (list)

**Example output**

```json
{
  "leaderboardTypes": [
    "guildLevel",
    "playerContent",
    "combatSoloLevel"
  ]
}
```

### List loot pools

List the loot pools of lootrun camps and raids, with each reward's name, type, rarity, and drop chance.

**Inputs**

- Preview level (`level`, number): Player level used to preview loot-pool rewards. Leave blank to skip the preview. At least 1.

**Outputs**

- `lootPools` (list)

**Example output**

```json
{
  "lootPools": [
    {
      "name": "Canyon of the Lost Excursion (South)",
      "rewards": [
        {
          "name": "Guardian",
          "tier": "MYTHIC",
          "type": "ITEM"
        }
      ],
      "type": "CAMP"
    }
  ]
}
```

### List map camps

List lootrun camps with their name, difficulty, level, requirements, and locations. Optionally preview loot for a level.

**Inputs**

- Preview level (`level`, number): Player level used to preview loot-pool rewards. Leave blank to skip the preview. At least 1.

**Outputs**

- `camps` (list)

**Example output**

```json
{
  "camps": [
    {
      "difficulty": "MEDIUM",
      "level": 85,
      "name": "Canyon of the Lost Excursion (South)",
      "type": "CAMP"
    }
  ]
}
```

### List map markers

List the map's points of interest (quests, mini-quests, and more), each with its name, icon, and x/y/z coordinates.

**Inputs**: None.

**Outputs**

- `markers` (list)

**Example output**

```json
{
  "markers": [
    {
      "icon": "Content_Quest.png",
      "name": "Ice Nations",
      "x": "806",
      "y": "59",
      "z": "-3353"
    }
  ]
}
```

### List map raids

List raids with their name, lore, difficulty, level, requirements, and locations. Optionally preview loot for a level.

**Inputs**

- Preview level (`level`, number): Player level used to preview loot-pool rewards. Leave blank to skip the preview. At least 1.

**Outputs**

- `raids` (list)

**Example output**

```json
{
  "raids": [
    {
      "difficulty": "HARD",
      "internalName": "grootslang",
      "level": 54,
      "name": "Nest of the Grootslangs"
    }
  ]
}
```

### List online players

Get the total online player count and the online players mapped to the world they are on. Optionally filter to a single world.

**Inputs**

- Player reference (`identifier`, text): How nested player references are keyed in the response: by username or by UUID. Defaults to username. One of: `username`, `uuid`.
- World (`server`, text): Filter to a specific world, such as 'WC1' or '1'. Leave blank for every world.

**Outputs**

- `onlinePlayers` (object)

**Example output**

```json
{
  "onlinePlayers": {
    "players": {
      "Poofy": "AS21",
      "Salted": "NA1"
    },
    "total": 1191
  }
}
```

### List published articles

List published articles of a type (blog, event, giveaway, poll, or every type), newest first, 10 per page.

**Inputs**

- Article type (`article_type`, text, required): Which kind of published article to list. One of: `blog`, `event`, `giveaway`, `article` (All article types), `poll`.
- Page number (`page`, number): Which page of results to return (starts at 1). At least 1. Default: `1`.

**Outputs**

- `articles` (object)

**Example output**

```json
{
  "articles": {
    "controller": {
      "count": 67,
      "current": 1,
      "pages": 7
    },
    "results": {
      "1": {
        "pk": 116,
        "title": "Wynncraft: Fruma Expansion is OUT!",
        "type": "blog"
      }
    }
  }
}
```

### List territories

List every territory keyed by name, with its controlling guild, acquisition time, location, and resource generation.

**Inputs**: None.

**Outputs**

- `territories` (object)

**Example output**

```json
{
  "territories": {
    "Apprentice Huts": {
      "acquired": "2026-08-12T18:58:20.883000Z",
      "guild": {
        "name": "Aequitas",
        "prefix": "Aeq"
      },
      "location": {
        "end": [
          -670,
          -780
        ],
        "start": [
          -600,
          -610
        ]
      }
    }
  }
}
```

### List world events

List world events with their name, lore, difficulty, level, per-level rewards, and locations.

**Inputs**: None.

**Outputs**

- `worldEvents` (list)

**Example output**

```json
{
  "worldEvents": [
    {
      "difficulty": "MEDIUM",
      "level": 3,
      "name": "Haywire Defender"
    }
  ]
}
```

### Quick item search

Quickly search items by a name fragment and get back the full matching item objects as a list.

**Inputs**

- Name (`query`, text, required): The item name (or fragment) to search for.

**Outputs**

- `items` (list)

**Example output**

```json
{
  "items": [
    {
      "displayName": "Pareidolia",
      "subType": "relik",
      "tier": "legendary",
      "type": "weapon"
    }
  ]
}
```

### Search crafting recipes

Search crafting recipes by name, crafting profession, materials, and level range. Returns 20 matches per page.

**Inputs**

- Recipe name (`query`, text): Match recipe internal names containing this text, such as 'Bow1-3'.
- Crafting profession (`skills`, list): Only include recipes for these crafting professions. One or more of: `alchemism`, `armouring`, `cooking`, `jeweling`, `scribing`, `tailoring`, `weaponsmithing`, `woodworking`.
- Recipe type (`recipe_types`, list): Only include these recipe types, such as 'boots' or 'food'. Add one type per entry.
- Material (`materials`, text): Match recipes using this material item, by name.
- Minimum level (`level_min`, number): Only include recipes at or above this level. At least 0.
- Maximum level (`level_max`, number): Only include recipes at or below this level. At least 0.
- Page number (`page`, number): Which page of results to return (starts at 1). At least 1. Default: `1`.
- Full result (`full_result`, true/false): Return the full recipe objects for each match. Default: `false`.

**Outputs**

- `recipes` (object)

**Example output**

```json
{
  "recipes": {
    "controller": {
      "count": 48,
      "current": 1,
      "pages": 3
    },
    "results": [
      {
        "internalName": "Food117-119",
        "skill": "cooking",
        "type": "food"
      }
    ]
  }
}
```

### Search items

Search the item database by name and filters: item type, rarity tier, attack speed, gathering profession, and level range. Returns 20 matches per page.

**Inputs**

- Name (`query`, text): Match item names containing this text.
- Item type (`item_types`, list): Only include these item types. One or more of: `weapon`, `armour`, `accessory`, `charm`, `tome`, `tool`, `material`, `ingredient`.
- Rarity tier (`tiers`, list): Only include items of these rarity tiers. One or more of: `common`, `normal`, `unique`, `rare`, `legendary`, `fabled`, `mythic`, `set`, `TIER0` (Ingredient tier 0), `TIER1` (Ingredient tier 1), `TIER2` (Ingredient tier 2), `TIER3` (Ingredient tier 3).
- Attack speed (`attack_speeds`, list): Only include weapons with these attack speeds. One or more of: `superSlow` (Super slow), `verySlow` (Very slow), `slow`, `normal`, `fast`, `veryFast` (Very fast), `superFast` (Super fast).
- Gathering profession (`professions`, list): Only include items requiring these gathering professions. One or more of: `mining`, `fishing`, `farming`, `woodcutting`.
- Minimum level (`level_min`, number): Only include items at or above this level. At least 0.
- Maximum level (`level_max`, number): Only include items at or below this level. At least 0.
- Page number (`page`, number): Which page of results to return (starts at 1). At least 1. Default: `1`.
- Full result (`full_result`, true/false): Return the full item objects for each match. Default: `false`.

**Outputs**

- `items` (object)

**Example output**

```json
{
  "items": {
    "controller": {
      "count": 71,
      "current": 1,
      "pages": 4
    },
    "results": [
      {
        "displayName": "Restitution",
        "tier": "mythic",
        "type": "weapon"
      }
    ]
  }
}
```
