Nookipedia
dodo · Company
The Nookipedia API provides endpoints for retrieving *Animal Crossing* data pulled from the [Nookipedia wiki](https://nookipedia.com/wiki/Main_Page). A couple of the key benefits of using the Nookipedia API is access to data spanning the entire *Animal Crossing* series, as well as information that is constantly updated and expanding as editors work on the wiki. Access to the Nookipedia API requires obtaining a key. This is so we can manage our scale and provide better support for our user
Authentication
Sample Requests
This endpoint retrieves villager information from the entire *Animal Crossing* series, with the option to filter by species, personality, game, and/or birthday. Filters use the AND operator (e.g. asking for villagers who have species `frog` and personality `smug` will return all smug frogs). Note th
Hover any highlighted part to learn what it does
| X-API-KEY | example |
| Accept-Version | example |
curl -X GET "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers?game=example&name=test&species=alligator&birthday=example&nhdetails=example&thumbsize=1&birthmonth=example&personality=lazy&excludedetails=example" \ -H "X-API-KEY: example" \ -H "Accept-Version: example"
import requests
params = {
"game": "example",
"name": "test",
"species": "alligator",
"birthday": "example",
"nhdetails": "example",
"thumbsize": "1",
"birthmonth": "example",
"personality": "lazy",
"excludedetails": "example"
}
headers = {
"X-API-KEY": "example",
"Accept-Version": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers');
url.searchParams.set('game', 'example');
url.searchParams.set('name', 'test');
url.searchParams.set('species', 'alligator');
url.searchParams.set('birthday', 'example');
url.searchParams.set('nhdetails', 'example');
url.searchParams.set('thumbsize', '1');
url.searchParams.set('birthmonth', 'example');
url.searchParams.set('personality', 'lazy');
url.searchParams.set('excludedetails', 'example');
const response = await fetch(url, {
headers: {
'X-API-KEY': 'example',
'Accept-Version': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers")
q := baseURL.Query()
q.Set("game", "example")
q.Set("name", "test")
q.Set("species", "alligator")
q.Set("birthday", "example")
q.Set("nhdetails", "example")
q.Set("thumbsize", "1")
q.Set("birthmonth", "example")
q.Set("personality", "lazy")
q.Set("excludedetails", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("X-API-KEY", "example")
req.Header.Set("Accept-Version", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers")
uri.query = URI.encode_www_form({
"game" => "example",
"name" => "test",
"species" => "alligator",
"birthday" => "example",
"nhdetails" => "example",
"thumbsize" => "1",
"birthmonth" => "example",
"personality" => "lazy",
"excludedetails" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["X-API-KEY"] = "example"
req["Accept-Version"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/villagers?" . http_build_query([
"game" => "example",
"name" => "test",
"species" => "alligator",
"birthday" => "example",
"nhdetails" => "example",
"thumbsize" => "1",
"birthmonth" => "example",
"personality" => "lazy",
"excludedetails" => "example"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"X-API-KEY: example",
"Accept-Version: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Get a list of all artwork and their details in *Animal Crossing: New Horizons*.
Hover any highlighted part to learn what it does
| X-API-KEY | example |
| Accept-Version | example |
curl -X GET "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art?hasfake=example&thumbsize=1&excludedetails=example" \ -H "X-API-KEY: example" \ -H "Accept-Version: example"
import requests
params = {
"hasfake": "example",
"thumbsize": "1",
"excludedetails": "example"
}
headers = {
"X-API-KEY": "example",
"Accept-Version": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art');
url.searchParams.set('hasfake', 'example');
url.searchParams.set('thumbsize', '1');
url.searchParams.set('excludedetails', 'example');
const response = await fetch(url, {
headers: {
'X-API-KEY': 'example',
'Accept-Version': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art")
q := baseURL.Query()
q.Set("hasfake", "example")
q.Set("thumbsize", "1")
q.Set("excludedetails", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("X-API-KEY", "example")
req.Header.Set("Accept-Version", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art")
uri.query = URI.encode_www_form({
"hasfake" => "example",
"thumbsize" => "1",
"excludedetails" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["X-API-KEY"] = "example"
req["Accept-Version"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art?" . http_build_query([
"hasfake" => "example",
"thumbsize" => "1",
"excludedetails" => "example"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"X-API-KEY: example",
"Accept-Version: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Get a list of all bugs and their details in *Animal Crossing: New Horizons*.
Hover any highlighted part to learn what it does
| X-API-KEY | example |
| Accept-Version | example |
curl -X GET "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs?month=1&thumbsize=1&excludedetails=example" \ -H "X-API-KEY: example" \ -H "Accept-Version: example"
import requests
params = {
"month": "1",
"thumbsize": "1",
"excludedetails": "example"
}
headers = {
"X-API-KEY": "example",
"Accept-Version": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs');
url.searchParams.set('month', '1');
url.searchParams.set('thumbsize', '1');
url.searchParams.set('excludedetails', 'example');
const response = await fetch(url, {
headers: {
'X-API-KEY': 'example',
'Accept-Version': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs")
q := baseURL.Query()
q.Set("month", "1")
q.Set("thumbsize", "1")
q.Set("excludedetails", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("X-API-KEY", "example")
req.Header.Set("Accept-Version", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs")
uri.query = URI.encode_www_form({
"month" => "1",
"thumbsize" => "1",
"excludedetails" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["X-API-KEY"] = "example"
req["Accept-Version"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs?" . http_build_query([
"month" => "1",
"thumbsize" => "1",
"excludedetails" => "example"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"X-API-KEY: example",
"Accept-Version: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Nookipedia?
Nookipedia is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Nookipedia is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?