Item module
This module manages:
- GET Item database
- GET Item database
- POST Item search
- GET Item quick search
- GET Item metadata
It is located at https://api.wynncraft.com/v3/item
TIP
items uses the API Markup parser for Major IDs.
Item database (Paginated)
GET .../ 1 hour TTL
{
"controller": {
"count": int,
"pages": int,
"previous": None or str,
"current": int,
"next": int,
"links": {
"previous": None or str,
"next": None or str
}
},
"results": {
"Item Name": {
"internalName": str,
"type": str,
"subType": str, # Changes based on type to be {type}Type so for weapons it would be weaponType
"icon": {
"value": dict({
"id": str,
"name": str,
"customModelData": str
}) or str,
"format": str
},
"identifier": bool,
"allow_craftsman": bool,
# Variable keys depending type
"armourMaterial": str, # Armours
"attackSpeed": str, # Weapons
"averageDPS": int, # Weapons
"gatheringSpeed": int, # Tools
"tier": str, # For ingredients and materials
"rarity": str, # For normal items
"consumableOnlyIDs": { # Ingredients
"duration": int,
"charges": int,
},
"ingredientPositionModifiers": { # Ingredients
"left": int,
"right": int,
"above": int,
"under": int,
"touching": int,
"not_touching": int,
},
"itemOnlyIDs": { # Ingredients
"durability_modifier": int,
"strength_requirement": int,
"dexterity_requirement": int,
"intelligence_requirement": int,
"defence_requirement": int,
"agility_requirement": int,
},
"majorIds": {
"majorId": str(description), # Uses API Markup parser
},
"craftable": [ # Materials
str,
# [...]
],
"powderSlots": int,
"lore": str,
"dropRestriction": str,
"restriction": str,
"raidReward": bool,
"dropMeta": {
"coordinates": [
int,
int,
int
],
"name": str,
"type": str
},
"base": {
"baseDamage": {
"min": int,
"max": int,
"raw": int,
},
},
"requirements": {
"level": int,
"levelRange": {
"min": int,
"max": int,
},
"strength": int,
"dexterity": int,
"intelligence": int,
"defence": int,
"agility": int,
"quest": str,
"class_requirement": str,
"skills": [ # For ingredients
str,
# [...]
]
},
"identifications": {
"rawIdentification": int,
"identification": {
"min": int,
"max": int,
"raw": int
},
# [...]
}
},
# [...]
}
}
Request Playground
TIP
Pagination can be bypassed by adding a query parameter: ?fullResult
to your request. Example
Item database
GET .../ 1 hour TTL
{
"Item Name": {
"internalName": str,
"type": str,
"subType": str, # Changes based on type to be {type}Type so for weapons it would be weaponType
"icon": {
"value": dict({
"id": str,
"name": str,
"customModelData": str
}) or str,
"format": str
},
"identifier": bool,
"allow_craftsman": bool,
# Variable keys depending type
"armourMaterial": str, # Armours
"attackSpeed": str, # Weapons
"averageDPS": int, # Weapons
"gatheringSpeed": int, # Tools
"tier": str, # For ingredients and materials
"rarity": str, # For normal items
"consumableOnlyIDs": { # Ingredients
"duration": int,
"charges": int,
},
"ingredientPositionModifiers": { # Ingredients
"left": int,
"right": int,
"above": int,
"under": int,
"touching": int,
"not_touching": int,
},
"itemOnlyIDs": { # Ingredients
"durability_modifier": int,
"strength_requirement": int,
"dexterity_requirement": int,
"intelligence_requirement": int,
"defence_requirement": int,
"agility_requirement": int,
},
"majorIds": {
"majorId": str(description), # Uses API Markup parser
},
"craftable": [ # Materials
str,
# [...]
],
"powderSlots": int,
"lore": str,
"dropRestriction": str,
"restriction": str,
"raidReward": bool,
"dropMeta": {
"coordinates": [
int,
int,
int
],
"name": str,
"type": str
},
"base": {
"baseDamage": {
"min": int,
"max": int,
"raw": int,
},
},
"requirements": {
"level": int,
"levelRange": {
"min": int,
"max": int,
},
"strength": int,
"dexterity": int,
"intelligence": int,
"defence": int,
"agility": int,
"quest": str,
"class_requirement": str,
"skills": [ # For ingredients
str,
# [...]
]
},
"identifications": {
"rawIdentification": int,
"identification": {
"min": int,
"max": int,
"raw": int
},
# [...]
}
},
# [...]
}
Item search
POST .../
{
"query": [str],
"type": [str, list],
"tier": [int, list, str],
"attackSpeed": [str, list],
"levelRange": [int, list],
"professions": [str, list],
"identifications": [str, list],
"majorIds": [str, list],
}
WARNING
Playground is not yet supported for POST requests.
TIP
Pagination can be bypassed by adding a query parameter: ?fullResult
to your request. Only the content of results
will then be returned.
Filters can be empty and don't need to always be in the payload, if you wanna experiment with this endpoint and understand it better, try out the official wynncraft item guide while monitoring your devtools network tab.
Item quick search
GET .../ 1 minute TTL
{
"Item Name": {
"internalName": str,
"type": str,
"subType": str, # Changes based on type to be {type}Type so for weapons it would be weaponType
"icon": {
"value": dict({
"id": str,
"name": str,
"customModelData": str
}) or str,
"format": str
},
"identifier": bool,
"allow_craftsman": bool,
# Variable keys depending type
"armourMaterial": str, # Armours
"attackSpeed": str, # Weapons
"averageDPS": int, # Weapons
"gatheringSpeed": int, # Tools
"tier": str, # For ingredients and materials
"rarity": str, # For normal items
"consumableOnlyIDs": { # Ingredients
"duration": int,
"charges": int,
},
"ingredientPositionModifiers": { # Ingredients
"left": int,
"right": int,
"above": int,
"under": int,
"touching": int,
"not_touching": int,
},
"itemOnlyIDs": { # Ingredients
"durability_modifier": int,
"strength_requirement": int,
"dexterity_requirement": int,
"intelligence_requirement": int,
"defence_requirement": int,
"agility_requirement": int,
},
"majorIds": {
"majorId": str(description), # Uses API Markup parser
},
"craftable": [ # Materials
str,
# [...]
],
"powderSlots": int,
"lore": str,
"dropRestriction": str,
"restriction": str,
"raidReward": bool,
"dropMeta": {
"coordinates": [
int,
int,
int
],
"name": str,
"type": str
},
"base": {
"baseDamage": {
"min": int,
"max": int,
"raw": int,
},
},
"requirements": {
"level": int,
"levelRange": {
"min": int,
"max": int,
},
"strength": int,
"dexterity": int,
"intelligence": int,
"defence": int,
"agility": int,
"quest": str,
"class_requirement": str,
"skills": [ # For ingredients
str,
# [...]
]
},
"identifications": {
"rawIdentification": int,
"identification": {
"min": int,
"max": int,
"raw": int
},
# [...]
}
},
# [...]
}
Request Playground
Item metadata
GET .../ 1 hour TTL
{
"identifications": [
"spellDamage",
# [..]
],
"majorIds": [
"Divine Honor",
# [..]
],
"filters": {
"type": [
"weapons",
# [..]
],
"advanced": { # Subtypes for main filters
"attackSpeed": [
"super_slow",
# [..]
],
"weapons": [
"bow",
# [..]
],
"armour": [
"helmet",
# [..]
],
"accessories": [
"necklace",
# [..]
],
"tomes": [
"weaponTome",
# [..]
],
"tools": [
"axe",
# [...]
],
"crafting": [
"alchemism",
# [...]
],
"gathering": [
"mining",
# [...]
]
},
"tier": {
"items": [
"common",
# [...]
],
"ingredients": [
0,
# [...]
]
},
"levelRange": {
"items": int,
"ingredients": int
}
}
}
Request Playground
TIP
All available filters for advanced search are returned by this endpoint, if you search a precise filter it will be here.