Getting started
Quickstart
From zero to a parsed boss in three steps.
1. Pick an endpoint
The two endpoints you’ll use most:
/api/v1/boss— paginated list, filterable bygameandsearch./api/v1/boss/{slug}— full payload for a single boss.
2. Fetch from anywhere
curl
curl "https://hallownestapi.dev/api/v1/boss?game=hk&limit=5"TypeScript / fetch
type Boss = {
slug: string;
name: string;
game: "hk" | "silksong";
area: { slug: string; name: string };
url: string;
};
const res = await fetch(
"https://hallownestapi.dev/api/v1/boss?game=hk&limit=5",
);
const { results } = (await res.json()) as { results: Boss[] };
console.log(results.map((b) => b.name));Python
import httpx
r = httpx.get("https://hallownestapi.dev/api/v1/boss/false-knight")
boss = r.json()
print(boss["name"], "—", boss["area"]["name"])3. Validate with Zod (optional)
The same Zod schemas the server uses are available in the source — copy lib/schema.ts into your project for end-to-end type safety.
ts
import { BossSchema } from "./schema";
const boss = BossSchema.parse(await res.json());