Huntera
Huntera is a free browser MMORPG built on Tibia's content, and its numbers are its own. The Huntera API serves its catalogue from https://huntera.tibia.dev/v1 and behaves like the Tibia API: the same listings, filters, errors and rate limit. This page covers what is different.
curl https://huntera.tibia.dev/v1/spells/blood-rageEvery number is Huntera's
Blood Rage is utito tempo in both games. It costs 20 mana in Tibia and 290 in Huntera. Attack spells cost half what they cost in Tibia, and drop rates sit on a fixed six-value ladder rather than a measured percentage. So nothing on a Huntera row is Tibia's unless the row says so, and two fields exist to say it:
{
"data": {
"key": "blood-rage",
"slug": "blood-rage",
"name": "Blood Rage",
"words": "utito tempo",
"mana": 290,
"cooldown_ms": 2000,
"tibia": {
"wiki_article_id": 30160,
"slug": "blood-rage",
"name": "Blood Rage",
"image_url": "https://api.tibia.dev/storage/images/spell/blood-rage.gif",
"effect": "Grants 25% sword/axe/club fighting and increases damage taken by 15%. ..."
},
"fallbacks": [],
"synced_at": "2026-09-21T16:44:51+00:00",
"oldest_synced_at": "2026-09-19T06:02:40+00:00"
}
}tibia points at the counterpart article on the Tibia API, and it is never a second set of numbers. It always holds wiki_article_id, slug and name, plus whichever of image_url, images, effect, flavor_text, slots and equipment_slots that article has. Read those as Tibia's: an imbuement's tibia.slots is the gear TibiaWiki says takes the effect, not where Huntera lets you apply it. Arenas, training skills, prey, bosses and quests have nothing in Tibia to point at and carry no tibia key, and most hunts carry a null one: only 11 of Huntera's 60 match one of Tibia's 443 hunting places.
fallbacks names every field that was borrowed from Tibia because the game publishes no value of its own. In practice that is items, nearly all of which borrow tibia_item_type: Tibia's item type, guessed from Huntera's own category, with a confidence beside it. An empty list means everything on the row is Huntera's.
Keys
Every row has a key, the identifier the game itself uses (blood-rage, acolyteOfTheCult, rat-hunt), and answers to it or to its slug. A key survives a rename, so store the key. Outfits are the exception: the game gives an outfit two looktypes and no id, so its key is the slug of its name, and looktypes is an unordered pair. More in Looking things up.
Two dates on every row
The game patches most days, and this API is a lagging mirror of it. Every response carries two dates:
synced_at: when the capture behind the rows last found something new in the game.oldest_synced_at: how old the oldest part of that capture is. This is the one to read.
The capture is taken one track at a time. Ten tracks come from public sources, the game's own client files and the community huntera-wiki, and are re-read every day after the game's server save; whatever changed is reviewed before it is served. The other four (the arena pits, the training skills, the training modes and the boss drops) exist only in a logged-in game client and are refreshed by hand, so they fall behind while synced_at moves on. The gap between the two dates is how far behind, and GET /v1/meta says which track.
GET /v1/meta
GET /v1/metacurl https://huntera.tibia.dev/v1/metaThis is where the API describes itself rather than a row: the contract version, both dates, capture.tracks (the date of every track, which oldest_synced_at is the earliest of), when the capture was imported, the game client build behind it (things_version), how many rows each track wrote, and unresolved_references, the creatures the capture names that this API has no row for. Never add its by_key and by_name together: nothing says whether a creature named by name is one of those named by key.
The contract version
Huntera's fields still move as the capture learns more about the game, so this API carries a version, published by GET /v1/meta and in its OpenAPI document. The minor moves when a field moves, is renamed, or changes type or unit; the patch moves when a field is added, which breaks nobody. It is not the game's version. When the minor moves, the release notes are at the top of the OpenAPI document.
Bosses
The three bosses behind Huntera's boss doors (Jaul, Grand Master Oberon and Scarlett Etzel) are creatures, with is_boss set and every stat field null: the game publishes no numbers for a boss, and this API borrows none from Tibia. filter[is_boss]=false leaves the 113 creatures of the bestiary.
/v1/bosses lists the doors themselves, and what each boss drops, graded common, uncommon, semi-rare or very-rare and never given a rate. Some of Scarlett Etzel's drops are items the capture does not have, so on those lines item is null and name is the thing to read. To go the other way, from an item to the bosses that drop it:
curl "https://huntera.tibia.dev/v1/items?filter%5Bdropped_by%5D=jaul&include=droppedByBosses"Hunts
A hunt tier's creature_count is not the length of its creature_keys. They are two different quantities, how many creatures a step fields and which kinds, and they disagree on most tiers. Read both.
Updated about 2 months ago