diff --git a/nookipedia/api/villagers.py b/nookipedia/api/villagers.py index ed48189..3c01294 100644 --- a/nookipedia/api/villagers.py +++ b/nookipedia/api/villagers.py @@ -7,6 +7,28 @@ router = Blueprint("villagers", __name__) +LANG_FIELDS = ( + "villager.no_localization," + "villager.engb_name=en_gb," + "villager.de_name=de," + "villager.es_name=es_eu," + "villager.esl_name=es_la," + "villager.fr_name=fr_eu," + "villager.frq_name=fr_ca," + "villager.it_name=it," + "villager.ja_name=ja," + "villager.ja_name_r=ja_romanized," + "villager.ko_name=ko," + "villager.ko_name_r=ko_romanized," + "villager.nl_name=nl," + "villager.ru_name=ru," + "villager.ru_name_r=ru_romanized," + "villager.zh_name=zh_simplified," + "villager.zh_name_r=zh_simplified_romanized," + "villager.zht_name=zh_traditional," + "villager.zht_name_r=zh_traditional_romanized" +) + @router.route("/villagers", methods=["GET"]) def get_villager_all(): @@ -15,13 +37,19 @@ def get_villager_all(): limit = VILLAGER_LIMIT tables = "villager" join = "" + langnames = request.args.get("langnames") == "true" + if request.args.get("excludedetails") == "true": fields = "name" elif request.args.get("nhdetails") == "true": tables = "villager,nh_villager,nh_house" join = "villager._pageName=nh_villager._pageName,villager._pageName=nh_house._pageName" fields = "villager.name,villager._pageName=url,villager.name,villager.alt_name,villager.title_color,villager.text_color,villager.id,villager.image_url,villager.species,villager.personality,villager.gender,villager.birthday_month,villager.birthday_day,villager.sign,villager.quote,villager.phrase,villager.prev_phrase,villager.prev_phrase2,villager.clothing,villager.islander,villager.debut,villager.dnm,villager.ac,villager.e_plus,villager.ww,villager.cf,villager.nl,villager.wa,villager.nh,villager.film,villager.hhd,villager.pc,nh_villager.image_url=nh_image_url,nh_villager.photo_url=nh_photo_url,nh_villager.icon_url=nh_icon_url,nh_villager.quote=nh_quote,nh_villager.sub_personality=nh_sub-personality,nh_villager.catchphrase=nh_catchphrase,nh_villager.clothing=nh_clothing,nh_villager.clothing_variation=nh_clothing_variation,nh_villager.fav_style1=nh_fav_style1,nh_villager.fav_style2=nh_fav_style2,nh_villager.fav_color1=nh_fav_color1,nh_villager.fav_color2=nh_fav_color2,nh_villager.hobby=nh_hobby,nh_villager.umbrella=nh_umbrella,nh_house.interior_image_url=nh_house_interior_url,nh_house.exterior_image_url=nh_house_exterior_url,nh_house.wallpaper=nh_wallpaper,nh_house.flooring=nh_flooring,nh_house.music=nh_music,nh_house.music_note=nh_music_note" + if langnames: + fields += "," + LANG_FIELDS else: fields = "name,_pageName=url,alt_name,title_color,text_color,id,image_url,species,personality,gender,birthday_month,birthday_day,sign,quote,phrase,prev_phrase,prev_phrase2,clothing,islander,debut,dnm,ac,e_plus,ww,cf,nl,wa,nh,film,hhd,pc" + if langnames: + fields += "," + LANG_FIELDS return get_villager_list(limit, tables, join, fields) diff --git a/nookipedia/models.py b/nookipedia/models.py index 7f03608..89f7c5d 100644 --- a/nookipedia/models.py +++ b/nookipedia/models.py @@ -119,6 +119,53 @@ def format_villager(data): del obj[i] obj["appearances"] = games_array + # Place language name translations in object, if applicable: + if request.args.get("langnames") == "true" and request.args.get("excludedetails") != "true": + lang_keys = [ + "no_localization", + "en_gb", + "de", + "es_eu", + "es_la", + "fr_eu", + "fr_ca", + "it", + "ja", + "ja_romanized", + "ko", + "ko_romanized", + "nl", + "ru", + "ru_romanized", + "zh_simplified", + "zh_simplified_romanized", + "zh_traditional", + "zh_traditional_romanized", + ] + obj["name_translations"] = { + "no_localization": as_bool(obj["no_localization"]), + "en_gb": obj["en_gb"] or None, + "de": obj["de"] or None, + "es_eu": obj["es_eu"] or None, + "es_la": obj["es_la"] or None, + "fr_eu": obj["fr_eu"] or None, + "fr_ca": obj["fr_ca"] or None, + "it": obj["it"] or None, + "ja": obj["ja"] or None, + "ja_romanized": obj["ja_romanized"] or None, + "ko": obj["ko"] or None, + "ko_romanized": obj["ko_romanized"] or None, + "nl": obj["nl"] or None, + "ru": obj["ru"] or None, + "ru_romanized": obj["ru_romanized"] or None, + "zh_simplified": obj["zh_simplified"] or None, + "zh_simplified_romanized": obj["zh_simplified_romanized"] or None, + "zh_traditional": obj["zh_traditional"] or None, + "zh_traditional_romanized": obj["zh_traditional_romanized"] or None, + } + for key in lang_keys: + del obj[key] + return data diff --git a/static/doc.json b/static/doc.json new file mode 100644 index 0000000..2347fa5 --- /dev/null +++ b/static/doc.json @@ -0,0 +1,6341 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Nookipedia", + "description": "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 users. To request access to the API, please fill out [this form](https://forms.gle/wLwtXLerKhfDrRLY8).", + "version": "1.7.0" + }, + "servers": [ + { + "url": "https://api.nookipedia.com/" + } + ], + "paths": { + "/villagers": { + "get": { + "summary": "Villagers", + "description": "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 that villagers only include the animals that act as residents. Special characters, such as Tom Nook and Isabelle, are not accessed through this endpoint.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "name", + "required": false, + "schema": { + "type": "string" + }, + "description": "Villager name. For most names you will get back an array with one object, but note that names are not a unique identifier across the series, as there are 3 names that are shared by multiple villagers (Lulu, Petunia, Carmen). For those 3 names you will get back an array with 2 objects. How you disambiguate between these villagers is up to you." + }, + { + "in": "query", + "name": "species", + "required": false, + "schema": { + "type": "string", + "enum": [ + "alligator", + "anteater", + "bear", + "bear cub", + "bird", + "bull", + "cat", + "cub", + "chicken", + "cow", + "deer", + "dog", + "duck", + "eagle", + "elephant", + "frog", + "goat", + "gorilla", + "hamster", + "hippo", + "horse", + "koala", + "kangaroo", + "lion", + "monkey", + "mouse", + "octopus", + "ostrich", + "penguin", + "pig", + "rabbit", + "rhino", + "rhinoceros", + "sheep", + "squirrel", + "tiger", + "wolf" + ] + }, + "description": "Retrieve villagers of a certain species." + }, + { + "in": "query", + "name": "personality", + "required": false, + "schema": { + "type": "string", + "enum": [ + "big sister", + "cranky", + "jock", + "lazy", + "normal", + "peppy", + "sisterly", + "smug", + "snooty" + ] + }, + "description": "Retrieve villagers with a certain personality. For 'sisterly', note that the community often also calls it 'uchi' or 'big sister'." + }, + { + "in": "query", + "name": "game", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DNM", + "AC", + "E_PLUS", + "WW", + "CF", + "NL", + "WA", + "NH", + "FILM", + "HHD", + "PC" + ] + } + }, + "description": "Retrieve villagers that appear in all listed games. For example, if you want only villagers that appear in both *New Horizons* and *Pocket Camp*, you would send in `?game=nh&game=pc`." + }, + { + "in": "query", + "name": "birthmonth", + "required": false, + "schema": { + "type": "string" + }, + "description": "Retrieve villagers born in a specific month. Value may be the month's name (`jan`, `january`) or the integer representing the month (`01`, `1`)." + }, + { + "in": "query", + "name": "birthday", + "required": false, + "schema": { + "type": "string" + }, + "description": "Use with `birthmonth` to get villager(s) born on a specific day. Value should be an int, 1 through 31." + }, + { + "in": "query", + "name": "nhdetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, an `nh_details` object will be included that contains *New Horizons* details about the villager. If the villager does not appear in *New Horizons*, the returned `nh_details` field will be set to null." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only villager names are returned. Instead of an array of objects with all details, the return will be an array of strings." + }, + { + "in": "query", + "name": "langnames", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, a `name_translations` object will be included containing the villager's name in all available languages and regional variants. Has no effect when `excludedetails` is set to `true`." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of villagers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Villager" + } + } + } + } + }, + "400": { + "description": "One of the inputs (usually query parameters) has an invalid value.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error400" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fish": { + "get": { + "summary": "All New Horizons fish", + "description": "Get a list of all fish and their details in *New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "month", + "required": false, + "schema": { + "type": "string" + }, + "description": "Retrieve only the fish that are available in a specific month. Value may be the month's name (`jan`, `january`), the integer representing the month (`01`, `1`), or `current` for the current month. When `current` is specified, the return body will be an object with two arrays inside, one called `north` and the other `south` containing the fish available in each respective hemisphere. Note that the current month is calculated based off the API server's time, so it may be slightly off for you at the beginning or end of the month." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only fish names are returned. Instead of an array of objects with all details, the return will be an array of strings. This is particularly useful when used with the `month` filter, for users who want just a list of fish in a given month but not all their respective details." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of fish.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHFish" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fish/{fish}": { + "get": { + "summary": "Single New Horizons fish", + "description": "Retrieve information about a specific fish in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "fish", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the fish you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the fish.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHFish" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "404": { + "description": "Could not find the specified fish.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error404" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/bugs": { + "get": { + "summary": "All New Horizons bugs", + "description": "Get a list of all bugs and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "month", + "required": false, + "schema": { + "type": "string" + }, + "description": "Retrieve only the bug that are available in a specific month. Value may be the month's name (`jan`, `january`), the integer representing the month (`01`, `1`), or `current` for the current month. When `current` is specified, the return body will be an object with two arrays inside, one called `north` and the other `south` containing the bug available in each respective hemisphere. Note that the current month is calculated based off the API server's time, so it may be slightly off for you at the beginning or end of the month." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only bug names are returned. Instead of an array of objects with all details, the return will be an array of strings. This is particularly useful when used with the `month` filter, for users who want just a list of bugs in a given month but not all their respective details." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of bugs.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHBug" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/bugs/{bug}": { + "get": { + "summary": "Single New Horizons bug", + "description": "Retrieve information about a specific bug in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "bug", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the bug you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the bug.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHBug" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "404": { + "description": "Could not find the specified bug.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error404" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/sea": { + "get": { + "summary": "All New Horizons sea creatures", + "description": "Get a list of all sea creatures and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "month", + "required": false, + "schema": { + "type": "string" + }, + "description": "Retrieve only the sea creature that are available in a specific month. Value may be the month's name (`jan`, `january`), the integer representing the month (`01`, `1`), or `current` for the current month. When `current` is specified, the return body will be an object with two arrays inside, one called `north` and the other `south` containing the sea creature available in each respective hemisphere. Note that the current month is calculated based off the API server's time, so it may be slightly off for you at the beginning or end of the month." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only sea creature names are returned. Instead of an array of objects with all details, the return will be an array of strings. This is particularly useful when used with the `month` filter, for users who want just a list of sea creatures in a given month but not all their respective details." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of sea creatures.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHSeaCreature" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/sea/{sea_creature}": { + "get": { + "summary": "Single New Horizons sea creature", + "description": "Retrieve information about a specific sea creature in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "sea_creature", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the sea creature you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the sea creature.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHSeaCreature" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "404": { + "description": "Could not find the specified sea creature.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error404" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/events": { + "get": { + "summary": "All New Horizons events", + "description": "Get a list of events and dates in *Animal Crossing: New Horizons*, filterable to specific years, months, or days. Data is available for the current and next year.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "date", + "required": false, + "schema": { + "type": "string" + }, + "description": "Specify a specific date (in the current or next year) to retrieve events for. Accepts many date formats, such as `YYYY-MM-DD` or `Month Day, Year`, as well as `today` to retrieve the current day's events (UTC time)." + }, + { + "in": "query", + "name": "year", + "required": false, + "schema": { + "type": "string" + }, + "description": "Specify the year to retrieve events for. Must be the current or next year." + }, + { + "in": "query", + "name": "month", + "required": false, + "schema": { + "type": "string" + }, + "description": "Specify the month to retrieve events for (accepts multiple formats, such as `Oct`, `October`, or `10`). Most likely want to use alongside `year`, otherwise events in both the current and next year are returned." + }, + { + "in": "query", + "name": "day", + "required": false, + "schema": { + "type": "integer" + }, + "description": "Specify the day of the month to retrieve events for." + } + ], + "responses": { + "200": { + "description": "A JSON array of events.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHEvent" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/art": { + "get": { + "summary": "All New Horizons artwork", + "description": "Get a list of all artwork and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "hasfake", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only artwork that has a fake will be returned. When set to `false`, only artwork without fakes will be returned." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of artwork.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHArtwork" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/art/{artwork}": { + "get": { + "summary": "Single New Horizons artwork", + "description": "Retrieve information about a specific artwork in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "artwork", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the artwork you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the artwork.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHArtwork" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/furniture": { + "get": { + "summary": "All New Horizons furniture", + "description": "Get a list of all furniture and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string", + "enum": [ + "Housewares", + "Miscellaneous", + "Wall-mounted", + "Ceiling decor" + ] + }, + "description": "Specify the category of furniture to return (housewares, miscellaneous, wall-mounted, or ceiling decor)." + }, + { + "in": "query", + "name": "color", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + }, + "description": "Return furniture that matches the provided colors (may specify one or two colors)." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only furniture names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of furniture.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHFurniture" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/furniture/{furniture}": { + "get": { + "summary": "Single New Horizons furniture", + "description": "Retrieve information about a specific furniture in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "furniture", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the furniture you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the furniture.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHFurniture" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/clothing": { + "get": { + "summary": "All New Horizons clothing", + "description": "Get a list of all clothing items and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string", + "enum": [ + "Tops", + "Bottoms", + "Dress-up", + "Headwear", + "Accessories", + "Socks", + "Shoes", + "Bags", + "Umbrellas" + ] + }, + "description": "Specify the category of clothing to return." + }, + { + "in": "query", + "name": "color", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + }, + "description": "Return clothing that matches the provided colors (may specify one or two colors). Colors are used for gifting villagers." + }, + { + "in": "query", + "name": "style", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Active", + "Cool", + "Cute", + "Elegant", + "Gorgeous", + "Simple" + ] + } + }, + "description": "Return clothing that matches the provided styles (may specify one or two styles). Styles are used for gifting villagers." + }, + { + "in": "query", + "name": "labeltheme", + "required": false, + "schema": { + "type": "string", + "enum": [ + "Comfy", + "Everyday", + "Fairy tale", + "Formal", + "Goth", + "Outdoorsy", + "Party", + "Sporty", + "Theatrical", + "Vacation", + "Work" + ] + }, + "description": "Return clothing that have the specified Label theme. This is used for completing the requested outfit theme for [Label](https://nookipedia.com/wiki/Label) when she visits the player's island." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only clothing names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of clothing.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHClothing" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/clothing/{clothing}": { + "get": { + "summary": "Single New Horizons clothing", + "description": "Retrieve information about a specific clothing item in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "clothing", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the clothing you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the clothing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHClothing" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/interior": { + "get": { + "summary": "All New Horizons interior items", + "description": "Get a list of all interior items (flooring, wallpaper, and rugs) and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "category", + "required": false, + "schema": { + "type": "string", + "enum": [ + "Rugs", + "Wallpaper", + "Floors" + ] + }, + "description": "Specify the category of interior items to return (rugs, wallpaper, or floors)." + }, + { + "in": "query", + "name": "color", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + }, + "description": "Return furniture that matches the provided colors (may specify one or two colors)." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only interior item names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of interior items.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHInterior" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/interior/{item}": { + "get": { + "summary": "Single New Horizons interior item", + "description": "Retrieve information about a specific interior item in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "item", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the interior item you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "color", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + }, + "description": "Return furniture that matches the provided colors (may specify one or two colors)." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the interior item.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHInterior" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/tools": { + "get": { + "summary": "All New Horizons tools", + "description": "Get a list of all tools and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only tool names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of interior items.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHTool" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/tools/{tool}": { + "get": { + "summary": "Single New Horizons tool", + "description": "Retrieve information about a specific tool in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "tool", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the interior item you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the tool.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHTool" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/photos": { + "get": { + "summary": "All New Horizons photos and posters", + "description": "Get a list of all character photos+posters and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only item names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of photos and posters.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHPhoto" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/photos/{item}": { + "get": { + "summary": "Single New Horizons photo or poster", + "description": "Retrieve information about a character photo or poster in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "item", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the photo or poster you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the photo or poster.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHPhoto" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/items": { + "get": { + "summary": "Miscellaneous New Horizons items", + "description": "Get a list of all miscellaneous items (such as materials, star fragments, fruits, fences, and plants) and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only item names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of items.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHItem" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/items/{item}": { + "get": { + "summary": "Single New Horizons miscellaneous item", + "description": "Retrieve information about a miscellaneous item (such as materials, star fragments, fruits, fences, and plants) in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "item", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the interior item you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the item.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHItem" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/recipes": { + "get": { + "summary": "All New Horizons recipes", + "description": "Get a list of all recipes and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "material", + "required": false, + "schema": { + "type": "string" + }, + "description": "Specify a material to only get recipes that use that material. You can specify `material` up to six times (no recipe uses more than six materials)." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only recipe names are returned. Instead of an array of objects with all details, the return will be an array of strings." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of recipes.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHRecipe" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/recipes/{item}": { + "get": { + "summary": "Single New Horizons recipe", + "description": "Retrieve information about a specific recipe in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "item", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the item you wish to retrieve recipe information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the recipe.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHRecipe" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/individuals": { + "get": { + "summary": "All New Horizons fossils", + "description": "Get a list of all the individual fossils in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of individual fossils.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHIndividualFossil" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/individuals/{fossil}": { + "get": { + "summary": "Single New Horizons fossil", + "description": "Retrieve information about a specific individual fossil in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "fossil", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the individual fossil you wish to retrieve fossil information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the individual fossil.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHIndividualFossil" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/groups": { + "get": { + "summary": "All New Horizons fossil groups", + "description": "Get a list of all the fossil groups in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of fossil groups.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHFossilGroup" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/groups/{fossil_group}": { + "get": { + "summary": "Single New Horizons fossil group", + "description": "Retrieve information about a specific fossil group in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "fossil_group", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the fossil group you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the fossil group.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHFossilGroup" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/all": { + "get": { + "summary": "All New Horizons fossil groups or individual fossil", + "description": "Get a list of all the fossil groups with their respective individual fossils in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON array of fossil groups.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHFossilGroupWithIndividualFossilsNoMatched" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/fossils/all/{fossil}": { + "get": { + "summary": "Single New Horizons fossil group with individual fossils", + "description": "Retrieve information about a specific fossil group with their respective individual fossils in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "fossil", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the fossil OR fossil group you wish to retrieve information about. If a fossil is provided, a fossil group that the specified fossil belongs to will be returned." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the fossil group.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHFossilGroupWithIndividualFossils" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/gyroids": { + "get": { + "summary": "All New Horizons gyroids", + "description": "Get a list of all gyroid items and their details in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "sound", + "required": false, + "schema": { + "type": "string", + "enum": [ + "crash", + "drum set", + "hi-hat", + "kick", + "melody", + "snare" + ] + }, + "description": "Specify the sound of the gyroid." + }, + { + "in": "query", + "name": "excludedetails", + "required": false, + "schema": { + "type": "string" + }, + "description": "When set to `true`, only gyroid names are returned. Instead of an array of objects with all details, the return will be an array of strings." + } + ], + "responses": { + "200": { + "description": "A JSON array of gyroids.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NHGyroid" + } + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + }, + "/nh/gyroids/{gyroid}": { + "get": { + "summary": "Single New Horizons gyroid", + "description": "Retrieve information about a specific gyroid item in *Animal Crossing: New Horizons*.", + "parameters": [ + { + "in": "path", + "name": "gyroid", + "required": true, + "schema": { + "type": "string" + }, + "description": "The name of the gyroid you wish to retrieve information about." + }, + { + "in": "header", + "name": "X-API-KEY", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Your UUID secret key, granted to you by the Nookipedia team. Required for accessing the API." + }, + { + "in": "header", + "name": "Accept-Version", + "required": true, + "schema": { + "type": "string" + }, + "description": "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." + }, + { + "in": "query", + "name": "thumbsize", + "required": false, + "schema": { + "type": "integer" + }, + "description": "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." + } + ], + "responses": { + "200": { + "description": "A JSON object describing the gyroid.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NHGyroid" + } + } + } + }, + "401": { + "description": "Failed to authenticate user from `X-API-KEY`.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error401" + } + } + } + }, + "500": { + "description": "There was an error fetching the requested data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error500" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Error400": { + "description": "Bad request (often an invalid input).", + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "Failed to identify the provided month filter.", + "description": "A brief title describing the error." + }, + "details": { + "type": "string", + "example": "Provided month filter jonuary was not recognized as a valid month.", + "description": "A more in-depth description of the issue, including parameters and/or error text when available." + } + } + }, + "Error401": { + "description": "Unauthorized.", + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "Failed to validate UUID.", + "description": "A brief title describing the error." + }, + "details": { + "type": "string", + "example": "UUID is either missing or invalid; or, unspecified server occured.", + "description": "A more in-depth description of the issue, including parameters and/or error text when available." + } + } + }, + "Error404": { + "description": "Not found.", + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "No data was found for the given query.", + "description": "A brief title describing the error." + }, + "details": { + "type": "string", + "example": "MediaWiki Cargo request succeeded by nothing was returned for the parameters: {}", + "description": "A more in-depth description of the issue, including parameters and/or error text when available." + } + } + }, + "Error500": { + "description": "Internal server error.", + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "API experienced a fatal error.", + "description": "A brief title describing the error." + }, + "details": { + "type": "string", + "example": "Details unknown.", + "description": "A more in-depth description of the issue, including parameters and/or error text when available." + } + } + }, + "Villager": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Ribbot", + "description": "Link to the respective Nookipedia article." + }, + "name": { + "type": "string", + "example": "Ribbot", + "description": "Name of the villager." + }, + "alt_name": { + "type": "string", + "example": "", + "description": "A previous name for the villager. A very small number of villagers changed names between earlier games, such as Sally being known as Hazel in the original game." + }, + "title_color": { + "type": "string", + "example": "bfbfbf", + "description": "The HTML color code of the background of the villager's name badge that appears above their dialogue box when spoken to in-game. Note that to date, only *New Horizons* villagers have this field populated. This field may be useful for styling, such as the accent color for a Discord embed." + }, + "text_color": { + "type": "string", + "example": "5e5e5e", + "description": "The HTML color code of the text of the villager's name badge that appears above their dialogue box when spoken to in-game. Note that to date, only *New Horizons* villagers have this field populated." + }, + "id": { + "type": "string", + "example": "flg01", + "description": "The game's internal identifier for the villager. Not all villagers have IDs; villagers who appeared in any game including or after *Wild World* have a consistent ID between games." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/9/94/Ribbot_NH.png", + "description": "Image of the villager from the latest game the villager appeared in." + }, + "species": { + "type": "string", + "example": "Frog", + "description": "The villager's species.", + "enum": [ + "Alligator", + "Anteater", + "Bear", + "Bear cub", + "Bird", + "Bull", + "Cat", + "Chicken", + "Cow", + "Deer", + "Dog", + "Duck", + "Eagle", + "Elephant", + "Frog", + "Goat", + "Gorilla", + "Hamster", + "Hippo", + "Horse", + "Koala", + "Kangaroo", + "Lion", + "Monkey", + "Mouse", + "Octopus", + "Ostrich", + "Penguin", + "Pig", + "Rabbit", + "Rhinoceros", + "Sheep", + "Squirrel", + "Tiger", + "Wolf" + ] + }, + "personality": { + "type": "string", + "example": "Jock", + "description": "The villager's personality. Note that there are no official in-game personality names; these are names that are commonly used by the community. In the case of 'sisterly', other common names include 'big sis' and 'uchi'.", + "enum": [ + "Big sister", + "Cranky", + "Jock", + "Lazy", + "Normal", + "Peppy", + "Smug", + "Snooty" + ] + }, + "gender": { + "type": "string", + "example": "Male", + "description": "Gender of the villager. In *Animal Crossing*, only male and female are used.", + "enum": [ + "Male", + "Female" + ] + }, + "birthday_month": { + "type": "string", + "example": "February", + "description": "Birthday month of the villager. Note that villager birthdays were not introduced until *Wild World*. For villagers who didn't appear in *Wild World* or any later games, this field will be an empty string." + }, + "birthday_day": { + "type": "string", + "example": "13", + "description": "Birthday day of the villager. Note that villager birthdays were not introduced until *Wild World*. For villagers who didn't appear in *Wild World* or any later games, this field will be an empty string." + }, + "sign": { + "type": "string", + "example": "Aquarius", + "description": "The villager's astrological star sign.", + "enum": [ + "Aries", + "Taurus", + "Gemini", + "Cancer", + "Leo", + "Virgo", + "Libra", + "Scorpio", + "Sagittarius", + "Capricorn", + "Aquarius", + "Pisces" + ] + }, + "quote": { + "type": "string", + "example": "Never rest, never rust.", + "description": "The villager's quote as it appears on the back of their in-game portrait item. This will be the quote from the latest game (i.e. if the villager had varying quotes between *Wild World* and *New Horizons*, this will be the *New Horizons* quote). For villagers from older games that do not have a quote, this field will be an empty string." + }, + "phrase": { + "type": "string", + "example": "zzrrbbit", + "description": "The villager's default phrase they use throughout conversation. This will be the phrase from the latest game (i.e. if the villager had varying phrases between *Wild World* and *New Horizons*, this will be the *New Horizons* quote)." + }, + "prev_phrases": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "toady" + ], + "description": "Any phrases used in previous *Animal Crossing* installations. May be empty." + }, + "clothing": { + "type": "string", + "example": "Simple Parka", + "description": "The villager's default clothing. This will be the clothing from the latest game (i.e. if the villager had varying phrases between *Wild World* and *New Horizons*, this will be the *New Horizons* clothing)." + }, + "islander": { + "type": "boolean", + "example": false, + "description": "Whether the villager was an island in *Animal Crossing* for GameCube. Only a small number of villagers (36) were islanders." + }, + "debut": { + "type": "string", + "example": "DNM", + "description": "The first *Animal Crossing* game the villager appeared in. `DNM` is *Doubutsu no Mori* for the Nintendo 64 (Japan-exclusive); `AC` is *Animal Crossing* for GameCube; `E_PLUS` is *Doubutsu no Mori e+* for GameCube (expanded port of AC, Japan-exclusive); `WW` is *Wild World* for the DS; `CF` is *City Folk* for Wii; `NL` is *New Leaf* for 3DS; `WA` is *Welcome amiibo*, the *New Leaf* expansion; `NH` is *New Horizons* for Switch; `FILM` is the *Doubutsu no Mori* Japan-exclusive film; `HHD` is *Happy Home Designer* for the Wii; and `PC` is *Pocket Camp* for mobile.", + "enum": [ + "DNM", + "AC", + "E_PLUS", + "WW", + "CF", + "NL", + "WA", + "NH", + "FILM", + "HHD", + "PC" + ] + }, + "appearances": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DNM", + "AC", + "E_PLUS", + "WW", + "CF", + "NL", + "WA", + "NH", + "FILM", + "HHD", + "PC" + ] + }, + "example": [ + "DNM", + "AC", + "E_PLUS", + "WW", + "CF", + "NL", + "WA", + "NH", + "HHD", + "PC" + ], + "description": "List of official media the villager appeared in. `DNM` is *Doubutsu no Mori* for the Nintendo 64 (Japan-exclusive); `AC` is *Animal Crossing* for GameCube; `E_PLUS` is *Doubutsu no Mori e+* for GameCube (expanded port of AC, Japan-exclusive); `WW` is *Wild World* for the DS; `CF` is *City Folk* for Wii; `NL` is *New Leaf* for 3DS; `WA` is *Welcome amiibo*, the *New Leaf* expansion; `NH` is *New Horizons* for Switch; `FILM` is the *Doubutsu no Mori* Japan-exclusive film; `HHD` is *Happy Home Designer* for the Wii; and `PC` is *Pocket Camp* for mobile." + }, + "nh_details": { + "type": "object", + "description": "An object that holds villager data specific to *New Horizons*. If the villager does not appear in *New Horizons*, this field will be set to null.", + "properties": { + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/9/94/Ribbot_NH.png", + "description": "Image of the villager from *New Horizons*." + }, + "photo_url": { + "type": "string", + "example": "https://dodo.ac/np/images/0/03/RibbotPicACNH.png", + "description": "The villager's photo, received by the player after attaining a certain friendship level. See https://nookipedia.com/wiki/Category:New_Horizons_pictures for full list." + }, + "icon_url": { + "type": "string", + "example": "https://dodo.ac/np/images/8/87/Ribbot_NH_Villager_Icon.png", + "description": "The villager's icon of their head. See https://nookipedia.com/wiki/Category:New_Horizons_character_icons for full list." + }, + "quote": { + "type": "string", + "example": "Never rest, never rust.", + "description": "The villager's quote, as found on the back of their in-game photo." + }, + "sub-personality": { + "type": "string", + "example": "B", + "description": "Each personality in *New Horizons* has two sub-personalities, currently referred to as just A and B. The effect of a sub-personality is currently unknown.", + "enum": [ + "A", + "B" + ] + }, + "catchphrase": { + "type": "string", + "example": "zzrrbbit", + "description": "The default phrase a villager will use when speaking to the player." + }, + "clothing": { + "type": "string", + "example": "Simple Parka", + "description": "The default clothing that the villager wears." + }, + "clothing_variation": { + "type": "string", + "example": "Light Blue", + "description": "The variation of the clothing (usually a color)." + }, + "fav_styles": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "Simple", + "Active" + ], + "description": "The villager's favorite clothing styles." + }, + "fav_colors": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "Blue", + "Aqua" + ], + "description": "The villager's favorite colors (giving the villager a gift with one of their favorite colors increases friendship points)." + }, + "hobby": { + "type": "string", + "example": "Fitness", + "description": "The villager's primary hobby, which determines most of the activities they will do around the island (e.g. education villagers will frequently read books and visit the museum). Learn more at https://nookipedia.com/wiki/Hobbies", + "enum": [ + "Education", + "Fashion", + "Fitness", + "Music", + "Nature", + "Play" + ] + }, + "house_interior_url": { + "type": "string", + "example": "https://dodo.ac/np/images/8/86/House_of_Ribbot_NH.png", + "description": "A screenshot of the villager's house interior." + }, + "house_exterior_url": { + "type": "string", + "example": "https://dodo.ac/np/images/4/42/House_of_Ribbot_NH_Model.png", + "description": "A rendered model of the villager's house exterior. Note that this is not an official Nintendo asset, but a render based of the in-game model." + }, + "house_wallpaper": { + "type": "string", + "example": "Circuit-Board Wall", + "description": "The wallpaper in the villager's house." + }, + "house_flooring": { + "type": "string", + "example": "Future-Tech Flooring", + "description": "The flooring in the villager's house." + }, + "house_music": { + "type": "string", + "example": "K.K. Technopop", + "description": "The music in the villager's house." + }, + "house_music_note": { + "type": "string", + "example": "", + "description": "Any notes about the villager's music. If populated, this is usually \"Does not contain a stereo initially\", meaning that the villager's house will not play music unless provided with a stereo." + }, + "umbrella": { + "type": "string", + "example": "bat umbrella", + "description": "The name of the umbrella used by the villager." + } + } + }, + "name_translations": { + "type": "object", + "nullable": true, + "description": "An object containing the villager's name in all available languages and regional variants. Only present when `langnames=true` is set on the request. Fields are `null` if no official localization exists for that language.", + "properties": { + "no_localization": { + "type": "boolean", + "example": false, + "description": "When `true`, this villager has no official name in any language other than Japanese." + }, + "en_gb": { + "type": "string", + "nullable": true, + "example": null, + "description": "The villager's name in English (United Kingdom). `null` if no regional variant exists." + }, + "de": { + "type": "string", + "nullable": true, + "example": "Jens", + "description": "The villager's name in German." + }, + "es_eu": { + "type": "string", + "nullable": true, + "example": "Arándano", + "description": "The villager's name in Spanish (Europe)." + }, + "es_la": { + "type": "string", + "nullable": true, + "example": null, + "description": "The villager's name in Spanish (Latin America). `null` if no regional variant exists." + }, + "fr_eu": { + "type": "string", + "nullable": true, + "example": "Robert", + "description": "The villager's name in French (Europe)." + }, + "fr_ca": { + "type": "string", + "nullable": true, + "example": null, + "description": "The villager's name in French (Canada). `null` if no regional variant exists." + }, + "it": { + "type": "string", + "nullable": true, + "example": "Bob", + "description": "The villager's name in Italian." + }, + "ja": { + "type": "string", + "nullable": true, + "example": "ニコバン", + "description": "The villager's name in Japanese." + }, + "ja_romanized": { + "type": "string", + "nullable": true, + "example": "Nikoban", + "description": "Romanized transliteration of the villager's Japanese name using the Hepburn system." + }, + "ko": { + "type": "string", + "nullable": true, + "example": "히죽", + "description": "The villager's name in Korean." + }, + "ko_romanized": { + "type": "string", + "nullable": true, + "example": "Hijuk", + "description": "Romanized transliteration of the villager's Korean name using the Revised Romanization of Korean." + }, + "nl": { + "type": "string", + "nullable": true, + "example": "Bob", + "description": "The villager's name in Dutch." + }, + "ru": { + "type": "string", + "nullable": true, + "example": "Боб", + "description": "The villager's name in Russian." + }, + "ru_romanized": { + "type": "string", + "nullable": true, + "example": "Bob", + "description": "Romanized transliteration of the villager's Russian name using the GOST 7.79-2000 standard." + }, + "zh_simplified": { + "type": "string", + "nullable": true, + "example": "阿判", + "description": "The villager's name in Chinese (Simplified)." + }, + "zh_simplified_romanized": { + "type": "string", + "nullable": true, + "example": "Āpàn", + "description": "Romanized transliteration of the villager's Simplified Chinese name using the Pinyin system." + }, + "zh_traditional": { + "type": "string", + "nullable": true, + "example": "阿判", + "description": "The villager's name in Chinese (Traditional)." + }, + "zh_traditional_romanized": { + "type": "string", + "nullable": true, + "example": "Āpàn", + "description": "Romanized transliteration of the villager's Traditional Chinese name using the Pinyin system." + } + } + } + } + }, + "NHFish": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Cherry Salmon", + "description": "Link to the respective Nookipedia article." + }, + "name": { + "type": "string", + "example": "Cherry Salmon", + "description": "Name of the fish." + }, + "number": { + "type": "integer", + "example": 27, + "description": "In-game fish number, marking position in the Critterpedia." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/d/db/Cherry_Salmon_NH_Icon.png", + "description": "Image of the fish." + }, + "render_url": { + "type": "string", + "example": "https://dodo.ac/np/images/c/c0/Cherry_Salmon_NH.png", + "description": "Render of the fish." + }, + "location": { + "type": "string", + "example": "River (clifftop)", + "description": "Short descriptor of where the fish can be found." + }, + "shadow_size": { + "type": "string", + "example": "Small", + "enum": [ + "X-Small", + "Small", + "Medium", + "Medium w/Fin", + "Large", + "Large w/Fin", + "X-Large", + "XX-Large", + "Long" + ], + "description": "The size of the fish's shadow." + }, + "rarity": { + "type": "string", + "example": "Uncommon", + "description": "How rare the fish is. Note that this field is currently empty for most fish as we do not yet know how exactly fish rarities are calculated in the game code." + }, + "total_catch": { + "type": "integer", + "example": 100, + "description": "The total number of fish the player has to have caught before this fish will start spawning." + }, + "sell_nook": { + "type": "integer", + "example": 1000, + "description": "The number of Bells the fish can be sold to Nook's store for." + }, + "sell_cj": { + "type": "integer", + "example": 1500, + "description": "The number of Bells the fish can be sold to C.J. for. This value is always 1.5x that of `sell_nook`." + }, + "tank_width": { + "type": "number", + "format": "float", + "example": 1, + "description": "The width of the tank when the fish is placed as a furniture item." + }, + "tank_length": { + "type": "number", + "format": "float", + "example": 1, + "description": "The length of the tank when the fish is placed as a furniture item." + }, + "catchphrases": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "I caught a cherry salmon! It's the perfect topper for a marlin sundae!" + ], + "description": "An array of possible catchphrases the player says after catching the fish. Most critters have just one, but some can have multiple." + }, + "north": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "Mar – Jun", + "time": "4 PM – 9 AM" + }, + { + "months": "Sep – Nov", + "time": "All day" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the northern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "2": { + "type": "string" + }, + "3": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + } + }, + "example": { + "1": "NA", + "2": "NA", + "3": "4 PM – 9 AM", + "4": "4 PM – 9 AM", + "5": "4 PM – 9 AM", + "6": "4 PM – 9 AM", + "7": "NA", + "8": "NA", + "9": "All day", + "10": "All day", + "11": "All day", + "12": "NA" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Mar – Jun; Sep – Nov", + "description": "The months the fish is available for in the Northern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 3, + 4, + 5, + 6, + 9, + 10, + 11 + ], + "description": "An array of integers representing the months the fish is available in the Northern hemisphere." + } + }, + "description": "When you can catch the fish in the Northern hemisphere." + }, + "south": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "Sep – Dec", + "time": "4 PM – 9 AM" + }, + { + "months": "Mar – May", + "time": "All day" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the southern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + }, + "2'": { + "type": "string" + }, + "3'": { + "type": "string" + } + }, + "example": { + "1": "NA", + "2": "NA", + "3": "4 PM – 9 AM", + "4": "4 PM – 9 AM", + "5": "4 PM – 9 AM", + "6": "4 PM – 9 AM", + "7": "NA", + "8": "NA", + "9": "All day", + "10": "All day", + "11": "All day", + "12": "NA" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Mar – May; Sep – Dec", + "description": "The months the fish is available for in the Southern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 3, + 4, + 5, + 9, + 10, + 11, + 12 + ], + "description": "An array of integers representing the months the fish is available in the Southern hemisphere." + } + }, + "description": "When you can catch the fish in the Southern hemisphere." + } + } + }, + "NHBug": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Grasshopper", + "description": "Link to the respective Nookipedia article." + }, + "name": { + "type": "string", + "example": "Grasshopper", + "description": "Name of the bug." + }, + "number": { + "type": "integer", + "example": 19, + "description": "In-game bug number, marking position in the Critterpedia." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/3/37/Grasshopper_NH_Icon.png", + "description": "Image of the bug." + }, + "render_url": { + "type": "string", + "example": "https://dodo.ac/np/images/1/1d/Grasshopper_NH.png", + "description": "Render of the bug." + }, + "location": { + "type": "string", + "example": "On the ground", + "description": "Short descriptor of where the bug can be found." + }, + "weather": { + "type": "string", + "example": "Any except rain", + "description": "Short descriptor of what type of weather the bug can be found in." + }, + "rarity": { + "type": "string", + "example": "Uncommon", + "description": "How rare the bug is. Note that this field is currently empty for most bugs as we do not yet know how exactly bug rarities are calculated in the game code." + }, + "total_catch": { + "type": "integer", + "example": 0, + "description": "The total number of bug the player has to have caught before this bug will start spawning." + }, + "sell_nook": { + "type": "integer", + "example": 160, + "description": "The number of Bells the bug can be sold to Nook's store for." + }, + "sell_flick": { + "type": "integer", + "example": 240, + "description": "The number of Bells the bug can be sold to Flick for. This value is always 1.5x that of `sell_nook`." + }, + "tank_width": { + "type": "number", + "format": "float", + "example": 1, + "description": "The width of the tank when the bug is placed as a furniture item." + }, + "tank_length": { + "type": "number", + "format": "float", + "example": 1, + "description": "The length of the tank when the bug is placed as a furniture item." + }, + "catchphrases": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "I caught a grasshopper! They're a grass act!" + ], + "description": "An array of possible catchphrases the player says after catching the bug. Most critters have just one, but some can have multiple." + }, + "north": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "Jul – Sep", + "time": "8 AM – 5 PM" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the northern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "2": { + "type": "string" + }, + "3": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + } + }, + "example": { + "1": "NA", + "2": "NA", + "3": "NA", + "4": "NA", + "5": "NA", + "6": "NA", + "7": "8 AM – 5 PM", + "8": "8 AM – 5 PM", + "9": "8 AM – 5 PM", + "10": "NA", + "11": "NA", + "12": "NA" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Jul – Sep", + "description": "The months the bug is available for in the Northern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 7, + 8, + 9 + ], + "description": "An array of integers representing the months the bug is available in the Northern hemisphere." + } + }, + "description": "When you can catch the bug in the Northern hemisphere." + }, + "south": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "Jan – Mar", + "time": "8 AM – 5 PM" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the southern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "2": { + "type": "string" + }, + "3": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + } + }, + "example": { + "1": "8 AM – 5 PM", + "2": "8 AM – 5 PM", + "3": "8 AM – 5 PM", + "4": "NA", + "5": "NA", + "6": "NA", + "7": "NA", + "8": "NA", + "9": "NA", + "10": "NA", + "11": "NA", + "12": "NA" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Jan – Mar", + "description": "The months the bug is available for in the Southern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 1, + 2, + 3 + ], + "description": "An array of integers representing the months the bug is available in the Southern hemisphere." + } + }, + "description": "When you can catch the bug in the Southern hemisphere." + } + } + }, + "NHSeaCreature": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Octopus_(fish)", + "description": "Link to the respective Nookipedia article." + }, + "name": { + "type": "string", + "example": "Octopus", + "description": "Name of the sea creature." + }, + "number": { + "type": "integer", + "example": 20, + "description": "In-game sea creature number, marking position in the Critterpedia." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/5/58/Octopus_NH_Icon.png", + "description": "Image of the sea creature." + }, + "render_url": { + "type": "string", + "example": "https://dodo.ac/np/images/2/27/Octopus_NH.png", + "description": "Render of the sea creature." + }, + "shadow_size": { + "type": "string", + "example": "Medium", + "description": "Short descriptor of where the sea creature can be found.", + "enum": [ + "X-Small", + "Small", + "Medium", + "Large", + "X-Large" + ] + }, + "shadow_movement": { + "type": "string", + "example": "Slow", + "description": "Short descriptor of where the sea creature can be found.", + "enum": [ + "Stationary", + "Very slow", + "Slow", + "Medium", + "Fast", + "Very fast" + ] + }, + "rarity": { + "type": "string", + "example": "Uncommon", + "description": "How rare the sea creature is. Note that this field is currently empty for most sea creatures as we do not yet know how exactly sea creature rarities are calculated in the game code." + }, + "total_catch": { + "type": "integer", + "example": 0, + "description": "The total number of sea creatures the player has to have caught before this sea creature will start spawning." + }, + "sell_nook": { + "type": "integer", + "example": 160, + "description": "The number of Bells the sea creature can be sold to Nook's store for." + }, + "tank_width": { + "type": "number", + "format": "float", + "multipleOf": 0.1, + "example": 1, + "description": "The width of the tank when the sea creature is placed as a furniture item." + }, + "tank_length": { + "type": "number", + "format": "float", + "multipleOf": 0.1, + "example": 1, + "description": "The length of the tank when the sea creature is placed as a furniture item." + }, + "catchphrases": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "I got an octopus! It can give four hugs at once!" + ], + "description": "An array of possible catchphrases the player says after catching the sea creature. Most critters have just one, but some can have multiple." + }, + "north": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "All year", + "time": "All day" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the northern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "2": { + "type": "string" + }, + "3": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + } + }, + "example": { + "1": "All day", + "2": "All day", + "3": "All day", + "4": "All day", + "5": "All day", + "6": "All day", + "7": "All day", + "8": "All day", + "9": "All day", + "10": "All day", + "11": "All day", + "12": "All day" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Jul – Sep", + "description": "The months the sea creature is available for in the Northern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "description": "An array of integers representing the months the sea creature is available in the Northern hemisphere." + } + }, + "description": "When you can catch the sea creature in the Northern hemisphere." + }, + "south": { + "type": "object", + "properties": { + "availability_array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "months": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "example": [ + { + "months": "All year", + "time": "All day" + } + ], + "description": "An array of objects, each object holding a months string and the time the critter is availabile during the specified month(s) in the southern hemisphere. Most critters will have just one object. A small number of critters have variable time availability in which case this array will have multiple objects." + }, + "times_by_month": { + "type": "object", + "properties": { + "1": { + "type": "string" + }, + "2": { + "type": "string" + }, + "3": { + "type": "string" + }, + "4": { + "type": "string" + }, + "5": { + "type": "string" + }, + "6": { + "type": "string" + }, + "7": { + "type": "string" + }, + "8": { + "type": "string" + }, + "9": { + "type": "string" + }, + "10": { + "type": "string" + }, + "11": { + "type": "string" + }, + "12": { + "type": "string" + } + }, + "example": { + "1": "All day", + "2": "All day", + "3": "All day", + "4": "All day", + "5": "All day", + "6": "All day", + "7": "All day", + "8": "All day", + "9": "All day", + "10": "All day", + "11": "All day", + "12": "All day" + }, + "description": "An object with twelve numerical keys, each representing a month (`\"1\"` for January, `\"2\"` for February, etc.). The value is the times the critter is available during that month. If the critter is unavailable in a month, the value will be `\"NA\"`." + }, + "months": { + "type": "string", + "example": "Jan – Mar", + "description": "The months the sea creature is available for in the Southern hemisphere. If all year, value will be `\"All year\"`." + }, + "months_array": { + "type": "array", + "items": { + "type": "integer" + }, + "example": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "description": "An array of integers representing the months the sea creature is available in the Southern hemisphere." + } + }, + "description": "When you can catch the sea creature in the Southern hemisphere." + } + } + }, + "NHEvent": { + "type": "object", + "properties": { + "event": { + "type": "string", + "example": "May Day event begins", + "description": "The description of the event." + }, + "date": { + "type": "string", + "example": "2021-05-01", + "description": "The date of the event in YYYY-MM-DD format." + }, + "type": { + "type": "string", + "example": "Event", + "description": "The type of event. \"Event\" is a festivity the player can take part in. \"Nook Shopping\" refers to the [seasonal events](https://nookipedia.com/wiki/Nook_Shopping_seasonal_event) in which exclusive item(s) are available via []Nook Shopping](https://nookipedia.com/wiki/Nook_Shopping). \"Recipes\" refers to the start or end of certain recipes being available. \"Birthday\" refers to the birthday of a villager or special character.", + "enum": [ + "Event", + "Nook Shopping", + "Recipes", + "Birthday" + ] + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/May_Day", + "description": "Link to the respective Nookipedia article for the event." + } + } + }, + "NHArtwork": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Academic Painting", + "description": "Name of the artwork." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Academic_Painting", + "description": "Link to the respective Nookipedia article." + }, + "has_fake": { + "type": "boolean", + "example": true, + "description": "Whether the artwork has a fake or not." + }, + "art_name": { + "type": "string", + "example": "Vitruvian Man", + "description": "The name of the real-life analog to the artwork." + }, + "art_type": { + "type": "string", + "example": "Painting", + "description": "The type of artwork (either a painting or statue).", + "enum": [ + "Painting", + "Statue" + ] + }, + "author": { + "type": "string", + "example": "Leonardo da Vinci", + "description": "The author of the real-life analog to the artwork." + }, + "year": { + "type": "string", + "example": "circa 1487", + "description": "The year that the real-life analog was made. May be an exact year, an estimate (\"circa\"), or a range." + }, + "art_style": { + "type": "string", + "example": "Pen and ink on paper", + "description": "The art style of the artwork." + }, + "buy": { + "type": "integer", + "example": 4980, + "description": "The number of Bells the artwork may be purchased for." + }, + "sell": { + "type": "integer", + "example": 1245, + "description": "The number of Bells the artwork can be sold to Nook's store for, when it is genuine." + }, + "availability": { + "type": "string", + "example": "Jolly Redd's Treasure Trawler", + "description": "The availability of the artwork." + }, + "width": { + "type": "number", + "format": "float", + "example": 1, + "description": "The width of the artwork." + }, + "length": { + "type": "number", + "format": "float", + "example": 1, + "description": "The length of the artwork." + }, + "real_info": { + "type": "object", + "description": "Information about the genuine version of the artwork.", + "properties": { + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/e/e8/Academic_Painting_NH_Icon.png", + "description": "Image of the real artwork." + }, + "texture_url": { + "type": "string", + "example": "https://dodo.ac/np/images/f/f6/Academic_Painting_NH_Texture.png", + "description": "The texture of the artwork. Note that statues will not have a texture (value will be empty string)." + }, + "description": { + "type": "string", + "example": "This drawing is based on the \"ideal\" human-body ratio, as stated in \"De architectura.\" \"De architectura\" was a treatise by Vitruvius, an architect from the early 1st century BCE.", + "description": "The description of the artwork." + } + } + }, + "fake_info": { + "type": "object", + "description": "Information about the fake version of the artwork. If there is no fake, `fake_info`'s value will be `null`.", + "properties": { + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/4/46/Academic_Painting_%28Fake%29_NH_Icon.png", + "description": "Image of the fake artwork." + }, + "texture_url": { + "type": "string", + "example": "https://dodo.ac/np/images/0/03/Academic_Painting_%28Fake%29_NH_Texture.png", + "description": "The texture of the artwork. Note that statues will not have a texture (value will be empty string)." + }, + "description": { + "type": "string", + "example": "In the forgery, there is a coffee stain in the top right corner. The forgery also has a key taped to the back of the canvas. If there is no stain and key, it is genuine.", + "description": "A description of how to identify the fake artwork." + } + } + } + } + }, + "NHFurniture": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Antique Vanity", + "description": "The name of the furniture." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Antique_Vanity_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "category": { + "type": "string", + "example": "Housewares", + "description": "The category of item as shown in the player's inventory.", + "enum": [ + "Housewares", + "Miscellaneous", + "Wall-mounted" + ] + }, + "item_series": { + "type": "string", + "example": "Antique", + "description": "The [furniture series](https://nookipedia.com/wiki/Series_(furniture)) the item is a part of, if any. A series is a collection of furniture and interior items, all with the same theme. If the item is not part of a series, this will be an empty string." + }, + "item_set": { + "type": "string", + "example": "", + "description": "The [furniture set](https://nookipedia.com/wiki/Set) the item is a part of, if any. A set is a smaller collection of related furniture items. If the item is not part of a set, this will be an empty string." + }, + "themes": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "Living Room", + "Expensive" + ], + "description": "A list of [themes](https://nookipedia.com/wiki/Theme_(furniture)) (if any) that the item belongs to." + }, + "hha_category": { + "type": "string", + "example": "Dresser", + "description": "The HHA category the item is a part of, if any. If the item does not have an HHA category, this will be an empty string." + }, + "hha_base": { + "type": "integer", + "example": 251, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "tag": { + "type": "string", + "example": "Dresser", + "description": "The tag of an item, if any, which denotes a specific use or relation to an event. Tags are determined by Nintendo. Examples include \"Chair\", \"Musical Instrument\", and \"Mario\". If the item does not have a tag, this will be an empty string." + }, + "lucky": { + "type": "boolean", + "example": false, + "description": "Whether or not the item is lucky. Lucky items give a 777-point HHA bonus. Some items are only counted as lucky in certain seasons, as indicated by the `lucky_season` field." + }, + "lucky_season": { + "type": "string", + "example": "", + "description": "The season in which the item is lucky (or \"All year\" if lucky throughout the entire year). Items that are not lucky will have this field as an empty string.", + "enum": [ + "", + "All year", + "Spring", + "Summer", + "Autumn", + "Winter" + ] + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 31000, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the item may be purchased with Bells, Nook Miles, etc.." + }, + "sell": { + "type": "integer", + "example": 7750, + "description": "The number of Bells the item can be sold to Nook's store for." + }, + "variation_total": { + "type": "integer", + "example": 3, + "description": "The number of variations, between 0 and 8.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "pattern_total": { + "type": "integer", + "example": 0, + "description": "The number of default patterns available to customize the item with, between 0 and 8. For items with customizable patterns, the player may also customize with patterns of their own.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "customizable": { + "type": "boolean", + "example": false, + "description": "Whether or not the item is customizable via a crafting table." + }, + "custom_kits": { + "type": "integer", + "example": 0, + "description": "The number of `custom_kit_type`s (e.g. Customization Kits) that are needed to customize this item. Value is 0 if the item is not customizable." + }, + "custom_kit_type": { + "type": "string", + "example": "", + "description": "The item that needs to be consumed to customize this item. The vast majority are \"Customization Kit\", but a small selection of items will require a different item, such as items in the Spooky Series requireing pumpkins." + }, + "custom_body_part": { + "type": "string", + "example": "", + "description": "If the item has variations, this is the name of the furniture part that changes. For example, for many bamboo items, the custom body part is \"Bamboo\" as the bamboo color is able to be customized." + }, + "custom_pattern_part": { + "type": "string", + "example": "", + "description": "If the item's pattern can be customized, this is the name of the furniture part that can have a pattern applied to it. For example, for the Baby Chair, the custom pattern part is \"Cushion\" as the cushion on the chair may have a pattern applied." + }, + "grid_width": { + "type": "number", + "format": "float", + "example": 2.0, + "description": "The number of widthwise grid spaces this item takes up." + }, + "grid_length": { + "type": "number", + "format": "float", + "example": 1.0, + "description": "The number of lengthwise grid spaces this item takes up." + }, + "height": { + "type": "number", + "format": "float", + "example": 15.98677, + "description": "The height of the object. One in-game block is 10 units tall, while the player is 15.1324 units tall." + }, + "door_decor": { + "type": "boolean", + "example": false, + "description": "Whether this item may be placed on the exterior door of the player's house." + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "functions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Trash", + "Toilet", + "Table", + "Storage", + "Stereo", + "Seating", + "Lighting", + "Instrument", + "Dresser", + "Bed", + "Audio" + ] + }, + "example": [ + "Dresser" + ], + "description": "A list of functionalities (if any) that the item has. For example, furniture that items can be placed on topof will have \"Table\" as a function.." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Nook's Cranny (Upgraded)", + "note": "" + } + ], + "description": "Where the furniture may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "variation": { + "type": "string" + }, + "pattern": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "variation": "Brown", + "pattern": "", + "image_url": "https://dodo.ac/np/images/9/9e/Antique_Vanity_%28Brown%29_NH_Icon.png", + "colors": [ + "Aqua", + "Brown" + ] + }, + { + "variation": "Natural", + "pattern": "", + "image_url": "https://dodo.ac/np/images/a/ab/Antique_Vanity_%28Natural%29_NH_Icon.png", + "colors": [ + "Aqua", + "Beige" + ] + }, + { + "variation": "Black", + "pattern": "", + "image_url": "https://dodo.ac/np/images/5/55/Antique_Vanity_%28Black%29_NH_Icon.png", + "colors": [ + "Aqua", + "Black" + ] + } + ], + "description": "An array of objects, each object representing a variation of the furniture. Furniture that has no variations (only one version) will have a single variation object with the image URL and colors, but the `variation` or `pattern` fields will be empty strings. Furniture with multiple variations will have the `variation` and/or `pattern` fields defined depending on whether the furniture varies by body variety, pattern, or both." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the item, such as a name change from a past update." + } + } + }, + "NHTool": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Axe", + "description": "The name of the tool." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Axe_(New_Horizons)", + "description": "Link the the respective Nookipedia article." + }, + "uses": { + "type": "integer", + "example": 100, + "description": "How many times the tool can be used before breaking." + }, + "hha_base": { + "type": "integer", + "example": 0, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "sell": { + "type": "integer", + "example": 625, + "description": "The number of bells the tool can be sold to the store for." + }, + "customizable": { + "type": "boolean", + "example": false, + "description": "Whether or not the item is customizable via a crafting table." + }, + "custom_kits": { + "type": "integer", + "example": 0, + "description": "The number of `custom_kit_type`s (e.g. Customization Kits) that are needed to customize this item. Value is 0 if the item is not customizable." + }, + "custom_body_part": { + "type": "string", + "example": "", + "description": "If the item has variations, this is the name of the furniture part that changes. For example, for many bamboo items, the custom body part is \"Bamboo\" as the bamboo color is able to be customized." + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the item, such as a name change from a past update." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Nook's Cranny", + "note": "" + }, + { + "from": "Crafting", + "note": "" + } + ], + "description": "Where the tool may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 2550 + }, + { + "currency": "Bells" + } + ], + "description": "An array of prices, for when the item may be purchased with Bells, Nook Miles, etc.." + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "variation": { + "type": "string" + }, + "image_url": { + "type": "string" + } + } + }, + "example": [ + { + "variation": "", + "image_url": "https://dodo.ac/np/images/f/fa/Axe_NH_Icon.png" + } + ], + "description": "An array of objects, each object representing a variation of the tool. Tools that has no variations (only one version) will have a single variation object with the image URL and colors, but the `variation` field will be empty. Tools with multiple variations will have the `variation` fields defined with the name of each variation." + } + } + }, + "NHPhoto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Admiral's Photo", + "description": "The name of the photo." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Admiral's_Photo_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "category": { + "type": "string", + "example": "Accessories", + "description": "The category of item as shown in the player's inventory.", + "enum": [ + "Photos", + "Posters" + ] + }, + "sell": { + "type": "integer", + "example": 10, + "description": "The number of Bells the photo can be sold to the store for." + }, + "customizable": { + "type": "boolean", + "example": false, + "description": "Whether or not the item is customizable via a crafting table." + }, + "custom_kits": { + "type": "integer", + "example": 1, + "description": "The number of `custom_kit_type`s (e.g. Customization Kits) that are needed to customize this item. Value is 0 if the item is not customizable." + }, + "custom_body_part": { + "type": "string", + "example": "Frame", + "description": "If the item has variations, this is the name of the furniture part that changes. For example, for many bamboo items, the custom body part is \"Bamboo\" as the bamboo color is able to be customized." + }, + "interactable": { + "type": "boolean", + "example": true, + "description": "Whether or not the item can be interacted with. This field is true for all photos and false for all posters." + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "grid_width": { + "type": "number", + "format": "float", + "example": 2.0, + "description": "The number of widthwise grid spaces this item takes up." + }, + "grid_length": { + "type": "number", + "format": "float", + "example": 1.0, + "description": "The number of lengthwise grid spaces this item takes up." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Friendship", + "note": "" + } + ], + "description": "Where the photo may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [], + "description": "An array of prices, for when the item may be purchased with Bells, Nook Miles, etc.." + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "variation": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "variation": "Natural Wood", + "image_url": "https://dodo.ac/np/images/7/72/Admiral%27s_Photo_%28Natural_Wood%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Dark Wood", + "image_url": "https://dodo.ac/np/images/e/e5/Admiral%27s_Photo_%28Dark_Wood%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Pastel", + "image_url": "https://dodo.ac/np/images/9/9a/Admiral%27s_Photo_%28Pastel%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "White", + "image_url": "https://dodo.ac/np/images/1/16/Admiral%27s_Photo_%28White%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Pop", + "image_url": "https://dodo.ac/np/images/b/be/Admiral%27s_Photo_%28Pop%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Colorful", + "image_url": "https://dodo.ac/np/images/5/51/Admiral%27s_Photo_%28Colorful%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Silver", + "image_url": "https://dodo.ac/np/images/e/ed/Admiral%27s_Photo_%28Silver%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + }, + { + "variation": "Gold", + "image_url": "https://dodo.ac/np/images/c/cf/Admiral%27s_Photo_%28Gold%29_NH_Icon.png", + "colors": [ + "Blue", + "Green" + ] + } + ], + "description": "An array of objects, each object representing a variation of the photo or poster. Items that has no variations (only one version) will have a single variation object with the image URL and colors, but the `variation` field will be empty. Items with multiple variations will have the `variation` fields defined with the name of each variation." + } + } + }, + "NHClothing": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "3D Glasses", + "description": "The name of the clothing." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:3D_Glasses_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "category": { + "type": "string", + "example": "Accessories", + "description": "The category of item as shown in the player's inventory.", + "enum": [ + "Tops", + "Bottoms", + "Dress-up", + "Headwear", + "Accessories", + "Socks", + "Shoes", + "Bags", + "Umbrellas" + ] + }, + "sell": { + "type": "integer", + "example": 122, + "description": "The number of Bells the clothing can be sold to the store for." + }, + "variation_total": { + "type": "integer", + "example": 2, + "description": "The total number of variations the clothing has, between 0 and 8.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "vill_equip": { + "type": "boolean", + "example": true, + "description": "Whether villagers may equip this item." + }, + "seasonality": { + "type": "string", + "example": "All year", + "description": "The time of the year that the clothing is available." + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the clothing, such as a name change from a past update." + }, + "label_themes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Comfy", + "Everyday", + "Fairy tale", + "Formal", + "Goth", + "Outdoorsy", + "Party", + "Sporty", + "Theatrical", + "Vacation", + "Work" + ] + }, + "example": [ + "Party" + ], + "description": "The clothing's Label theme(s). This is used for completing the requested outfit theme for [Label](https://nookipedia.com/wiki/Label) when she visits the player's island." + }, + "styles": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Active", + "Cool", + "Cute", + "Elegant", + "Gorgeous", + "Simple" + ] + }, + "example": [ + "Active" + ], + "description": "The clothing's style(s). Styles are used for gifting villagers." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Able Sisters", + "note": "" + } + ], + "description": "Where the clothing may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 490, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the item may be purchased with Bells, Nook Miles, etc.." + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "variation": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "variation": "White", + "image_url": "https://dodo.ac/np/images/1/15/3D_Glasses_%28White%29_NH_Icon.png", + "colors": [ + "White", + "Colorful" + ] + }, + { + "variation": "Black", + "image_url": "https://dodo.ac/np/images/2/28/3D_Glasses_%28Black%29_NH_Icon.png", + "colors": [ + "Colorful", + "Black" + ] + } + ], + "description": "An array of objects, each object representing a variation of the clothing. Clothing that has no variations (only one version) will have a single variation object with the image URL and colors, but the `variation` field will be empty. Clothing with multiple variations will have the `variation` fields defined with the name of each variation." + } + } + }, + "NHGyroid": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Aluminoid", + "description": "The name of the gyroid." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Aluminoid_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "hha_base": { + "type": "integer", + "example": 207, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "sell": { + "type": "integer", + "example": 828, + "description": "The number of Bells the gyroid can be sold to the store for." + }, + "customizable": { + "type": "boolean", + "example": true, + "description": "Whether or not the item is customizable via a crafting table." + }, + "custom_kits": { + "type": "integer", + "example": 1, + "description": "The number of `custom_kit_type`s (e.g. Customization Kits) that are needed to customize this item. Value is 0 if the item is not customizable." + }, + "custom_kit_type": { + "type": "string", + "example": "Customization Kit", + "description": "The item that needs to be consumed to customize this item. The vast majority are \"Customization Kit\", but a small selection of items will require a different item, such as items in the Spooky Series requiring pumpkins." + }, + "custom_body_part": { + "type": "string", + "example": "Color", + "description": "If the item has variations, this is the name of the furniture part that changes. For example, for many bamboo items, the custom body part is \"Bamboo\" as the bamboo color is able to be customized." + }, + "cyrus_price": { + "type": "integer", + "example": 1000, + "description": "How much Cyrus will charge to customize this gyroid. Currently it's a flat rate of 1,000 bells for every gyroid." + }, + "variation_total": { + "type": "integer", + "example": 4, + "description": "The total number of variations the gyroid has, between 0 and 7.", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "grid_width": { + "type": "number", + "format": "float", + "example": 1.0, + "description": "The number of widthwise grid spaces this item takes up." + }, + "grid_length": { + "type": "number", + "format": "float", + "example": 1.0, + "description": "The number of lengthwise grid spaces this item takes up." + }, + "sound": { + "type": "string", + "example": "Drum set", + "description": "The type of sound this gyroid makes.", + "enum": [ + "Crash", + "Drum set", + "Hi-hat", + "Kick", + "Melody", + "Snare" + ] + }, + "version_added": { + "type": "string", + "example": "2.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the gyroid, such as a name change from a past update." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "dig spot", + "note": "" + } + ], + "description": "Where the gyroid may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 490, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the item may be purchased with Bells, Nook Miles, etc.." + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "variation": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "variation": "Black", + "image_url": "https://dodo.ac/np/images/6/64/Aluminoid_%28Black%29_NH_Icon.png", + "colors": [ + "Black", + "Gray" + ] + }, + { + "variation": "Blue", + "image_url": "https://dodo.ac/np/images/5/52/Aluminoid_%28Blue%29_NH_Icon.png", + "colors": [ + "Blue", + "Aqua" + ] + } + ], + "description": "An array of objects, each object representing a variation of the gyroid. Gyroids that has no variations (only one version) will have a single variation object with the image URL and colors, but the `variation` field will be empty. Gyroids with multiple variations will have the `variation` fields defined with the name of each variation." + } + } + }, + "NHInterior": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Abstract Wall", + "description": "The name of the interior." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Abstract_Wall_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/2/2d/Abstract_Wall_NH_Icon.png", + "description": "Image of the interior." + }, + "category": { + "type": "string", + "example": "Wallpaper", + "description": "The category of item as shown in the player's inventory.", + "enum": [ + "Floors", + "Wallpaper", + "Rugs" + ] + }, + "item_series": { + "type": "string", + "example": "", + "description": "The [furniture series](https://nookipedia.com/wiki/Series_(furniture)) the item is a part of, if any. A series is a collection of furniture and interior items, all with the same theme. If the item is not part of a series, this will be an empty string." + }, + "item_set": { + "type": "string", + "example": "", + "description": "The [furniture set](https://nookipedia.com/wiki/Set) the item is a part of, if any. A set is a smaller collection of related furniture items. If the item is not part of a set, this will be an empty string." + }, + "themes": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "Shop", + "Facility" + ], + "description": "A list of [themes](https://nookipedia.com/wiki/Theme_(furniture)) (if any) that the item belongs to." + }, + "hha_category": { + "type": "string", + "example": "Dresser", + "description": "The HHA category the item is a part of, if any. If the item does not have an HHA category, this will be an empty string." + }, + "hha_base": { + "type": "integer", + "example": 0, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "tag": { + "type": "string", + "example": "Dresser", + "description": "The tag of an item, if any, which denotes a specific use or relation to an event. Tags are determined by Nintendo. Examples include \"Chair\", \"Musical Instrument\", and \"Mario\". If the item does not have a tag, this will be an empty string." + }, + "sell": { + "type": "integer", + "example": 200, + "description": "The number of Bells the interior can be sold to Nook's store for." + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the item, such as a name change from a past update." + }, + "grid_width": { + "type": "number", + "format": "float", + "example": 2.0, + "description": "The number of widthwise grid spaces this item takes up." + }, + "grid_length": { + "type": "number", + "format": "float", + "example": 1.0, + "description": "The number of lengthwise grid spaces this item takes up." + }, + "colors": { + "type": "string", + "example": [ + "White", + "Colorful" + ], + "description": "(WIP)", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Nook's", + "note": "" + } + ], + "description": "Where the clothing may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 1560, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the interior may be purchased with Bells, Nook Miles, etc.." + } + } + }, + "NHItem": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Acorn", + "description": "The name of the item." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Acorn_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/9/9f/Acorn_NH_Icon.png", + "description": "Image of the interior." + }, + "stack": { + "type": "integer", + "example": 30, + "description": "How much the item can stack up to in a single inventory slot." + }, + "hha_base": { + "type": "integer", + "example": 0, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "sell": { + "type": "integer", + "example": 200, + "description": "The number of bells the item can be sold to Nook's store for." + }, + "is_fence": { + "type": "boolean", + "example": false, + "description": "Whether or not the item is a fence or not." + }, + "material_type": { + "type": "string", + "example": "Tree", + "description": "(WIP)", + "enum": [ + "", + "Bamboo", + "Mushroom", + "Trash", + "Wood", + "Ore", + "Snowflake", + "Tree", + "Ornament", + "Fruit", + "Underwater", + "Other", + "Leaf", + "Shell", + "Flower", + "Star Fragment", + "Feather", + "Egg", + "Plant" + ] + }, + "material_seasonality": { + "type": "string", + "example": "Autumn", + "description": "(WIP)" + }, + "material_sort": { + "type": "integer", + "example": 3, + "description": "(WIP)" + }, + "material_name_sort": { + "type": "integer", + "example": 0, + "description": "(WIP)" + }, + "material_seasonality_sort": { + "type": "integer", + "example": 3, + "description": "(WIP)" + }, + "edible": { + "type": "boolean", + "example": false, + "description": "Whether the item is edible or not." + }, + "plant_type": { + "type": "string", + "example": "", + "description": "(WIP)", + "enum": [ + "", + "Pumpkin", + "Flower", + "Bush", + "Tree" + ] + }, + "version_added": { + "type": "string", + "example": "1.0.0", + "description": "The version of *New Horizons* that the item was added. Items that were included at the game's launch have version \"1.0.0\"." + }, + "unlocked": { + "type": "boolean", + "example": true, + "description": "Whether the item is available through legitimate gameplay. Some items are added to the game files in an update, but aren't actually made available until a subsequent update unlocks them." + }, + "notes": { + "type": "string", + "example": "", + "description": "Any additional miscellaneous information about the item, such as a name change from a past update." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Nook's", + "note": "" + } + ], + "description": "Where the clothing may be obtained from (could be multiple sources). `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 280, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the interior may be purchased with Bells, Nook Miles, etc.." + } + } + }, + "NHRecipe": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Flimsy Axe", + "description": "The name of the recipe." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Item:Flimsy_Axe_(New_Horizons)", + "description": "Link to the respective Nookipedia article." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/a/ac/Flimsy_Axe_NH_DIY_Icon.png", + "description": "Image of the item the recipe crafts." + }, + "serial_id": { + "type": "integer", + "example": 100, + "description": "The unique in-game ID of the recipe." + }, + "buy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "integer" + }, + "currency": { + "type": "string" + } + } + }, + "example": [ + { + "price": 280, + "currency": "Bells" + } + ], + "description": "An array of prices, for when the recipe may be purchased with Bells, Nook Miles, etc. The majority of recipes cannot be bought (in which case this array will be empty)." + }, + "sell": { + "type": "integer", + "example": 200, + "description": "The number of Bells the sea creature can be sold to Nook's store for." + }, + "recipes_to_unlock": { + "type": "integer", + "example": 0, + "description": "How many recipes the player has to have learned to unlock this one." + }, + "availability": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "note": { + "type": "string" + } + } + }, + "example": [ + { + "from": "Tom Nook", + "note": "Obtained through Tom Nook's DIY Workshop at the beginning of the game." + }, + { + "from": "Nook's Cranny", + "note": "" + } + ], + "description": "Where the recipe may be obtained from. `from` is a brief description of the source; `note`, when provided, provides additional details." + }, + "materials": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "count": { + "type": "integer" + } + } + }, + "example": [ + { + "name": "Tree Branch", + "count": 5 + }, + { + "name": "Stone", + "count": 1 + } + ], + "description": "The list of materials required to craft the item." + } + } + }, + "NHIndividualFossil": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spino Skull", + "description": "The name of the fossil." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Spinosaurus", + "description": "Link to the respective Nookipedia article." + }, + "image_url": { + "type": "string", + "example": "https://dodo.ac/np/images/7/7b/Spino_Skull_NH_Icon.png", + "description": "Image of the fossil's icon." + }, + "fossil_group": { + "type": "string", + "example": "Spinosaurus", + "description": "The name of the group that the fossil belongs to." + }, + "interactable": { + "type": "boolean", + "example": false, + "description": "Whether or not the item can be interacted with." + }, + "sell": { + "type": "integer", + "example": 4000, + "description": "The number of bells the item can be sold to Nook's store for." + }, + "hha_base": { + "type": "integer", + "example": 87, + "description": "The base value that the item provides to a player's Happy Home Academy score when placed in their home." + }, + "width": { + "type": "integer", + "example": 2, + "description": "The width of the fossil." + }, + "length": { + "type": "integer", + "example": 2, + "description": "The length of the fossil." + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + }, + "example": [ + "Brown" + ] + } + } + }, + "NHFossilGroup": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spinosaurus", + "description": "The name of the fossil group." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Spinosaurus", + "description": "Link to the respective Nookipedia article." + }, + "room": { + "type": "integer", + "example": 2, + "description": "The room where the fossil group can be found in the museum's fossil section." + }, + "description": { + "type": "string", + "example": "Ahem. Yes. The Spinosaurus was a very large, carnivorous dinosaur, roughly the size of a T. Rex. Unlike its more famous cousin, however, Spinosaurus seems to have spent a great deal of time in water. Similar to modern crocodiles, this creature lived on a diet of fish AND land-dwelling animals. Personally, I am simply relieved that it did not seek FLYING prey.", + "description": "A description of the fossil group." + } + } + }, + "NHFossilGroupWithIndividualFossils": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spinosaurus", + "description": "The name of the fossil group." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Spinosaurus", + "description": "Link to the respective Nookipedia article." + }, + "room": { + "type": "integer", + "example": 2, + "description": "The room where the fossil group can be found in the museum's fossil section." + }, + "description": { + "type": "string", + "example": "Ahem. Yes. The Spinosaurus was a very large, carnivorous dinosaur, roughly the size of a T. Rex. Unlike its more famous cousin, however, Spinosaurus seems to have spent a great deal of time in water. Similar to modern crocodiles, this creature lived on a diet of fish AND land-dwelling animals. Personally, I am simply relieved that it did not seek FLYING prey.", + "description": "A description of the fossil group." + }, + "matched": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "individual", + "description": "If the query given was a fossil group, `group` would be returned. Otherwise, `individual` is returned." + }, + "name": { + "type": "string", + "example": "Spino Skull", + "description": "The name of the fossil or fossil group that matched the given query." + } + } + }, + "fossils": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spino Skull" + }, + "url": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "fossil_group": { + "type": "string" + }, + "interactable": { + "type": "boolean" + }, + "sell": { + "type": "integer" + }, + "hha_base": { + "type": "integer" + }, + "width": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "name": "Spino Skull", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/7/7b/Spino_Skull_NH_Icon.png", + "interactable": true, + "sell": 4000, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + }, + { + "name": "Spino Tail", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/4/40/Spino_Tail_NH_Icon.png", + "interactable": true, + "sell": 2500, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + }, + { + "name": "Spino Torso", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/9/92/Spino_Torso_NH_Icon.png", + "interactable": true, + "sell": 3000, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + } + ], + "description": "An array of objects, each object representing a fossil that belongs to the given group." + } + } + }, + "NHFossilGroupWithIndividualFossilsNoMatched": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spinosaurus", + "description": "The name of the fossil group." + }, + "url": { + "type": "string", + "example": "https://nookipedia.com/wiki/Spinosaurus", + "description": "Link to the respective Nookipedia article." + }, + "room": { + "type": "integer", + "example": 2, + "description": "The room where the fossil group can be found in the museum's fossil section." + }, + "description": { + "type": "string", + "example": "Ahem. Yes. The Spinosaurus was a very large, carnivorous dinosaur, roughly the size of a T. Rex. Unlike its more famous cousin, however, Spinosaurus seems to have spent a great deal of time in water. Similar to modern crocodiles, this creature lived on a diet of fish AND land-dwelling animals. Personally, I am simply relieved that it did not seek FLYING prey.", + "description": "A description of the fossil group." + }, + "fossils": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Spino Skull" + }, + "url": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "fossil_group": { + "type": "string" + }, + "interactable": { + "type": "boolean" + }, + "sell": { + "type": "integer" + }, + "hha_base": { + "type": "integer" + }, + "width": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "colors": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Aqua", + "Beige", + "Black", + "Blue", + "Brown", + "Colorful", + "Gray", + "Green", + "Orange", + "Pink", + "Purple", + "Red", + "White", + "Yellow" + ] + } + } + } + }, + "example": [ + { + "name": "Spino Skull", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/7/7b/Spino_Skull_NH_Icon.png", + "interactable": true, + "sell": 4000, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + }, + { + "name": "Spino Tail", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/4/40/Spino_Tail_NH_Icon.png", + "interactable": true, + "sell": 2500, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + }, + { + "name": "Spino Torso", + "url": "https://nookipedia.com/wiki/Spinosaurus", + "image_url": "https://dodo.ac/np/images/9/92/Spino_Torso_NH_Icon.png", + "interactable": true, + "sell": 3000, + "hha_base": 87, + "width": 2, + "length": 2, + "colors": [ + "Brown" + ] + } + ], + "description": "An array of objects, each object representing a fossil that belongs to the given group." + } + } + } + } + } +} \ No newline at end of file diff --git a/static/doc.yaml b/static/doc.yaml index e512e61..cace43f 100644 --- a/static/doc.yaml +++ b/static/doc.yaml @@ -134,6 +134,12 @@ paths: schema: type: string description: 'When set to `true`, only villager names are returned. Instead of an array of objects with all details, the return will be an array of strings.' + - in: query + name: langnames + required: false + schema: + type: string + description: 'When set to `true`, a `name_translations` object will be included containing the villager''s name in all available languages and regional variants. Has no effect when `excludedetails` is set to `true`.' - in: query name: thumbsize required: false @@ -2220,6 +2226,105 @@ components: type: string example: bat umbrella description: The name of the umbrella used by the villager. + name_translations: + type: object + nullable: true + description: 'An object containing the villager''s name in all available languages and regional variants. Only present when `langnames=true` is set on the request. Fields are `null` if no official localization exists for that language.' + properties: + no_localization: + type: boolean + example: false + description: 'When `true`, this villager has no official name in any language other than Japanese.' + en_gb: + type: string + nullable: true + example: null + description: 'The villager''s name in English (United Kingdom). `null` if no regional variant exists.' + de: + type: string + nullable: true + example: Jens + description: The villager's name in German. + es_eu: + type: string + nullable: true + example: "Arándano" + description: 'The villager''s name in Spanish (Europe).' + es_la: + type: string + nullable: true + example: null + description: 'The villager''s name in Spanish (Latin America). `null` if no regional variant exists.' + fr_eu: + type: string + nullable: true + example: Robert + description: 'The villager''s name in French (Europe).' + fr_ca: + type: string + nullable: true + example: null + description: 'The villager''s name in French (Canada). `null` if no regional variant exists.' + it: + type: string + nullable: true + example: Bob + description: The villager's name in Italian. + ja: + type: string + nullable: true + example: "ニコバン" + description: The villager's name in Japanese. + ja_romanized: + type: string + nullable: true + example: Nikoban + description: Romanized transliteration of the villager's Japanese name using the Hepburn system. + ko: + type: string + nullable: true + example: "히죽" + description: The villager's name in Korean. + ko_romanized: + type: string + nullable: true + example: Hijuk + description: Romanized transliteration of the villager's Korean name using the Revised Romanization of Korean. + nl: + type: string + nullable: true + example: Bob + description: The villager's name in Dutch. + ru: + type: string + nullable: true + example: "Боб" + description: The villager's name in Russian. + ru_romanized: + type: string + nullable: true + example: Bob + description: Romanized transliteration of the villager's Russian name using the GOST 7.79-2000 standard. + zh_simplified: + type: string + nullable: true + example: "阿判" + description: The villager's name in Chinese (Simplified). + zh_simplified_romanized: + type: string + nullable: true + example: "Āpàn" + description: Romanized transliteration of the villager's Simplified Chinese name using the Pinyin system. + zh_traditional: + type: string + nullable: true + example: "阿判" + description: The villager's name in Chinese (Traditional). + zh_traditional_romanized: + type: string + nullable: true + example: "Āpàn" + description: Romanized transliteration of the villager's Traditional Chinese name using the Pinyin system. NHFish: type: object properties: