Skip to content
HallownestAPI

Reference

Endpoints

HallownestAPI v1 — REST, no auth, JSON responses.

Base URL

bash
https://hallownestapi.dev/api/v1

Conventions

  • Slugs are kebab-case ASCII (e.g. false-knight).
  • List endpoints accept limit (1–100, default 20) and offset (default 0).
  • Errors return JSON with an error code and a human message or details.
  • All responses are cached at the edge — typically 1h with SWR.
GET/api/v1

Root index. Lists available endpoints.

Example response
{
  "name": "HallownestAPI",
  "version": "v1",
  "endpoints": { "bosses": ".../boss", "boss": ".../boss/{slug}" }
}
GET/api/v1/boss

Paginated list of bosses. Filterable.

ParamTypeDescription
gamehk | silksongFilter by game.
searchstringSubstring match on name, slug, or area.
limitnumber1–100, default 20.
offsetnumberDefault 0.
Example response
{
  "count": 4,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "false-knight",
      "name": "False Knight",
      "game": "hk",
      "area": { "slug": "forgotten-crossroads", "name": "Forgotten Crossroads" },
      "optional": false,
      "url": "https://hallownestapi.dev/api/v1/boss/false-knight"
    }
  ]
}
GET/api/v1/boss/{slug}

Full payload for a single boss.

Example response
{
  "slug": "false-knight",
  "name": "False Knight",
  "game": "hk",
  "hp": { "base": 300 },
  "geo": 200,
  "area": { "slug": "forgotten-crossroads", "name": "Forgotten Crossroads" },
  "phases": [{ "name": "Armoured rampage" }, { "name": "Exposed maggot" }],
  "summary": "..."
}
GET/api/v1/character

Paginated list of characters — NPCs, merchants, Hunter's Journal enemies, and dream warriors.

ParamTypeDescription
gamehk | silksongFilter by game.
kindnpc | merchant | enemy | warriorFilter by character kind.
areaslugFilter by the slug of the character's primary area.
searchstringSubstring match on name, slug, role, or area.
limitnumber1–100, default 20.
offsetnumberDefault 0.
Example response
{
  "count": 28,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "cornifer",
      "name": "Cornifer",
      "game": "hk",
      "kind": "npc",
      "role": "Cartographer",
      "area": { "slug": "forgotten-crossroads", "name": "Forgotten Crossroads" },
      "url": "https://hallownestapi.dev/api/v1/character/cornifer"
    }
  ]
}
GET/api/v1/character/{slug}

Full payload for a single character. Enemy entries include HP, damage, geo drop, and Hunter's Journal notes.

Example response
{
  "slug": "crawlid",
  "name": "Crawlid",
  "game": "hk",
  "kind": "enemy",
  "role": "Tiny crawling bug",
  "area": { "slug": "forgotten-crossroads", "name": "Forgotten Crossroads" },
  "hp": 5,
  "damage": 1,
  "geoDrop": 1,
  "hunterJournal": {
    "notes": "Mindless creature that crawls along the ground..."
  },
  "summary": "..."
}
GET/api/v1/area

Paginated list of regions and sub-areas across Hallownest and Pharloom.

ParamTypeDescription
gamehk | silksongFilter by game.
kindregion | subareaFilter by area kind.
parentslugSlug of the parent region; useful to enumerate sub-areas.
searchstringSubstring match on name, slug, or parent.
limitnumber1–100, default 20.
offsetnumberDefault 0.
Example response
{
  "count": 53,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "greenpath",
      "name": "Greenpath",
      "game": "hk",
      "kind": "region",
      "url": "https://hallownestapi.dev/api/v1/area/greenpath"
    }
  ]
}
GET/api/v1/area/{slug}

Full payload for a single area. The response inlines a sub-areas list under `subareas`.

Example response
{
  "slug": "greenpath",
  "name": "Greenpath",
  "kind": "region",
  "connectsTo": ["forgotten-crossroads", "fog-canyon", "queens-gardens"],
  "stagStation": "Greenpath Stag",
  "subareas": [
    { "slug": "lake-of-unn", "name": "Lake of Unn", "kind": "subarea" }
  ],
  "summary": "..."
}
GET/api/v1/charm

Paginated list of charms — including the Fragile/Unbreakable line and Kingsoul/Void Heart.

ParamTypeDescription
gamehk | silksongFilter by game.
notchCost0 | 1 | 2 | 3 | 4 | 5Filter by notch cost. Void Heart is 0, Kingsoul is 5.
areaslugFilter by the primary area of acquisition.
merchantslugFilter by the selling merchant's slug (e.g. salubra).
searchstringSubstring match on name, slug, or effect tagline.
limitnumber1–100, default 20.
offsetnumberDefault 0.
Example response
{
  "count": 45,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "wayward-compass",
      "name": "Wayward Compass",
      "game": "hk",
      "notchCost": 1,
      "effect": "Reveals the Knight's location on the map.",
      "area": { "slug": "dirtmouth", "name": "Dirtmouth" },
      "url": "https://hallownestapi.dev/api/v1/charm/wayward-compass"
    }
  ]
}
GET/api/v1/charm/{slug}

Full payload for a single charm — notch cost, effect, location, merchant, synergies, and upgrade chain.

Example response
{
  "slug": "fragile-strength",
  "name": "Fragile Strength",
  "notchCost": 3,
  "fragile": true,
  "effect": "Increases nail damage by 50%. Breaks on death.",
  "cost": 600,
  "merchant": "leg-eater",
  "upgradesTo": "unbreakable-strength",
  "synergies": ["quick-slash", "mark-of-pride"]
}
GET/api/v1/skill

Paginated list of skills — movement abilities, spells, nail arts, and dream tools.

ParamTypeDescription
gamehk | silksongFilter by game.
kindmovement | spell | nail-art | dreamFilter by skill kind.
searchstringSubstring match on name, slug, or effect.
limitnumber1–100, default 20.
offsetnumberDefault 0.
Example response
{
  "count": 18,
  "next": null,
  "previous": null,
  "results": [
    {
      "slug": "vengeful-spirit",
      "name": "Vengeful Spirit",
      "game": "hk",
      "kind": "spell",
      "url": "https://hallownestapi.dev/api/v1/skill/vengeful-spirit"
    }
  ]
}
GET/api/v1/skill/{slug}

Full payload for a single skill. Spells expose `soulCost` and `damage`.

Example response
{
  "slug": "shade-soul",
  "name": "Shade Soul",
  "kind": "spell",
  "soulCost": 33,
  "damage": 30,
  "upgradeOf": "vengeful-spirit",
  "area": { "slug": "city-of-tears", "name": "City of Tears" }
}