Wynncraft Ingredient Resource
Rate-Limit
The Rate Limit for the Ingredient Resource is 600 requests per 30 minutes per IP.
Get
GET /ingredient/get/{name}
Returns a Ingredient Object, which details public statistical information about the ingredient.
Note: You may receive a 502 error if the ingredient name you use includes a space. Until fixed,
you can replace spaces with an underscore _
to fix this.
Response
{
"kind": "wynncraft/ingredient/get",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [Ingredient Object]
// ...
}
Ingredient Object
Field | Type | Description | Options |
---|---|---|---|
name | String | Ingredient Name | |
displayName | String | (Optional) Display name | |
tier | Number | Ingredient Tier | 0, 1, 2, 3 |
level | Number | Ingredient Level | |
skills | Array | Skills associated with ingredient | |
sprite | Object | Ingredient sprite id and damage | |
identifications | Object | Ingredient Identifications minimum and maximum | List Below |
itemOnlyIDs | Object | Durability modifier and elemental requirements | |
consumable OnlyIDs |
Object | Durations and charges | |
ingredient PositionModifiers |
Object | Position modifier information |
Valid Identifications
The following are all current identifications: AIRDEFENSE
, EARTHDEFENSE
, FIREDEFENSE
, THUNDERDEFENSE
, WATERDEFENSE
, DAMAGEBONUS
, DAMAGEBONUSRAW
, AIRDAMAGEBONUS
, EARTHDAMAGEBONUS
, FIREDAMAGEBONUS
, THUNDERDAMAGEBONUS
, WATERDAMAGEBONUS
, AGILITYPOINTS
, DEFENSEPOINTS
, DEXTERITYPOINTS
, INTELLIGENCEPOINTS
, STRENGTHPOINTS
, POISON
, MANASTEAL
, MANAREGEN
, SPEED
, HEALTHBONUS
, SPELLDAMAGE
, SPELLDAMAGERAW
, ATTACKSPEED
, LIFESTEAL
, HEALTHREGEN
, HEALTHREGENRAW
, REFLECTION
, THORNS
, EXPLODING
, LOOTBONUS
, XPBONUS
, EMERALDSTEALING
, and SOULPOINTS
.
{
//...
"data": [{
"name":"Gold",
"displayName":"Platinum Ingot",
"tier":0,
"level":82,
"skills":["ARMOURING","WEAPONSMITHING"],
"sprite":{
"id":265,
"damage":0
},
"identifications":{
"LOOTBONUS":{
"minimum":3,
"maximum":5
},
"SPEED":{
"minimum":-4,
"maximum":-2
}
},
"itemOnlyIDs":{
"durabilityModifier":-26,
"strengthRequirement":0,
"dexterityRequirement":0,
"intelligenceRequirement":0,
"defenceRequirement":0,
"agilityRequirement":0
},
"consumableOnlyIDs":{
"duration":0,
"charges":0
},
"ingredientPositionModifiers":{
"left":0,
"right":0,
"above":0,
"under":0,
"touching":0,
"notTouching":0
}
}]
}
List
GET /ingredient/list
Returns a list of all ingredient names.
It is recommended to call this route once, and cache the results upon each ingredient update.
Response
{
"kind": "wynncraft/ingredient/list",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [String]
// ...
}
Search
GET /ingredient/search/{query}/{args}
This is the base route for searching for ingredients. Each query has its own structure of how to search. Please read carefully.
Response
{
"kind": "wynncraft/ingredient/search",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [Ingredient Object]
// ...
}
Search Queries
Query Name | Query Complexity |
---|---|
name | Simple |
tier | Simple |
level | Simple |
skills | Moderate |
sprite | Complex |
identifications | Complex |
itemOnlyIDs | Complex |
consumableOnlyIDs | Complex |
Simple Queries
Simple queries perform simple pattern matching and display results. There is no conditionality.
Name Query
GET /ingredient/search/name/{name}
Will return a list of Ingredient Object whose name includes the pattern name
.
Complexity: Simple
Requirements: None
{
"kind": "wynncraft/ingredient/search/name/An",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Ancient Coins",
//...
}, {
"name": "Anomaly",
// ...
}, ...]
}
Tier Query
GET /ingredient/search/tier/{tier}
Will return a list of Ingredient Object whose tier is tier
.
Complexity: Simple
Requirements:
- Must be a Number between
0-3
.
{
"kind": "wynncraft/ingredient/search/tier/0",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Acid Magma",
//...
}, {
"name": "Ancient Metal",
// ...
}, ...]
}
Level Query
GET /ingredient/search/level/{level}
Will return a list of Ingredient Object whose level is level
.
Complexity: Simple
Requirements:
- Must be a positive Integer.
{
"kind": "wynncraft/ingredient/search/level/1",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Brown Mushroom",
//...
}, {
"name": "Coastal Sand",
// ...
}, ...]
}
Moderate Queries
Moderate queries introduce conditionality for more advanced searches.
Symbols
Moderate and complex queries use the notion of "symbols" for expression. Each symbol has its own meaning,
and it manipulates the list succeeding it accordingly. At this time, there is no ability to combine symbols
that behave similarly to &&
and ||
in many popular programming languages.
Symbol | Meaning |
---|---|
& | Requires inclusion of all items in succeeding list. Acts like and in programming. |
^ | Requires inclusion of at least one item in succeeding list. Acts like or in programming. |
Skills Query
GET /ingredient/search/skills/{symbol}{skill(s)}
Will return a list of Ingredient Object.
Complexity: Moderate
Requirements:
symbol
must be valid and supported symbol.skill(s)
must be either a single valid skill, or a list of valid skills separated by,
.- Skills are case insensitive
{
"kind": "wynncraft/ingredient/search/skills/&tailoring,armouring",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Accursed Effigy",
//...
}, {
"name": "Ancient Metal",
// ...
}, ...]
}
Complex Queries
Complex queries combine conditionality and Object field searches.
Triangular Bracket Notation
Complex queries use <>
notation to do advanced searches that include specifying Object fields.
Sprite Query
GET /ingredient/search/sprite/{symbol}{props}
Will return a list of Ingredient Object. This query searches for ingredients
whose properties (or props
) of the sprite field are the specified value.
Complexity: Complex
Requirements:
symbol
must be valid and supported symbol.props
must either be one or a list of the properties described below:
Property | Notation |
---|---|
id | id<Number> |
damage | damage<Number> |
{
"kind": "wynncraft/ingredient/search/sprite/&damage<0>,id<449>",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Accursed Effigy",
//...
"sprite": {
"id": 449,
"damage": 0
}
}, {
"name": "Lost Talisman",
// ...
"sprite": {
"id": 449,
"damage": 0
}
}, ...]
}
Identifications Query
GET /ingredient/search/identifications/{symbol}{props}
Will return a list of Ingredient Object. This query searches for ingredients
whose properties (or props
) of the identifications field are the specified value.
Complexity: Complex
Requirements:
symbol
must be valid and supported symbol.props
must either be one or a list of the following property notation:
{identificationName}<{minimumVal};{maximumVal}>
identificationName
is case insensitive and must be a valid identification name. Whitespace is not ignored.minimumVal
must either be a Number or empty. If a Number, theminimum
for such identification must have that value. If empty, theminimum
for such identification can be anything.maximumVal
must either be a Number or empty. If a Number, themaximum
for such identification must have that value. If empty, themaximum
for such identification can be anything.
{
"kind": "wynncraft/ingredient/search/identifications/&lootbonus<;>,xpbonus<;6>",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Ancient Coins",
//...
"identifications":{
"SPEED":{
"minimum":-8,
"maximum":-7
},
"LOOTBONUS":{
"minimum":4,
"maximum":6
},
"XPBONUS":{
"minimum":4,
"maximum":6
}
}
}, ...]
}
ItemOnlyIDs Query
GET /ingredient/search/itemOnlyIDs/{symbol}{props}
Will return a list of Ingredient Object. This query searches for ingredients
whose properties (or props
) of the identifications field are the specified value.
Complexity: Complex
Requirements:
symbol
must be valid and supported symbol.props
must either be one or a list of the properties described below:
Property | Notation |
---|---|
durability | durability<Number> |
strength | strength<Number> |
dexterity | dexterity<Number> |
intelligence | intelligence<Number> |
defence | defence<Number> |
agility | agility<Number> |
{
"kind": "wynncraft/ingredient/search/itemOnlyIDs/^durability<-280>,strength<20>",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Broken Helmet",
//...
"itemOnlyIDs":{
"durabilityModifier":-28,
"strengthRequirement":20,
"dexterityRequirement":0,
"intelligenceRequirement":0,
"defenceRequirement":0,
"agilityRequirement":0
}
}, ...]
}
ConsumableOnlyIDs Query
GET /ingredient/search/consumableOnlyIDs/{symbol}{props}
Will return a list of Ingredient Object. This query searches for ingredients
whose properties (or props
) of the identifications field are the specified value.
Complexity: Complex
Requirements:
symbol
must be valid and supported symbol.props
must either be one or a list of the properties described below:
Property | Notation |
---|---|
duration | duration<Number> |
charges | charges<Number> |
{
"kind": "wynncraft/ingredient/search/consumableOnlyIDs/&duration<0>",
"code": Number,
"message": String,
"timestamp": Number,
"version": String,
"data": [{
"name": "Broken Helmet",
//...
"consumableOnlyIDs":{
"duration":0,
"charges":0
}
}, ...]
}