Animal Crossing data from the Nookipedia wiki - villagers, fish, bugs, sea creatures, art, fossils, and more.
Bring your own key. This API needs your own Nookipedia key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("nookipedia/getnh_art");One install, one key - the same client calls every API on the marketplace.
Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API.
The version of the API you are calling, written as `1.0.0`. This is specified as required as good practice, but it is not actually enforced by the API. If you do not specify a version, you will be served the latest version, which may eventually result in breaking changes.
When set to `true`, only artwork that has a fake will be returned. When set to `false`, only artwork without fakes will be returned.
When set to `true`, only artwork names are returned. Instead of an array of objects with all details, the return will be an array of strings.
Specify the desired width of returned image URLs. When unspecified, the linked image(s) returned by the API will be full-resolution. Note that images can only be reduced in size; specifying a width greater than than the maximum size will return the default full-size image URL. Note that requesting specific image sizes for long lists may result in a very long response time.
All New Horizons artwork
Single New Horizons artwork
All New Horizons bugs
Single New Horizons bug
/**
* Nookipedia - generated by OmniStream from Nookipedia's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/nookipedia";
export class NookipediaError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `Nookipedia error ${status}`);
this.name = "NookipediaError";
this.status = status;
this.code = code;
}
}
export interface NookipediaOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class Nookipedia {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: NookipediaOptions = {}) {
if (!token) throw new Error("Nookipedia: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new NookipediaError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** All New Horizons artwork */
getnhArt(params: { "X-API-KEY": string; "Accept-Version": string; "hasfake"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/art", { params });
}
/** Single New Horizons artwork */
getnhArtArtwork(params: { "artwork": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/art/{artwork}", { params });
}
/** All New Horizons bugs */
getnhBugs(params: { "X-API-KEY": string; "Accept-Version": string; "month"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/bugs", { params });
}
/** Single New Horizons bug */
getnhBugsBug(params: { "bug": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/bugs/{bug}", { params });
}
/** All New Horizons clothing */
getnhClothing(params: { "X-API-KEY": string; "Accept-Version": string; "category"?: string; "color"?: unknown[]; "style"?: unknown[]; "labeltheme"?: string; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/clothing", { params });
}
/** Single New Horizons clothing */
getnhClothingClothing(params: { "clothing": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/clothing/{clothing}", { params });
}
/** All New Horizons events */
getnhEvents(params: { "X-API-KEY": string; "Accept-Version": string; "date"?: string; "year"?: string; "month"?: string; "day"?: number }): Promise<any> {
return this._request("GET", "/nh/events", { params });
}
/** All New Horizons fish */
getnhFish(params: { "X-API-KEY": string; "Accept-Version": string; "month"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fish", { params });
}
/** Single New Horizons fish */
getnhFishFish(params: { "fish": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fish/{fish}", { params });
}
/** All New Horizons fossil groups or individual fossil */
getnhFossilsAll(params: { "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/all", { params });
}
/** Single New Horizons fossil group with individual fossils */
getnhFossilsAllFossil(params: { "fossil": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/all/{fossil}", { params });
}
/** All New Horizons fossil groups */
getnhFossilsGroups(params: { "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/groups", { params });
}
/** Single New Horizons fossil group */
getnhFossilsGroupsFossilGroup(params: { "fossil_group": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/groups/{fossil_group}", { params });
}
/** All New Horizons fossils */
getnhFossilsIndividuals(params: { "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/individuals", { params });
}
/** Single New Horizons fossil */
getnhFossilsIndividualsFossil(params: { "fossil": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/fossils/individuals/{fossil}", { params });
}
/** All New Horizons furniture */
getnhFurniture(params: { "X-API-KEY": string; "Accept-Version": string; "category"?: string; "color"?: unknown[]; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/furniture", { params });
}
/** Single New Horizons furniture */
getnhFurnitureFurniture(params: { "furniture": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/furniture/{furniture}", { params });
}
/** All New Horizons interior items */
getnhInterior(params: { "X-API-KEY": string; "Accept-Version": string; "color"?: unknown[]; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/interior", { params });
}
/** Single New Horizons interior item */
getnhInteriorItem(params: { "item": string; "X-API-KEY": string; "Accept-Version": string; "color"?: unknown[]; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/interior/{item}", { params });
}
/** Miscellaneous New Horizons items */
getnhItems(params: { "X-API-KEY": string; "Accept-Version": string; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/items", { params });
}
/** Single New Horizons miscellaneous item */
getnhItemsItem(params: { "item": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/items/{item}", { params });
}
/** All New Horizons photos and posters */
getnhPhotos(params: { "X-API-KEY": string; "Accept-Version": string; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/photos", { params });
}
/** Single New Horizons photo or poster */
getnhPhotosItem(params: { "item": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/photos/{item}", { params });
}
/** All New Horizons recipes */
getnhRecipes(params: { "X-API-KEY": string; "Accept-Version": string; "material"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/recipes", { params });
}
/** Single New Horizons recipe */
getnhRecipesItem(params: { "item": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/recipes/{item}", { params });
}
/** All New Horizons sea creatures */
getnhSea(params: { "X-API-KEY": string; "Accept-Version": string; "month"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/sea", { params });
}
/** Single New Horizons sea creature */
getnhSeaSeaCreature(params: { "sea_creature": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/sea/{sea_creature}", { params });
}
/** All New Horizons tools */
getnhTools(params: { "X-API-KEY": string; "Accept-Version": string; "excludedetails"?: string }): Promise<any> {
return this._request("GET", "/nh/tools", { params });
}
/** Single New Horizons tool */
getnhToolsTool(params: { "tool": string; "X-API-KEY": string; "Accept-Version": string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/nh/tools/{tool}", { params });
}
/** Villagers */
getvillagers(params: { "X-API-KEY": string; "Accept-Version": string; "name"?: string; "species"?: string; "personality"?: string; "game"?: unknown[]; "birthmonth"?: string; "birthday"?: string; "nhdetails"?: string; "excludedetails"?: string; "thumbsize"?: number }): Promise<any> {
return this._request("GET", "/villagers", { params });
}
}
export default Nookipedia;
No reviews yet. Be the first to rate this API.
Yes. Nookipedia uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
Animal Crossing data from the Nookipedia wiki - villagers, fish, bugs, sea creatures, art, fossils, and more. It exposes 30 endpoints over GET, including GET /nh/art, GET /nh/art/{artwork}, GET /nh/bugs.
Install the OmniStream SDK for your language and call Nookipedia through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for Nookipedia itself, and Nookipedia's own rate limits still apply to your provider key.
SkinAPI: Steam & CS2 data API.
All New Horizons clothing
Single New Horizons clothing
All New Horizons events
All New Horizons fish
Single New Horizons fish
All New Horizons fossil groups or individual fossil
Single New Horizons fossil group with individual fossils
All New Horizons fossil groups
Single New Horizons fossil group
All New Horizons fossils
Single New Horizons fossil
All New Horizons furniture
Single New Horizons furniture
All New Horizons interior items
Single New Horizons interior item
Miscellaneous New Horizons items
Single New Horizons miscellaneous item
All New Horizons photos and posters
Single New Horizons photo or poster
All New Horizons recipes
Single New Horizons recipe
All New Horizons sea creatures
Single New Horizons sea creature
All New Horizons tools
Single New Horizons tool
Villagers