Explore the
DarkerDB API documentation, your gateway to harnessing Dark and Darker game data. Use our APIs to track in-game market trends, analyze live player stats, and access detailed item data, including stats, descriptions, and market data. Download game assets like item icons to enhance your apps or generate interactive tooltips. Feel free to get in touch with us in our Discord for support or to request new features or data!
Monsters
Monster stat blocks, abilities, drop tables, spawn locations, portraits, and 3D models. Always reflects the current patch. Drops are resolved for you by /v2/monsters/{id}/loot; spawn locations by /v2/monsters/{id}/locations; portraits by /v2/monsters/{id}/icon; meshes by /v2/monsters/{id}/model.
GET /v2/monsters
Pass archetypes=1 for the catalog view — one row per creature (the base variant at its lowest grade) instead of one per grade, each carrying its grades array and any extra_variants (unique / fake_death spawn-states). Cursor pagination keys on the archetype id in that mode.
GET /v2/monsters/{id}
Accepts a bare archetype id (id.monster.wraith) or any grade variant (…_common / …_elite / …_nightmare); an archetype id resolves to the base creature at its lowest grade. The response lists every sibling in variants — grades plus unique / fake_death spawn-states, each with its grade_type, variant label, and localized name — plus the hydrated abilities list (cast order, with derived name, icon, damage hits, and applied statuses) and has_portrait / has_model flags.
GET /v2/monsters/{id}/locations
Where the creature spawns: the dungeon modules that place it, grouped by dungeon (ice_cavern, goblin_cave, crypt, …). Each module carries its localized name and a spawn_count — placement totals across the module's variants, a relative "how common here" signal. Archetype-level: any grade variant returns the same set.
GET /v2/monsters/{id}/loot
Everything the monster can drop, as a bare list of drops. The body is the array. Each entry is an item_id, archetype, localized name, rarity, rarity_grade, drop_rate (the per-roll probability, 0–1, of that specific item), count, category (gear / quest / event), and a resolved map_tier (id, name, mode, floor). So "which rarities can drop" (artifacts included) reads straight off the list. Sorted by drop_rate descending. Loot is family-level, so a bare archetype id or any grade variant returns the same table.
A rate table is a categorical draw over rarity grades (grade 0 = nothing): a grade is picked in proportion to its weight, then one item uniformly within it, so a drop's rate is its grade weight over the table's total, split across the items sharing that grade. luck scales each grade's weight by its CT_LuckGrade multiplier before the draw and the distribution renormalizes (rarer grades climb, nothing/poor/common fall). Within one pool the item chances plus the nothing outcome sum to 1; a monster rolls several pools per kill, so the whole list sums to the expected number of items dropped, which routinely exceeds 1.
By default each item's drop_rate is its best across all dungeon tiers, and map_tier reports which tier that was; pass the dungeon_grade query param (numeric code) to pin one tier.
GET /v2/monsters/{id}/icon
Monster portrait, served through the shared /icon route. Elite and nightmare variants carry the game's tinted grade portraits when one ships, falling back to the base portrait; a bare archetype id serves the lowest grade's.
GET /v2/monsters/{id}/model
The monster's 3D mesh (model/gltf-binary), rendered inline below — drag to orbit. 302s to the shared codex asset bytes. Family-resolved; 404s with no model until a mesh is extracted and indexed for the family.
texturize=false serves the flat-grey, textureless variant (the model's shape on its own); the default applies the game textures.