Find an API

Search public APIs with auth details & Postman guides

← All APIs

Nookipedia

dodo · Company

Company No Auth Free & Open API

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

No authentication requiredFree to use with no key needed.

Sample Requests

GET Villagers

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

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

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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 All New Horizons artwork

Get a list of all artwork and their details in *Animal Crossing: New Horizons*.

https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/art?hasfake=example&thumbsize=1&excludedetails=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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 All New Horizons bugs

Get a list of all bugs and their details in *Animal Crossing: New Horizons*.

https://api.apis.guru/v2/specs/dodo.ac/1.5.0/nh/bugs?month=1&thumbsize=1&excludedetails=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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

Get Postman ↗
  1. 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?

Open documentation ↗