List creatures

Huntera's bestiary as the game statblocks it — 116 rows on the capture being
served, 113 of them creatures the game statblocks and 3 of them boss doors'
bosses, which it statblocks nowhere. ?filter[is_boss]=false is the old 113.

The loot table is opt-in here and comes unasked on the detail route. Ask for
it with ?include=loot.item and every creature carries its lines, each line
naming the item it drops. It is left out by default because it was three
quarters of a page's bytes — 55,575 against 14,585 for a page of 25 — and a
client that only wants statblocks should not pay for it.

resistances gives a signed percentage per element, negative being a
weakness, and ?filter[weak_to]=fire and ?filter[resists]=fire are the
two queries that read it. Both take any of the nine elements this API
prices damage in — physical, energy, earth, fire, lifedrain,
ice, holy, death, manadrain — the same nine the item catalogue's
filter[resists] takes, because one enum names the columns on both tables.

Eight of them can match a creature. manadrain is an item's alone: the
capture's creature statblocks name eight element spellings across all 113
rows and that is not one of them, so ?filter[weak_to]=manadrain is a
valid query that answers nothing, and resistances never carries the key.

A creature the capture recorded no figure for is in neither answer, because
a null is not a zero.

meta.unresolved_references is how many creatures the capture's own tracks
name and this table has no row for. Two numbers and not one:
by_key counts the creatures referenced by the key the game files them
under — 27 against 113 captured at the time of writing, 24 of them from
prey groups and three from a boss door — and by_name counts those
referenced by name, 60, every one of them a boss on an arena pit's
ladder.

by_name was 6 and is 60, and the capture changed rather than the
game.
The six were the pits' final bosses, which was every arena
reference the capture held: the committed dump of that panel had been taken
with no pit selected, so the ten-rung ladder behind each one was read by
nothing. It is read now, and the six are its six tenth rungs. A client that
stored the old figure is reading a number that was true of the capture and
never of the game.

Do not add them. Nothing in the capture establishes whether one of the
60 names is one of the 27 keyed creatures or a 28th, so 87 would be an
assertion nobody measured. This shipped as a single number and became two
the moment a track started referencing creatures by name; the same will
hold for any third way of naming one.

The game publishes no statblock for any of them, so they cannot be served;
what the field buys is that a client asking for the bestiary is told the
bestiary is short rather than left to assume it is whole.

Where a creature turns up is opt-in the way its loot is: ?include=hunts,
preyGroup, quests and bosses answer which places field it, which prey
group offers it, which quests count kills of it and which boss doors demand
them. Every one of the 113 bestiary creatures is fielded by a hunt — none of the
3 bosses is, a boss being behind a door rather than on a hunt — 80 of the 104 prey
entries resolve to one, and the quest and boss edges are narrow: 12 creatures and 6.

Four fields moved into two objects, which is a breaking change on this endpoint.
bestiary_class is bestiary.class and is a {slug, name} pair rather than a bare
string; kills_required is bestiary.kills_required; outfit_id is outfit.id and
outfit_colors is outfit.colors. Nothing was renamed beyond that and no value
changed. bestiary holds what describes the Bestiary entry rather than the creature,
which is what Tibia's own group of that name holds; outfit holds the looktype and the
colours that recolour it, which are meaningless apart. ?filter[bestiary_class]= is
unchanged and takes either spelling.

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

Narrows the list by bestiary class.

boolean
enum

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

Allowed:
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.

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

Creatures a given hunt fields, named by the game's key or by slug. Every one of the 113 captured creatures is fielded by a hunt — 106 by one and 7 by

string
enum

Creatures a given prey group offers, named by the game's key or by slug. At most one group names any creature: all 104 species entries carry a distinct key,

string
enum

Creatures a given quest names, either through a mission or as its garrison. Both edges, because a quest names a creature two ways and a client asking which

Allowed:
string
enum

Creatures a given boss door counts kills of, named by the game's key or by slug. 9 door entries over the 3 bosses, and the reverse reaches 6 of them: the other

Allowed:
string

Creatures whose loot table names a given item, by the game's id or by slug. The counterpart of /v1/items's filter[dropped_by], and Modules\Creature's

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