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.<br><br>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: 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.
    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) # TODO
          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) # TODO
          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) # TODO
        material_sort:
          type: integer
          example: 3
          description: (WIP) # TODO
        material_name_sort:
          type: integer
          example: 0
          description: (WIP) # TODO
        material_seasonality_sort:
          type: integer
          example: 3
          description: (WIP) # TODO
        edible:
          type: boolean
          example: false
          description: Whether the item is edible or not.
        plant_type:
          type: string
          example: ""
          description: (WIP) # TODO
          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.
