Skip to content

Item

client.item — item database, search, recipes, and metadata.

Official docs: Item & Recipe.

When to use which

GoalMethod
Browse / page the full DBlistItems
Structured filterssearchItems
Fuzzy name lookupquickSearchItems
Recipe DB / searchlistRecipes / searchRecipes
Filter enums & static defsgetMetadata
Item setslistSets

Paginated endpoints return { controller, results } — see Pagination.

Filters (ItemSearchRequest)

Scalars or arrays are accepted for most fields:

ts
type ItemSearchRequest = {
  query?: string | null;
  type?: string | string[];
  tier?: string | string[];
  attackSpeed?: string | string[];
  levelRange?: number | number[];
  professions?: string | string[];
  identifications?: string | string[];
  majorIds?: string | string[];
};
ts
const { data } = await client.item.searchItems(
  {
    type: ["wand", "relik"],
    tier: "legendary",
    levelRange: [80, 105],
  },
  { page: 0 },
);

Item shape (abridged)

ts
type Item = {
  displayName: string;
  internalName: string;
  type: string;
  subType: string;
  tier: string;
  attackSpeed?: string;
  averageDps?: number;
  requirements?: {
    level?: number;
    classRequirement?: string;
    strength?: number;
    dexterity?: number;
    intelligence?: number;
    defence?: number;
    agility?: number;
  };
  majorIds?: Record<string, string>;
  identifications?: Record<string, number | { min: number; raw: number; max: number }>;
  // icon, emblem, lore, powderSlots, …
};

listItems(options?)

GET /item/database

OptionTypeDescription
page?number0-indexed
fullResult?booleanPresence ?fullResult

searchItems(filters?, options?)

POST /item/search

Same page options as listItems.

quickSearchItems(query)

GET /item/search/:query — returns an Item[] (not paginated).

ts
const { data } = await client.item.quickSearchItems("Nirvana");

Recipes

listRecipes / searchRecipes mirror the item APIs, but fullResult: true is sent as ?full_result on the wire. Details: Recipe fullResult cookbook.

Recipe filters include query, xp, type, skill, materials, level, durability, healthOrDamage, duration, basicDuration.

getMetadata(options?)

GET /item/metadata

OptionTypeDescription
static?booleanPresence ?static — static filter definitions

Return type is a discriminated union depending on static. Use this to populate filter UIs instead of hard-coding tiers / types.

ts
const { data } = await client.item.getMetadata({ static: true });
console.log(Object.keys(data));

listSets()

GET /item/sets

Unofficial TypeScript tooling for the Wynncraft API