Introduction
Welcome to the API documentation for https://wilds.mhdb.io.
Questions, comments, concerns, complaints? Join us on Discord!
Accessing the API
The API can be accessed using the base URL https://wilds.mhdb.io/{locale}
, where {locale}
is an
ISO 639-1 language code. For example, to access the API in English, you would
use the base URL https://wilds.mhdb.io/en
.
Note that only the values of certain text fields are localized, not the field names themselves. Additionally, certain enumerated values (such as weapon type) are not localized.
Some fields may not have localized values for every language. If a field has not been localized for your specified
language, the value will be null
instead.
Since we are now exclusively using data from the game files, all languages supported by Wilds should be translated in the API. If you find something that isn't, please let us know!
Controlling Response Fields
All endpoints support a p
query parameter that can be used to control which fields are included in the response
from the API. Read the Projecting Results section for more information.
Filtering Objects in the Response
All list endpoints support a q
query parameter that can be used to filter items in the response from the API. A
"list endpoint" is usually a GET
request to the top-level path hierarchy, e.g. GET /items
, but endpoints that
support filtering will indicate that they fall into this category. Read the Searching the API
section for more information.
Such endpoints also support two additional query parameters, limit
and offset
, which can be used to paginate
results from the API. The limit
parameter indicates that maximum number of elements that should be included in the
response, and offset
is a zero-based index to begin including results from. For example:
GET https://wilds.mhdb.io/en/items?limit=10&offset=0
This would return 10 Items from the API, beginning at the first element. To move to the second page, you can
simply increase offset
by the number of elements in each page, like so:
GET https://wilds.mhdb.io/en/items?limit=10&offset=10
Caching
All GET
requests to the API are cached by Cloudflare, and will include relevant cache headers. This means that while
some requests may be slow for large responses when they are first requested (such as retrieving
all armor pieces), subsequent requests to the endpoint will be very fast.
Additionally, you can optimize your application further by implementing local caching. Simply include the
If-Modified-Since
HTTP header; the
server will respond with a 304 Not Modified
response if your locally cached data is up-to-date.
Reading this document
All example URLs use the en
locale (e.g. "https://wilds.mhdb.io/en/items"), but your application can use any valid language code.
Some examples have their properties truncated to save space. Any time you see "[...]", this indicates that the example has been truncated, but there would normally be much more data present in the response.
Ailments
Properties
Property | Type | Description |
---|---|---|
id | Integer | The ID of the ailment |
name | String | The name of the ailment |
recovery | Recovery | An object describing methods to remove the ailment |
protection | Protection | An object describing the methods to mitigate or prevent the ailment |
Recovery
Property | Type | Description |
---|---|---|
actions | Array |
An array of actions, such as "dodge" or "roll", that will remove the ailment |
items | Array<Item> | An arry of items that can remove the ailment |
Protection
Property | Type | Description |
---|---|---|
items | Array<Item> | An array of items that can mitigate or prevent the ailment |
skills | Array<Skill> | An array of skills that can mitigate or prevent the ailment |
List all ailments
curl "https://wilds.mhdb.io/en/ailments"
Returns an array of Ailment objects.
[
{
"id": 1,
"name": "Blastblight",
"description": "Blastblight will cause a [...]",
"recovery": {
"actions": [
"dodge"
],
"items": []
},
"protection": {
"items": [],
"skills": [
{
"id": 6,
"name": "Blast Resistance",
"description": "Grants protection against blastblight."
}
]
}
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/ailments
Retrieve an ailment
curl "https://wilds.mhdb.io/en/ailments/1"
Returns a single Ailment object.
{
"id": 1,
"name": "Blastblight",
"description": "Blastblight will cause a [...]",
"recovery": {
"actions": [
"dodge"
],
"items": []
},
"protection": {
"items": [],
"skills": [
{
"id": 6,
"name": "Blast Resistance",
"description": "Grants protection against blastblight."
}
]
}
}
This endpoint retrieves a single ailment by its ID.
HTTP Request
GET https://wilds.mhdb.io/en/ailments/<id>
Parameter | Type | Description |
---|---|---|
id | Integer | The ailment's ID |
Armor
Properties
Property | Type | Description |
---|---|---|
id | Integer | The armor's ID |
name | String | The armor's name |
description | String | The armor's description |
kind | Enum<ArmorKind> | The slot the armor is worn in |
rank | Enum<Rank> | The armor's hunter rank group |
rarity | Integer | The armor's rarity value |
defense | ArmorDefense | The armor's defense values at certain breakpoints |
resistances | ArmorResistances | The armor's elemental resistances |
slots | Array<Integer> | The decoration slots supported by the armor; the position in the array indicates which slot is being defined (i.e. the first element is the first slot), and the value is the maximum level of allowed decoration |
skills | Array<SkillRank> | An array of SkillRank s granted by the armor |
armorSet | ArmorSet | The set that the armor belongs to, if any |
crafting | ArmorCrafting | Crafting information for the armor |
ArmorKind
An enumerated value, one of:
head | chest | arms |
waist | legs |
ArmorDefense
Property | Type | Description |
---|---|---|
base | Integer | The armor's base defense value |
max | Integer | The armor's maximum, un-augmented defense value |
ArmorResistances
Property | Type | Description |
---|---|---|
fire | Integer | Fire resistance |
water | Integer | Water resistance |
ice | Integer | Ice resistance |
thunder | Integer | Thunder resistance |
dragon | Integer | Dragon resistance |
ArmorCrafting
Property | Type | Description |
---|---|---|
id | Integer | The crafting data ID |
zennyCost | Integer | The amount of zenny it costs to craft the armor |
materials | Array<CraftingCost> | An array of materials used to craft the armor |
List all armor
curl "https://wilds.mhdb.io/en/armor"
Returns an array of Armor objects.
[
{
"kind": "head",
"name": "Conga Helm α",
"description": "Head armor made from Congalala materials. Remember: it's \"feral,\" not \"unkempt.\"",
"rank": "high",
"rarity": 5,
"resistances": {
"fire": -3,
"water": 1,
"ice": -1,
"thunder": 1,
"dragon": 2
},
"defense": {
"base": 36,
"max": 60
},
"skills": [
{
"skill": {
"id": 104,
"gameId": 850626240,
"name": "Free Meal"
},
"level": 1,
"description": "Activates 10% of the time.",
"id": 267
},
[...]
],
"slots": [
1
],
"armorSet": {
"id": 1,
"name": "Conga α"
},
"crafting": {
"armor": {
"id": 1
},
"materials": [
{
"item": {
"id": 464,
"gameId": 509,
"rarity": 6,
"name": "Congalala Pelt+",
"description": "High-quality Congalala fur. Stout and resilient, an important crafting material once processed.",
"value": 930,
"carryLimit": 99,
"recipes": []
},
"quantity": 2,
"id": 1
},
[...]
],
"zennyCost": 3000,
"id": 1
},
"id": 1
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/armor
Retrieve an armor
curl "https://wilds.mhdb.io/en/armor/1"
Returns a single Armor object.
{
"kind": "head",
"name": "Conga Helm α",
"description": "Head armor made from Congalala materials. Remember: it's \"feral,\" not \"unkempt.\"",
"rank": "high",
"rarity": 5,
"resistances": {
"fire": -3,
"water": 1,
"ice": -1,
"thunder": 1,
"dragon": 2
},
"defense": {
"base": 36,
"max": 60
},
"skills": [
{
"skill": {
"id": 104,
"gameId": 850626240,
"name": "Free Meal"
},
"level": 1,
"description": "Activates 10% of the time.",
"id": 267
},
[...]
],
"slots": [
1
],
"armorSet": {
"id": 1,
"name": "Conga α"
},
"crafting": {
"armor": {
"id": 1
},
"materials": [
{
"item": {
"id": 464,
"gameId": 509,
"rarity": 6,
"name": "Congalala Pelt+",
"description": "High-quality Congalala fur. Stout and resilient, an important crafting material once processed.",
"value": 930,
"carryLimit": 99,
"recipes": []
},
"quantity": 2,
"id": 1
},
[...]
],
"zennyCost": 3000,
"id": 1
},
"id": 1
}
This endpoint retrieves a single armor object by its ID.
HTTP Request
GET https://wilds.mhdb.io/en/armor/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The armor's ID |
Armor Sets
Properties
Property | Type | Description |
---|---|---|
id | Integer | The armor set's ID |
gameId | GameId | The armor set's ID from the game files |
name | String | The armor set's name |
pieces | Array<Armor> | An array of armor pieces belonging to the armor set |
bonus | ArmorSetBonus | The skill granted by the set when a certain number of pieces from the same set are worn |
groupBonus | ArmorSetBonus | The skill granted by the set when a certain number of pieces from the same group are worn |
ArmorSetBonus
Property | Type | Description |
---|---|---|
id | Integer | The bonus's ID |
skill | Skill | The skill granted by the bonus |
ranks | Array<ArmorSetBonusRank> | The different ranks of the bonus |
ArmorSetBonusRank
Property | Type | Description |
---|---|---|
id | Integer | The rank's ID |
pieces | Integer | The number of armor pieces from the set that must be worn to activate the bonus |
skill | SkillRank | The skill granted by this rank of the bonus |
List all armor sets
curl "https://wilds.mhdb.io/en/armor/sets"
Returns an array of ArmorSet objects.
[
{
"name": "Conga α",
"pieces": [...],
"bonus": null,
"groupBonus": {
"id": 1,
"skill": {
"id": 142,
"name": "Fortifying Pelt"
},
"ranks": [
{
"bonus": {
"id": 1
},
"pieces": 3,
"skill": {
"id": 381,
"skill": {
"id": 142
},
"level": 1,
"description": "Increases attack and defense after fainting during a quest. (Can be used twice.)"
},
"id": 1
}
]
},
"id": 1,
"gameId": -2117203456
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/armor/sets
Retrieve an armor set
curl "https://wilds.mhdb.io/en/armor/sets/1"
Returns a single ArmorSet object.
{
"name": "Conga α",
"pieces": [...],
"bonus": null,
"groupBonus": {
"id": 1,
"skill": {
"id": 142,
"name": "Fortifying Pelt"
},
"ranks": [
{
"bonus": {
"id": 1
},
"pieces": 3,
"skill": {
"id": 381,
"skill": {
"id": 142
},
"level": 1,
"description": "Increases attack and defense after fainting during a quest. (Can be used twice.)"
},
"id": 1
}
]
},
"id": 1,
"gameId": -2117203456
}
This endpoint retrieves a single armor set by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/armor/sets/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The armor set's ID |
Charms
Properties
Property | Type | Description |
---|---|---|
id | Integer | The charm's ID |
gameId | GameId | The ID used in the game files to identify the charm |
ranks | Array<CharmRank> | An array levels the charm can be obtained at |
CharmRank
Property | Type | Description |
---|---|---|
id | Integer | The ID of the charm rank |
name | String | The rank's name |
description | String | The rank's description |
level | Integer | The level of the rank |
rarity | Integer | The rank's rarity |
skills | Array<SkillRank> | An array of skills that are granted by this charm |
crafting | CharmRankCrafting | Crafting info for this charm |
CharmRankCrafting
Property | Type | Description |
---|---|---|
craftable | Boolean | Indicates if the rank can be crafted directly; false indicates that the rank must be upgraded from the previous |
zennyCost | Integer | The amount of zenny the crafting operation costs |
materials | Array<CraftingCost> | An array of materials used to craft the charm |
List all charms
curl "https://wilds.mhdb.io/en/charms"
Returns an array of Charm objects.
[
{
"id": 1,
"gameId": -2084662144,
"ranks": [
{
"charm": {
"id": 1
},
"name": "Windproof Charm I",
"description": "A charm that grants the Windproof skill.",
"level": 1,
"rarity": 4,
"skills": [
{
"skill": {
"id": 34,
"name": "Windproof"
},
"level": 1,
"description": "Negates minor wind pressure and halves the effects of major wind pressure.",
"id": 77
}
],
"crafting": {
"charmRank": {
"id": 1
},
"craftable": true,
"materials": [
{
"item": {
"id": 53,
"gameId": 55,
"rarity": 4,
"name": "Dragonite Ore",
"description": "Ore sourced from mining outcrops. A rare material coveted for its durability in armor crafting.",
"value": 480,
"carryLimit": 10,
"recipes": []
},
"quantity": 2,
"id": 1656
},
[...]
],
"zennyCost": 1500,
"id": 1
},
"id": 1
},
[...]
]
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/charms
Retrieve a charm
curl "https://wilds.mhdb.io/en/charms/1"
Returns a single Charm object.
{
"id": 1,
"gameId": -2084662144,
"ranks": [
{
"charm": {
"id": 1
},
"name": "Windproof Charm I",
"description": "A charm that grants the Windproof skill.",
"level": 1,
"rarity": 4,
"skills": [
{
"skill": {
"id": 34,
"name": "Windproof"
},
"level": 1,
"description": "Negates minor wind pressure and halves the effects of major wind pressure.",
"id": 77
}
],
"crafting": {
"charmRank": {
"id": 1
},
"craftable": true,
"materials": [
{
"item": {
"id": 53,
"gameId": 55,
"rarity": 4,
"name": "Dragonite Ore",
"description": "Ore sourced from mining outcrops. A rare material coveted for its durability in armor crafting.",
"value": 480,
"carryLimit": 10,
"recipes": []
},
"quantity": 2,
"id": 1656
},
[...]
],
"zennyCost": 1500,
"id": 1
},
"id": 1
},
[...]
]
}
This endpoint retrieves a charm by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/charms/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The charm's ID |
Decorations
Properties
Property | Type | Description |
---|---|---|
id | Integer | the decoration's ID |
gameId | GameId | The decoration's ID from the game files |
name | String | The decoration's name |
description | String | The decoration's description |
slot | Integer | The minimum level of the slot the decoration can be placed in |
rarity | Integer | The decoration's rarity |
kind | DecorationKind | What equipment group the decoration is allowed to be used on |
skills | Array<SkillRank> | The skills granted by this decoration |
List all decorations
curl "https://wilds.mhdb.io/en/decorations"
Returns an array of Decoration objects.
[
{
"name": "Venom Jewel [1]",
"description": "A decoration that grants the Poison Attack skill.",
"value": 150,
"slot": 1,
"rarity": 3,
"kind": "weapon",
"skills": [
{
"skill": {
"id": 12,
"name": "Poison Attack"
},
"level": 1,
"description": "Poison buildup +5% Bonus: +10",
"id": 25
}
],
"id": 1,
"gameId": -2144349312
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/decorations
Retrieve a decoration
curl "https://wilds.mhdb.io/en/decorations/1"
Returns a single Decoration object.
{
"name": "Venom Jewel [1]",
"description": "A decoration that grants the Poison Attack skill.",
"value": 150,
"slot": 1,
"rarity": 3,
"kind": "weapon",
"skills": [
{
"skill": {
"id": 12,
"name": "Poison Attack"
},
"level": 1,
"description": "Poison buildup +5% Bonus: +10",
"id": 25
}
],
"id": 1,
"gameId": -2144349312
}
Retrieves a decoration by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/decorations/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The decoration's ID |
Items
Properties
Property | Type | Description |
---|---|---|
id | Integer | The item's ID |
gameId | GameId | The ID used by the game files to identify the item |
name | String | The item's name |
description | String | The item's description |
rarity | Integer | The item's rarity |
carryLimit | Integer | The maximum number of the item that can be carried at once |
value | Integer | The value of the item when sold to a vendor |
recipes | Array<ItemRecipe> | An array of crafting recipes that produce the item |
ItemRecipe
Property | Type | Description |
---|---|---|
id | Integer | The ID of the recipe |
amount | Integer | The number of items produced by the recipe |
inputs | Array<Item> | An array of items consumed by the recipe |
List all items
curl "https://wilds.mhdb.io/en/items"
Returns an array of Item objects.
[
{
"rarity": 1,
"name": "Potion",
"description": "Restores a small amount of health.",
"value": 8,
"carryLimit": 10,
"recipes": [
{
"output": {
"id": 1
},
"amount": 1,
"inputs": [
{
"name": "Herb",
"id": 24
}
],
"id": 1
}
],
"id": 1,
"gameId": 2
}
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/items
Retrieve an item
curl "https://wilds.mhdb.io/en/items/1"
Returns a single Item object.
{
"rarity": 1,
"name": "Potion",
"description": "Restores a small amount of health.",
"value": 8,
"carryLimit": 10,
"recipes": [
{
"output": {
"id": 1
},
"amount": 1,
"inputs": [
{
"name": "Herb",
"id": 24
}
],
"id": 1
}
],
"id": 1,
"gameId": 2
}
This endpoint retrieves an item by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/items/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The item's ID |
Locations
Properties
Property | Type | Description |
---|---|---|
id | Integer | The location's ID |
name | String | The location's name |
zoneCount | Integer | The number of zones in the location |
camps | Array<Camp> | An array of camps in the location |
Camp
Property | Type | Description |
---|---|---|
id | Integer | The camp's ID |
name | String | The camp's name |
zone | Integer | Which zone the camp is located in |
List all locations
curl "https://wilds.mhdb.io/en/locations"
Returns an array of Location objects.
[
{
"id": 1,
"zoneCount": 17,
"name": "Ancient Forest",
"camps": [
{
"id": 26,
"zone": 1,
"name": "Southwest Camp"
},
[...]
]
}
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/locations
Retrieve a location
curl "https://wilds.mhdb.io/en/locations/1"
Returns a single Location object.
{
"id": 1,
"zoneCount": 17,
"name": "Ancient Forest",
"camps": [
{
"id": 26,
"zone": 1,
"name": "Southwest Camp"
},
[...]
]
}
HTTP Request
GET https://wilds.mhdb.io/{locale}/locations/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The location's ID |
Monsters
Properties
Property | Type | Description |
---|---|---|
id | Integer | The monster's ID |
kind | Enum<MonsterKind> | The monster's category |
species | Enum<Species> | The monster's species |
name | String | The monster's name |
description | String | The monster's description |
locations | Array<Location> | The locations in which the monster can be found |
ailments | Array<Ailment> | Which ailments the monster can inflict |
elements | Array<Element> | An array of elemental damage types the monster can inflict |
resistances | Array<MonsterResistance> | The monster's elemental and status resistances |
weaknesses | Array<MonsterWeakness> | The monster's elemental and status weaknesses |
rewards | Array<MonsterReward> | Items can be obtained from fighting the monster |
MonsterKind
An enumerated value, one of:
small | large |
Species
An enumerated value, one of:
bird wyvern | brute wyvern | elder dragon | fanged wyvern |
fish | flying wyvern | herbivore | lynian |
neopteron | piscine wyvern | relict | wingdrake |
fanged beast |
MonsterResistance
A union type, identified by the kind
field.
Property | Type | Description |
---|---|---|
id | Integer | The resistance's ID |
condition | String | The condition or status of the monster during which this resistance is active; a null value indicates the resistance is always active |
kind | Discriminant<ResistanceKind> | The discriminant for the tagged union |
ResistanceKind
The discriminant for the MonsterResistance tagged union.
Value | Subtype |
---|---|
element | ElementResistance |
status | StatusResistance |
ElementResistance
Property | Type | Description |
---|---|---|
element | Element | The element the monster is resistant to |
StatusResistance
Property | Type | Description |
---|---|---|
status | Status | The status the monster is resistant to |
MonsterWeakness
A union type, identified by the kind
field.
Property | Type | Description |
---|---|---|
id | Integer | The weakness's ID |
level | Integer | How powerful the weakness is; higher values indicate a more severe weakness |
condition | String | The condition or status of the monster during which this weakness applies; a null value indicates that the weakness is always active |
kind | Discriminant<WeaknessKind> | The discriminant for the tagged union |
WeaknessKind
The discriminant for the MonsterWeakness tagged union.
Value | Subtype |
---|---|
element | ElementWeakness |
status | StatusWeakness |
ElementWeakness
Property | Type | Description |
---|---|---|
element | Element | The element the monster is weak to |
StatusWeakness
Property | Type | Description |
---|---|---|
status | Status | The status the monster is weak to |
MonsterReward
Property | Type | Description |
---|---|---|
item | Item | The item given by the reward |
conditions | Array<RewardCondition> | An array of conditions required for the reward to be granted |
RewardCondition
Property | Type | Description |
---|---|---|
kind | RewardConditionKind | The type of reward this is (such as a carve, wound, etc.) |
rank | Rank | The hunter rank group for the reward |
quantity | Integer | The base amount of the item that can be given by the reward |
chance | Percent | How likely it is that the reward will be given |
subtype | String | A description of additional conditions or situations for the reward. For example, for the "wound" condition, the subtype might describe which part of the monster must be wounded for this reward |
RewardConditionKind
An enumerated value, one of:
carve | investigation | mining | palico |
reward | shiny | track | wound |
List all monsters
curl "https://wilds.mhdb.io/en/monsters"
Returns an array of Monster objects.
[
{
"id": 20,
"kind": "large",
"species": "brute wyvern",
"elements": [],
"name": "Barroth",
"description": "Barroth seek out [...]",
"ailments": [...],
"locations": [...],
"resistances": [
{
"kind": "element",
"element": "fire",
"condition": "covered in mud"
},
{
"kind": "element",
"element": "water",
"condition": null
},
[...]
],
"weaknesses": [
{
"kind": "element",
"element": "fire",
"level": 3,
"condition": null
},
{
"kind": "element",
"element": "water",
"level": 3,
"condition": "covered in mud"
},
[...]
],
"rewards": [
{
"id": 22,
"item": {
"id": 148,
"rarity": 4,
"carryLimit": 99,
"value": 300,
"name": "Monster Bone M",
"description": "Bone obtained from [...]"
},
"conditions": [
{
"kind": "reward",
"rank": "low",
"quantity": 1,
"chance": 13,
"subtype": null
}
]
},
[...]
]
}
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/monsters
Retrieve a monster
curl "https://wilds.mhdb.io/en/monsters/20"
Returns a single Monster object.
{
"id": 20,
"kind": "large",
"species": "brute wyvern",
"elements": [],
"name": "Barroth",
"description": "Barroth seek out [...]",
"ailments": [...],
"locations": [...],
"resistances": [
{
"kind": "element",
"element": "fire",
"condition": "covered in mud"
},
{
"kind": "element",
"element": "water",
"condition": null
},
[...]
],
"weaknesses": [
{
"kind": "element",
"element": "fire",
"level": 3,
"condition": null
},
{
"kind": "element",
"element": "water",
"level": 3,
"condition": "covered in mud"
},
[...]
],
"rewards": [
{
"id": 22,
"item": {
"id": 148,
"rarity": 4,
"carryLimit": 99,
"value": 300,
"name": "Monster Bone M",
"description": "Bone obtained from [...]"
},
"conditions": [
{
"kind": "reward",
"rank": "low",
"quantity": 1,
"chance": 13,
"subtype": null
}
]
},
[...]
]
}
This endpoint retrieves a monster by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/monsters/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The monster's ID |
Motion Values
Properties
Property | Type | Description |
---|---|---|
id | Integer | The motion value's ID |
name | String | The motion value's name |
weapon | WeaponKind | The type of weapon this motion value applies to |
damage | DamageKind | The type of damage dealt by the attack |
stun | Percent | The amount of stun damage dealt by the attack |
exhaust | Percent | The amount of exhaust damage dealt by the attack |
hits | Array<Percent> | An array indicating the number of times the attack hits, and what percentage of weapon damage is dealt by each hit |
List all motion values
curl "https://wilds.mhdb.io/en/motion-values"
Returns an array of MotionValue objects.
[
{
"id": 119,
"weapon": "hammer",
"damage": "blunt",
"stun": null,
"exhaust": 40,
"hits": [
15,
76
],
"name": "Charged Big Bang"
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/motion-values
List all motion values by weapon
curl -G "https://wilds.mhdb.io/en/motion-values" --data-urlencode 'q={"weapon": "hammer"}'
Returns a list of MotionValue objects for the Hammer.
[
{
"id": 119,
"weapon": "hammer",
"damage": "blunt",
"stun": null,
"exhaust": 40,
"hits": [
15,
76
],
"name": "Charged Big Bang"
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/motion-values?q={"weapon": "{type}"}
Parameter | Type | Description |
---|---|---|
type | WeaponKind | The type of weapon to search for |
Retrieve a motion value
curl "https://wilds.mhdb.io/en/motion-values/119
Returns a single MotionValue object.
{
"id": 119,
"weapon": "hammer",
"damage": "blunt",
"stun": null,
"exhaust": 40,
"hits": [
15,
76
],
"name": "Charged Big Bang"
}
HTTP Request
GET https://wilds.mhdb.io/{locale}/motion-values/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The motion value's ID |
Skills
Properties
Property | Type | Description |
---|---|---|
id | Integer | The skill's ID |
name | String | The skill's name |
description | String | The skill's description |
ranks | Array<SkillRank> | An array of possible levels for the skill |
kind | SkillKind | Where a skill can be found |
SkillKind
An enumerated value, one of the following:
Value | Description |
---|---|
armor | Skill can be found on armor |
weapon | Skill can be found on weapons |
set | Skill can be found in armor set bonuses |
group | Skill can be found in armor group bonuses |
SkillRank
Property | Type | Description |
---|---|---|
id | Integer | The skill rank's ID |
description | String | The rank's description |
level | Integer | The skill level of the rank |
List all skills
curl "https://wilds.mhdb.io/en/skills"
Returns an array of Skill objects.
[
{
"id": 1,
"name": "Poison Resistance",
"description": "Reduces damage while poisoned.",
"ranks": [
{
"id": 1,
"skill": {
"id": 1
},
"level": 1,
"description": "Reduces the number of times you take poison damage.",
},
[...]
]
}
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/skills
Retrieve a skill
curl "https://wilds.mhdb.io/en/skills/1"
Returns a single Skill object.
{
"id": 1,
"name": "Poison Resistance",
"description": "Reduces damage while poisoned.",
"ranks": [
{
"id": 1,
"skill": {
"id": 1
},
"level": 1,
"description": "Reduces the number of times you take poison damage.",
},
[...]
]
}
HTTP Request
GET https://wilds.mhdb.io/{locale}/skills/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The skill's ID |
Weapons
Properties
{
"gameId": 26,
"crafting": {
"weapon": {
"id": 100
},
"craftable": false,
"previous": {
"name": "Uth Valeroje II",
"id": 99
},
"branches": [
{
"name": "Valeroje-of-the-Waves",
"id": 101
}
],
"craftingMaterials": [],
"craftingZennyCost": 0,
"upgradeMaterials": [
{
"item": {
"id": 291,
"gameId": 327,
"rarity": 5,
"name": "Uth Duna Plate",
"description": "A rare plate from an [...]",
"value": 3600,
"carryLimit": 99,
"recipes": []
},
"quantity": 1,
"id": 2580
},
[...]
],
"upgradeZennyCost": 14000,
"id": 100
},
"rarity": 7,
"kind": "charge-blade",
"damage": {
"raw": 220,
"display": 792
},
"specials": [
{
"element": "water",
"kind": "element",
"damage": {
"raw": 32,
"display": 320
},
"hidden": false,
"id": 50
}
],
"name": "Uth Valeroje III",
"description": "An Uth Duna charge blade. A lovely [...]",
"defenseBonus": 0,
"elderseal": null,
"slots": [
3,
2
],
"affinity": -15,
"skills": [
{
"skill": {
"id": 97,
"name": "Power Prolonger",
"description": "Allows long swords, dual [...]"
},
"level": 3,
"description": "Greatly boosts the duration weapons are powered up.",
"id": 251
}
],
"id": 100,
}
An example
Weapon
object. Some fields have been truncated or removed to show only fields present on all weapons.
A union type, identified by the kind
field.
Property | Type | Description |
---|---|---|
id | Integer | The weapon's ID |
gameId | GameId | The ID used by the game files to identify the weapon; unique only for weapons with the same kind |
kind | Discriminant<WeaponKind> | The discriminant for the tagged union |
name | String | The weapon's name |
rarity | Integer | The weapon's rarity |
damage | WeaponDamage | An object describing the damage the weapon deals |
specials | Array<WeaponSpecial> | An array of objects describing element or status damage dealt by the weapon |
sharpness | Sharpness | The base sharpness of the weapon; not present on bows or bowguns |
handicraft | Array<Integer> | An array of breakpoints for the Handicraft skill; see Handicraft for more information (not present on bows or bowguns) |
skills | Array<SkillRanks> | An array of skills granted by the weapon |
defenseBonus | Integer | Additional defense granted by the weapon |
elderseal | Elderseal | The elderseal strength of the weapon; null indicates the weapon does not apply elderseal |
affinity | Percent | The base affinity of the weapon; can be negative |
slots | Array<DecorationSlot> | An array of decoration slots on the weapon |
crafting | WeaponCrafting | Crafting information for the weapon |
WeaponDamage
Property | Type | Description |
---|---|---|
raw | Integer | The raw (true) damage value |
display | Integer | The damage value displayed in-game |
WeaponSpecial
A union type, identified by the kind
field.
Property | Type | Description |
---|---|---|
id | Integer | The ID |
damage | WeaponDamage | An object describing the damage dealt by the special attribute |
hidden | Boolean | Indicates that this special must be activated by the Free Element/Ammo Up skill |
kind | Discriminant<SpecialKind> | The discriminant for the tagged union |
SpecialKind
The discriminant for the WeaponSpecial tagged union.
Value | Subtype |
---|---|
element | WeaponElement |
status | WeaponStatus |
WeaponElement
Property | Type | Description |
---|---|---|
element | Element | The element dealt by the special attribute |
WeaponStatus
Property | Type | Description |
---|---|---|
status | Status | The status effect dealt by the special attribte |
Sharpness
Weapon sharpness is represented by the number of normal hits a weapon can make before that segment is depleted. For example, a weapon with 50 blue sharpness can hit a monster 50 times before dropping into the green bar segment, assuming none of those 50 hits bounced.
Property | Type | Description |
---|---|---|
red | Integer | The durability of the red (first) bar segment |
orange | Integer | The durability of the orange (second) bar segment |
yellow | Integer | The durability of the yellow (third) bar segment |
green | Integer | The durability of the gree (fourth) bar segment |
blue | Integer | The durability of the blue (fifth) bar segment |
white | Integer | The durability of the white (sixth) bar segment |
purple | Integer | The durability of the purple (seventh) bar segment |
Weapon sharpness cannot have a cumulative value of over 400 across all segments. This means that sharpness values from the API can be easily converted into a display representation similar to the in-game sharpness bar by dividing the sharpness value by 400 and multiplying that by the width of your sharpness bar, then flooring the result. Given a bar with a width of 100 pixels, your formula would look something like this:
barPixels = ⌊sharpness / 400 * 100⌋
Color | Value | Formula | Result |
---|---|---|---|
Red | 110 | ⌊110 / 400 * 100⌋ |
27px |
Orange | 30 | ⌊30 / 400 * 100⌋ |
7px |
Yellow | 60 | ⌊60 / 400 * 100⌋ |
15px |
Green | 80 | ⌊80 / 400 * 100⌋ |
20px |
Blue | 40 | ⌊40 / 400 * 100⌋ |
10px |
White | 30 | ⌊30 / 400 * 100⌋ |
7px |
Purple | 0 | ⌊0 / 400 * 100⌋ |
0px |
In the above example, the resulting bar might look something like the one below.
Handicraft
Each level of the Handicraft skill adds 10 hits to the weapon's sharpness. In some cases, hitting a certain level of Handicraft on a specific weapon will cause sharpness of the next color up to be added to instead. The API encodes this as an array where each element is the number of Handicraft levels before the weapon moves to the next sharpness color. The first element in the array indicates the number of levels that apply to the weapon's highest base sharpness segment, and each subsequent element in the array applies to segments after that.
For example, the charge blade "Valeroje-of-the-Waves" has a handicraft
of [1, 4]
, and a base blue sharpness of 50.
Adding one level of Handicraft would increase the blue sharpness to 60, and a second level of Handicraft would add 10
hits of white sharpness. A third would add another 10 to the white sharpness bar, and so on until a total of 40 white
sharpness at Handicraft 5.
WeaponCrafting
Property | Type | Description |
---|---|---|
id | Integer | The ID |
craftable | Boolean | Indicates if the weapon can be directly crafted; false indicates that the weapon must be upgraded from the previous weapon |
previous | Weapon | The previous weapon in the crafting tree, or null if there isn't one |
branches | Array<Weapon> | An array of weapons that the weapon can be upgraded into |
craftingZennyCost | Integer | The amount of zenny required to craft the weapon |
craftingMaterials | Array<CraftingCost> | An array of materials required to craft the weapon |
upgradeZennyCost | Integer | The amount of zenny required to upgrade the previous weapon into this one |
upgradeMaterials | Array<CraftingCost> | An array of materials required to upgrade the previous weapon into this one |
Weapon Types
The discriminant for the Weapon tagged union. Note that not all variants have additional fields; in such cases, no subtype will be listed in the table below.
Value | Subtype | Value | Subtype | |
---|---|---|---|---|
bow | Bow | hunting-horn | Hunting Horn | |
chage-blade | Charge Blade | insect-glaive | Insect Glaive | |
dual-blades | — | lance | — | |
great-sword | — | light-bowgun | Light Bowgun | |
gunlance | Gunlance | long-sword | — | |
hammer | — | switch-axe | Switch Axe | |
heavy-bowgun | Heavy Bowgun | sword-shield | — |
Bow
{
"coatings": [
"power",
"paralysis"
]
}
An example
Bow
object. Fields have been omitted to show only those added toBow
objects.
Property | Type | Description |
---|---|---|
coatings | Array<BowCoating> | An array of coatings supported by the weapon |
BowCoating
An enumerated value, one of the following:
close-range | power | pierce | paralysis |
poison | sleep | blast | exhaust |
Charge Blade
{
"phial": "impact",
"sharpness": {
"red": 50,
"orange": 60,
"yellow": 40,
"green": 50,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
}
An example
ChargeBlade
object. Fields have been omitted to show only those added toChargeBlade
objects.
Property | Type | Description |
---|---|---|
phial | ChargeBladePhial | The type of phial used by the weapon |
ChargeBladePhial
An enumerated value, one of the following:
element | impact |
Gunlance
{
"shell": "normal",
"shellLevel": 2,
"sharpness": {
"red": 50,
"orange": 50,
"yellow": 40,
"green": 60,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
}
An example
Gunlance
object. Fields have been omitted to show only those added toGunlance
objects.
Property | Type | Description |
---|---|---|
shell | GunlanceShell | The type of shell used by the weapon |
shellLevel | Integer | The level of the weapon's shell |
GunlanceShell
An enumerated value, one of the following:
normal | wide | long |
Heavy Bowgun
{
"ammo": [
{
"kind": "normal",
"level": 2,
"capacity": 4,
"id": 1
},
{
"kind": "pierce",
"level": 1,
"capacity": 5,
"id": 2
},
{
"kind": "spread",
"level": 1,
"capacity": 4,
"id": 3
},
[...]
]
}
An example
HeavyBowgun
object. Fields have been omitted to show only those added toGunlance
objects. Additionally, some fields have been truncated to preserve readability.
Property | Type | Description |
---|---|---|
ammo | Array<HeavyBowgunAmmo> | An array of ammo and capacities for the weapon; ammo the weapon cannot use will not be included in the array |
HeavyBowgunAmmo
Property | Type | Description |
---|---|---|
kind | AmmoKind | The ammo type |
level | Integer | The ammo level |
capacity | Integer | The number of shots before reloading |
Hunting Horn
{
"melody": {
"id": 5,
"gameId": 4,
"notes": [
"white",
"red",
"yellow"
],
"songs": [
{
"effectId": 1,
"sequence": [
"white",
"white"
],
"name": "Self-Improvement",
"id": 2
},
{
"effectId": 11,
"sequence": [
"white",
"red",
"white"
],
"name": "Attack Up (S)",
"id": 18
},
[...]
]
},
"echoBubble": {
"kind": "evasion",
"name": "Evasion & Movement Speed Up",
"id": 1,
"gameId": 1
},
"echoWave": {
"id": 1,
"gameId": 1,
"kind": "blunt",
"name": "Echo Wave (Blunt)"
},
"sharpness": {
"red": 50,
"orange": 60,
"yellow": 50,
"green": 40,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
}
An example
HuntingHorn
object. Fields have been omitted to show only those added toHuntingHorn
objects. Additionally, some fields have been truncated to preserve readability.
Property | Type | Description |
---|---|---|
melody | HuntingHornMelody | The weapon's note and melody information |
echoBubble | HuntingHornBubble | The echo bubble used by the hunting horn |
echoWave | HuntingHornWave | The echo wave used by the hunting horn; some horns do not have an echo wave |
HuntingHornMelody
Property | Type | Description |
---|---|---|
id | Integer | The ID |
gameId | GameId | The ID used by the game files to identify the melody (note set) |
notes | Array<HuntingHornNote> | An array of notes used in the melody |
songs | Array<HuntingHornSong> | An array of songs that can be played by the weapon |
HuntingHornNote
An enumerated value, one of the following:
purple | red | orange | yellow |
green | blue | aqua | white |
HuntingHornSong
Property | Type | Description |
---|---|---|
id | Integer | The ID |
effectId | Integer | An identifier for the effect granted by the song; all songs that grant the same effect will share the same effectId |
sequence | Array<HuntingHornNote> | An array of notes that make up the song, in the order they must be played |
name | String | The name of the song, e.g. "Attack Up (S)" |
Note that effectId
is not a unique identifier. Some songs can be played with different note combinations, and the
API encodes that as multiple entries in the database for each note combination that share the same effectId
.
HuntingHornBubble
Property | Type | Description |
---|---|---|
id | Integer | The ID |
gameId | GameId | The ID used by the game files to identify the echo bubble |
kind | HuntingHornBubbleKind | The type of effect granted by the echo bubble |
name | String | The name of the echo bubble effect |
HuntingHornBubbleKind
An enumerated value, one of the following:
Value | In-Game Name (English) | Value | In-Game Name (English) | |
---|---|---|---|---|
evasion | Evasion & Movement Speed Up | damage | Attack & Affinity Up | |
regen | Health Regeneration | defense | Defense & Elemental Res Up | |
stamina | Stamina Regeneration | immunity | Ailments/Blights Negated |
HuntingHornWave
Property | Type | Description |
---|---|---|
id | Integer | The ID |
gameId | GameId | The ID used by the game files to identify the echo wave |
kind | HuntingHornWaveKind | The type of effect granted by the echo wave |
name | String | The name of the echo wave effect |
HuntingHornWaveKind
An enumerated value, one of the following:
blunt | slash | fire | water |
thunder | ice | dragon | poison |
paralyze | sleep | blast |
Insect Glaive
{
"kinsectLevel": 1,
"sharpness": {
"red": 50,
"orange": 50,
"yellow": 40,
"green": 60,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
}
An example
InsectGlaive
object. Fields have been omitted to show only those added toInsectGlaive
objects.
Property | Type | Description |
---|---|---|
kinsectLevel | Integer | The kinsect level modifier for the weapon |
Light Bowgun
{
"ammo": [
{
"kind": "normal",
"level": 2,
"capacity": 4,
"rapid": true,
"id": 1
},
{
"kind": "pierce",
"level": 1,
"capacity": 4,
"rapid": false,
"id": 2
},
[...]
],
"specialAmmo": "wyvernblast",
}
An example
LightBowgun
object. Fields have been omitted to show only those added toLightBowgun
objects. Additionally, some fields have been truncated to preserve readability.
Property | Type | Description |
---|---|---|
ammo | Array<LightBowgunAmmo> | An array of ammo and capacities for the weapon; ammo the weapon cannot use will not be included in the array |
specialAmmo | LightBowgunSpecialAmmo | Indicates the type of special ammo available to the weapon |
LightBowgunAmmo
Property | Type | Description |
---|---|---|
kind | AmmoKind | The ammo type |
level | Integer | The ammo level |
capacity | Integer | The number of shots before reloading |
rapid | Boolean | Indicates if the ammo has the "Rapid Fire" modifier |
LightBowgunSpecialAmmo
An enumerated value, one of the following:
wyvernblast | adhesive |
Switch Axe
{
"phial": {
"kind": "dragon",
"damage": {
"raw": 12,
"display": 120
}
},
"sharpness": {
"red": 80,
"orange": 40,
"yellow": 60,
"green": 80,
"blue": 70,
"white": 20,
"purple": 0
},
"handicraft": [
5
]
}
An example
SwitchAxe
object. Fields have been omitted to show only those added toSwitchAxe
objects.
Property | Type | Description |
---|---|---|
phial | Phial | The phial used by the weapon |
Note that, while the field name in the API is phial
, due to database limitations the field is actually named
switchAxePhial
(otherwise it would conflict with the charge blade's phial
field). This is only relevant if you try
to query for the field; if you do, you will need to use the switchAxePhial
field name instead of
the one in the API response.
Phial
Property | Type | Description |
---|---|---|
kind | SwitchAxePhial | The phial's type |
damage | WeaponDamage | The damage dealt by the phial; not present for power and element types |
SwitchAxePhial
An enumerated value, one of the following:
power | element | dragon |
exhaust | paralyze | poison |
List all weapons
curl "https://wilds.mhdb.io/en/weapons"
Returns an array of Weapon objects.
[
{
"gameId": 2,
"crafting": {
"weapon": {
"id": 148
},
"craftable": false,
"previous": {
"name": "Hope Daggers I",
"id": 147
},
"branches": [
{
"name": "Hope Daggers III",
"id": 149
}
],
"craftingMaterials": [],
"craftingZennyCost": 0,
"upgradeMaterials": [
{
"item": {
"id": 51,
"gameId": 53,
"rarity": 4,
"name": "Iron Ore",
"description": "Ore that can be smelted into a multi-purpose metal.",
"value": 60,
"carryLimit": 10,
"recipes": []
},
"quantity": 2,
"id": 2745
}
],
"upgradeZennyCost": 500,
"id": 148
},
"rarity": 1,
"kind": "dual-blades",
"damage": {
"raw": 100,
"display": 140
},
"specials": [],
"name": "Hope Daggers II",
"description": "Dual blades made specifically for [...]",
"defenseBonus": 0,
"elderseal": null,
"slots": [],
"affinity": 0,
"skills": [
{
"skill": {
"id": 119,
"name": "Speed Sharpening",
"description": "Speeds up weapon sharpening when using a whetstone."
},
"level": 1,
"description": "Removes one cycle from the sharpening process.",
"id": 318
}
],
"id": 148,
"sharpness": {
"red": 40,
"orange": 40,
"yellow": 40,
"green": 80,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/weapons
List all weapons by type
curl -G "https://wilds.mhdb.io/en/weapons" --data-urlencode 'q={"kind": "dual-blades"}'
Returns an array of Weapon objects that are all Great Swords.
[
{
"gameId": 2,
"crafting": {
"weapon": {
"id": 148
},
"craftable": false,
"previous": {
"name": "Hope Daggers I",
"id": 147
},
"branches": [
{
"name": "Hope Daggers III",
"id": 149
}
],
"craftingMaterials": [],
"craftingZennyCost": 0,
"upgradeMaterials": [
{
"item": {
"id": 51,
"gameId": 53,
"rarity": 4,
"name": "Iron Ore",
"description": "Ore that can be smelted into a multi-purpose metal.",
"value": 60,
"carryLimit": 10,
"recipes": []
},
"quantity": 2,
"id": 2745
}
],
"upgradeZennyCost": 500,
"id": 148
},
"rarity": 1,
"kind": "dual-blades",
"damage": {
"raw": 100,
"display": 140
},
"specials": [],
"name": "Hope Daggers II",
"description": "Dual blades made specifically for [...]",
"defenseBonus": 0,
"elderseal": null,
"slots": [],
"affinity": 0,
"skills": [
{
"skill": {
"id": 119,
"name": "Speed Sharpening",
"description": "Speeds up weapon sharpening when using a whetstone."
},
"level": 1,
"description": "Removes one cycle from the sharpening process.",
"id": 318
}
],
"id": 148,
"sharpness": {
"red": 40,
"orange": 40,
"yellow": 40,
"green": 80,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
},
[...]
]
This is a list endpoint, and supports filtering.
HTTP Request
GET https://wilds.mhdb.io/{locale}/weapons?q={"kind": "{kind}"}
Parameter | Type | Description |
---|---|---|
kind | WeaponKind | The type of weapon to retrieve |
Retrieve a weapon
curl "https://wilds.mhdb.io/en/weapons/1"
Returns a single Weapon object.
{
"gameId": 2,
"crafting": {
"weapon": {
"id": 148
},
"craftable": false,
"previous": {
"name": "Hope Daggers I",
"id": 147
},
"branches": [
{
"name": "Hope Daggers III",
"id": 149
}
],
"craftingMaterials": [],
"craftingZennyCost": 0,
"upgradeMaterials": [
{
"item": {
"id": 51,
"gameId": 53,
"rarity": 4,
"name": "Iron Ore",
"description": "Ore that can be smelted into a multi-purpose metal.",
"value": 60,
"carryLimit": 10,
"recipes": []
},
"quantity": 2,
"id": 2745
}
],
"upgradeZennyCost": 500,
"id": 148
},
"rarity": 1,
"kind": "dual-blades",
"damage": {
"raw": 100,
"display": 140
},
"specials": [],
"name": "Hope Daggers II",
"description": "Dual blades made specifically for [...]",
"defenseBonus": 0,
"elderseal": null,
"slots": [],
"affinity": 0,
"skills": [
{
"skill": {
"id": 119,
"name": "Speed Sharpening",
"description": "Speeds up weapon sharpening when using a whetstone."
},
"level": 1,
"description": "Removes one cycle from the sharpening process.",
"id": 318
}
],
"id": 148,
"sharpness": {
"red": 40,
"orange": 40,
"yellow": 40,
"green": 80,
"blue": 0,
"white": 0,
"purple": 0
},
"handicraft": [
5
]
}
Retrieves a single weapon by its ID.
HTTP Request
GET https://wilds.mhdb.io/{locale}/weapons/{id}
Parameter | Type | Description |
---|---|---|
id | Integer | The weapon's ID |
Data Types
Included here are data types shared across several parts of the API.
Scalar Types
{
"String": "This is a string.",
"Integer": 123,
"Boolean": true,
"Percent": "48",
"Enum<Element>": "fire",
"Array<Element>": ["fire", "water"],
"DateTime": "2025-02-22T00:00:00Z"
}
Type | Description |
---|---|
String | Text of any length; fields with this type are localized, and may be null if a value has not been set for your selected locale. |
Integer | A whole number. |
Boolean | A boolean value, either true or false . |
Percent | An integer indicating a percentage; usually between 0 and 100 inclusive, but some objects (such as motion values) can have values higher than 100% |
Enum<T> | An enumerated value, restricted to the values specified. |
Array<T> | An array containing zero or more values of type T . |
DateTime | An ISO 8601 string representing date and time, in UTC. |
Discriminant<T> | A value of type T that indicates which subtype the object represents. See Union Types for more information. |
GameId
The game ID type represents an identifier derived from the game files. This value is a 32-bit signed integer, and will
always be stable across updates and imports. Due to the way the API is constructed, an object may change its id
field after an import, but objects with a gameId
field will always use the same value, even if the database were to
be wiped out and rebuilt. Game IDs are always unique identifiers within that object category, however some
union types (such as weapons) will share game IDs for different WeaponKind
s.
If you need long-term persistent storage for an object reference for your application, you should use the object's game ID if it has one, or the game ID of the nearest parent with one and some unique identifier on the object itself, such as:
- For Armor, store the
gameId
from the Armor Set and thekind
from the armor. - For SkillRanks, store the
gameId
from the Skill and thelevel
from the skill rank.
Rank
An enumerated value, one of the following:
low | high | master |
Element
An enumerated value, one of the following:
fire | water | ice | thunder |
dragon | blast |
Status
An enumerated value, one of the following:
poison | sleep | paralysis | stun |
DamageKind
An enumerated value, one of the following:
severing | blunt | projectile |
Elderseal
An enumerated value, one of the following:
low | average |
high |
DecorationKind
An enumerated value, one of the following:
weapon | armor |
DecorationSlot
Decoration slots are represented by a positive integer indicating the max level of decoration that the slot will accept. Usually, these levels are provided as an array, with the number of slots on the item indicated by the number of elements in the array.
{
"slots": [1, 2]
}
AmmoKind
An enumerated value, one of the following:
normal | pierce | spread | slicing | sticky |
cluster | wyvern | poison | paralysis | sleep |
flaming | water | freeze | thunder | dragon |
recover | demon | armor | exhaust | tranq |
CraftingCost
Property | Type | Description |
---|---|---|
quantity | Integer | The amount of the item required for the craft |
item | Item | The item used as a material for the craft |
Union Types
{
"kind": "car",
"manufacturer": "Nissan",
"year": 2025,
"vin": "123ABCXYZ",
"wheels": 4
}
{
"kind": "boat",
"manufacturer": "Tidewater",
"year": 2020,
"motor": "outboard",
"horsepower": 600
}
More properly called a "tagged union" in the context of this API, a union type uses a special field to indicate which of several discrete types an object actually represents.
In the example on the right, we have two objects that share several fields. Our supertype for the union might be
Vehicle
, with shared fields present on the supertype (in our example, manufacturer
and year
). The kind
field
indicates which of our two subtypes (Car
or Boat
) the object actually represents; if kind
is set to "car", we know
that the car-specific fields vin
and wheels
will be present, likewise if the value is "boat".
Searching the API
curl 'https://wilds.mhdb.io/en/items?q={"value":{"$gte":1000}}'
Only items with a sell value of at least 1000 will be included in the array returned from the API.
[
{
"id": 91,
"rarity": 5,
"carryLimit": 1,
"value": 3600,
"name": "Powercharm",
"description": "An amulet that [...]."
},
{
"id": 92,
"rarity": 5,
"carryLimit": 1,
"value": 6840,
"name": "Powertalon",
"description": "A charm that [...]"
},
[...]
]
Any endpoint that returns an array can be searched by passing a q
parameter in the URL, e.g. /items?q={...}
. The
value of q
should be a MongoDB-style query document.
If you are not familiar with MongoDB query documents, and short explanation can be found below.
Query Document
{
"name": "Poison Resistance"
}
A simple query document, searching for any object whose
name
field is equal to "Poison Resistance".
A query document is simply a JSON object that defines fields and values to search by. In the example to the right, the
query would cause the API to only include objects where the name
field was exactly equal to "Poison Resistance".
Operators
{
"defense.base": {
"$gt": 50
}
}
You can perform more complex searches by utilizing operators. You can find a full list of supported operators here.
In the example to the right, the greater-than operator ($gt
) is being used to only return objects whose base defense
value is greater than 50. Note that nested fields can be specified by using dot-notation.
Projecting Results
curl 'https://wilds.mhdb.io/en/items?p={"id": true, "name":true}'
The response from the API will only include the
id
andname
field.
[
{
"id": 1,
"name": "Potion"
},
{
"id": 2,
"name": "Mega Potion"
}
]
You can specify which fields the API should return, called "projecting", by providing the p
query parameter.
The value of p
should be a JSON object whose key is the field path to project, and the value is a boolean indicating
if that field should be included in the response.
Paths should be a dot-notation identifier for the field. For example, weapons have a crafting
field, which contains a
craftingMaterials
property. The dot-notation form would be crafting.craftingMaterials
.
Note that projections will silently ignore unrecognized field names.
Errors
{
"error": {
"code": "category.subtype",
"message": "A verbose, human-readable error message."
}
}
Any response with a status code outside the 200 range will, in almost every case, include an object that describes the error in the response body. Every type of error response follows the same format.
Error respones will always have, at minimum, an error
key containing the error object, as can be seen in the example
to the right. Within that object, the code
key acts like an identifier; it will always be the same for the same class
of error, and can be used for error handling in your code. The message
key is a human-friendly description of the
error, and may change slightly depending on the error conditions.
Error Codes
Code | Description |
---|---|
not_found |
No object could be found with the ID provided |
query_document.invalid_query |
The query document provided has a typo or syntax error |
query_document.invalid_projection |
The projection provided has a typo or syntax error |