List items

Huntera's item catalogue as the game publishes it, priced as Huntera
prices it. slot is given in Tibia's vocabulary rather than the game's —
the two name the same ten slots and four of them differently, amulet
against necklace among them — so a client can cross the two APIs on one
word.

category is the shelf the game files the item under, as a {slug, name} pair.
The slug is the value ?filter[category]=helmets takes — unchanged, and a slug
outside the 24 shelves is a 400 rather than an empty page — and the name is what
the game's own legend prints for it, Wands & Rods for wands-rods. There are
24 shelves and the capture uses 22 of them.

It was the bare code two releases ago and the bare slug until now. The
legend turned out to ship with the data all along, so the number went and the
name arrived: one shelf, one value to filter on, and the words the game itself
uses for it beside them.

tibia_item_type beside it is a different thing and still a derivation — this
API's reading of that shelf as a tibia.dev item type, not anything the game
published. It carries its own confidence: 1 on eleven of the 22 codes in use
and 0.33 to 0.98 on the other eleven, so read the figure before you trust the
type. A row carrying it always names the field in fallbacks too.

weight is in ounces. It read hundredths of an ounce until the unit was
measured against the wiki's own rendering and against tibia.dev's figure for
the same object, so a weight that answered 8,500 answers 85 now, and
filter[min_weight] and filter[max_weight] take ounces with it.

filter[resists] and filter[weak_to] take an element rather than a
column — physical, energy, earth, fire, lifedrain, ice,
holy, death, manadrain — and answer with the items whose
resistance to it falls on one side of zero. Only 26 of the 837 items
carry a negative figure, terra mantle among them at earth 8 and fire
−8, so the weakness half is a narrow answer by nature.

Where an item comes from and what it is good for — which creatures drop it,
which bosses do, which hunts list it, which quests award it, which
imbuements it feeds — is left out until you ask: name those relations in
include, or read a single item, which answers all five at once.

dropped_by_bosses names the boss doors whose drop strip lists the item, with
the rarity the strip grades it at and never a rate — the game publishes none
for a boss drop. It is a list of its own rather than more entries in
dropped_by because the two carry different figures. 22 of the 43 items a
boss strip resolves to have no creature loot line at all, so for those it is
the only answer to what drops them, and filter[dropped_by] reads both lists:
jaul finds what Jaul drops.

dropped_by is a list of drops rather than of creatures, so a creature can
appear in it more than once
and a client keying it on the creature would
lose rows. The gold coin is the extreme: 114 entries over 94 creatures. That
is the game rolling twice for the same item rather than a duplicate — 18
creature-and-item pairs repeat across the catalogue, three of them with every
published field identical, so nothing in the payload could tell those two
entries apart and collapsing them would assert which roll was the real one.

Fifteen fields moved into four objects and category became a pair, which is a
breaking change on this endpoint.
Nothing was renamed beyond the moves, no value
changed and no field was dropped:

  • required_level is requirements.level, vocations is requirements.vocations
  • attack, defense, armor, range, two_handed, attack_skill, elemental_type
    and elemental_damage are the same names under combat
  • speed_bonus is bonuses.speed, magic_level_bonus is bonuses.magic_level,
    skill_bonuses is bonuses.skills
  • npc_buy and npc_sell are the same names under trade
  • category was the shelf's slug and is {slug, name} now, the slug unchanged

slot, weight, imbuement_slots, resistances and tibia_item_type did not move,
and neither did any filter or sort — ?filter[min_required_level]=, ?sort=armor and
?filter[category]=helmets all read columns and take exactly what they took before.

The groups are four questions rather than a tidying: whether a character can equip it,
what it does in a fight, what it adds while worn, and what it costs. They are typed
numbers throughout — this is deliberately not Tibia's attributes map, which is a
pivot of free-text wiki values and publishes "armor":"17" as a string.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string

Rows whose name contains this text.

string
enum

Only rows whose category is one of these.

string
enum

Only rows whose slot is one of these.

string
enum

Only rows whose attack skill is one of these.

Allowed:
string
enum

Rows that take less damage than normal from an element, which is a positive figure in resistances. Takes the element rather than the column, so fire and not resist_fire. A row the capture recorded no figure for is in neither direction, because a null is not a zero.

string
enum

Rows that take more damage than normal from an element, which is a negative figure in resistances. Takes the element rather than the column, so fire and not resist_fire. A row the capture recorded no figure for is in neither direction, because a null is not a zero.

boolean
enum

Only rows where two handed is true, or false for the rest.

Allowed:
string

Items with exactly this many imbuement slots. A scope and not AllowedFilter::exact, for the reason

string

Items a character needs at least this level for. The column is on 274 of the 837 rows, and a null is not a zero: an item the

string

Items a character needs at most this level for.

string

Items weighing at least this much, in ounces. Ounces, and this docblock said grams until the unit was measured. The capture

string

Items weighing at most this much, in ounces — see minWeight() for the unit, why this once said grams, and why the bound keeps its fraction.

string

Items an NPC charges at least this much for. On 195 of the 837 rows. A null is an item no NPC sells rather than one sold for

string

Items an NPC charges at most this much for.

string

Items an NPC pays at least this much for. On 649 of the 837 rows, which makes it the wider half of the pair: the game prices

string

Items an NPC pays at most this much for.

string
enum

Items a given creature drops, named by the game's key or by slug, a boss among them.

string
enum

Items a given hunt lists as loot, named by the game's key or by slug. 608 items turn up in a hunt's loot table and 363 of them in exactly one, so this

string
enum

Items a given quest awards, named by the game's key or by slug. 10 prizes over the 3 quests the capture publishes, every one of them a distinct

Allowed:
string
enum

Items a given imbuement consumes, named by the game's key or by slug. A recipe asks for one to three items and 69 items feed one, so this answers three

string
enum

Column to sort by; prefix with - to reverse it. Defaults to name.

string
enum

Relations to embed in the response, comma separated.

Allowed:
integer

Which page to read.

integer

Rows per page, 25 by default and 100 at most. Anything that is not a positive whole number answers 400.

Response

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json