An API serving data on all creatures, monsters, materials, equipment, and treasure in The Legend of Zelda: Breath of the Wild

Overview

Hyrule Compendium API

An API serving data on all creatures, monsters, materials, equipment, and treasure in The Legend of Zelda: Breath of the Wild.
By Aarav Borthakur


Concept

The Hyrule compendium is an encyclopedia of all in-game interactive items. With this brilliant API, you can access this data from code and embed it into your own application. See the compendium directory of this repository to see all entries in the compendium. 385 entries and 5 categories of entries are in the compendium.

You can see a specific item, all items in a category, or all data in our database. Here is an example request and response, retrieving data on the silver lynel:

$ curl http://botw-compendium.herokuapp.com/api/v1/entry/silver_lynel
{
    "data": {
        "category": "monsters",
        "description": "Silver Lynels are not to be trifled with. They have been influenced by Ganon's fiendish magic, so they are the strongest among the Lynel species, surpassing even the strength of those with white manes. The term \"silver\" denotes not only their color but also their rarity. The purple stripes help them to stand out even more.",
        "drops": [
            "lynel horn",
            "lynel hoof",
            "lynel guts",
            "topaz",
            "ruby",
            "sapphire",
            "diamond",
            "star fragment"
        ],
        "id": 124,
        "name": "silver lynel"
    }
}

Let's get started!

API Refrence

The base URL is https://botw-compendium.herokuapp.com/api/v1.


/category

This endpoint is used for retrieving all entries in a category. The categories are:

  • Creatures
  • Equipment
  • Materials
  • Monsters
  • Treasure

HTTP Request

GET https://botw-compendium.herokuapp.com/api/v1/category/<category>

Example Request

$ curl https://botw-compendium.herokuapp.com/api/v1/category/monsters

/entry

This endpoint is used for retrieving a specific entry, using it's name or ID. If you are using a name to search for an item, spaces are to be replaced with an underscore or "%20".

HTTP Request

GET https://botw-compendium.herokuapp.com/api/v1/entry/<entry>

Example Request

With name:

$ curl https://botw-compendium.herokuapp.com/api/v1/entry/moblin

With name with spaces:

$ curl https://botw-compendium.herokuapp.com/api/v1/entry/silver%20moblin

With ID:

$ curl https://botw-compendium.herokuapp.com/api/v1/entry/70

/

This endpoint is for retrieving all data.

HTTP Request

GET https://botw-compendium.herokuapp.com/api/v1

Example Request

$ curl https://botw-compendium.herokuapp.com/api/v1

Support and Suggestions

If you come across a malfunction or have any suggestions open an issue or a pull request.

Notes

If a key's value is null, that means it's marked as "unknown" in the Hyrule Compendium.
The response schema of the "creatures" category is much different from the others, because it has two sub-categories ("food" and "non-food").

Client Libraries

Running locally

Instructions for running locally can be found here.

Status

Server status:

Check the latest "test endpoints" workflow run to see if the server status.

Author

Made with awesomeness by @gadhagod.

Comments
  • Golden Enemies

    Golden Enemies

    Hello, i'm sorry to bother you but i was simply wondering if the golden variants of the enemies would show up here, i have been searching for them and i cannot find them, are they simply not in the compendium in the main game? my apologies if so

    opened by AliciaSpinnet 6
  • The creatures category returns non-creature content

    The creatures category returns non-creature content

    I was looking around the dataset and I noticed that there is a lot of "non-creature" content returned by the creatures endpoint. For instance, you get stuff like "golden claymore" with id 262 in the non-food sub-category. I'm a bit confused about what your concept of a "creature" is within the domain of this API.

    It also doesn't match the data in the creatures json file which only have 83 entries. Is this a bug?

    opened by kawazoe 3
  • Missing images

    Missing images

    I know the images are in development so you may or may not be aware of these, but just wanted to point them out in case you weren't.

    I came across 3 missing images: https://botw-compendium.herokuapp.com/api/v2/entry/golden_bow/image https://botw-compendium.herokuapp.com/api/v2/entry/golden_claymore/image https://botw-compendium.herokuapp.com/api/v2/entry/luminous_ore_deposit/image

    I also came across 1 broken image. The image is actually there and works just fine but the url in the entry has a typo: https://botw-compendium.herokuapp.com/api/v2/entry/rare_or_deposit/image ('ore' is misspelled and is missing the 'e')

    bug 
    opened by blkhwks19 2
  • Add images to API

    Add images to API

    Hope to add images to the API very soon. The entry endpoint will have an additional key, image, that has a URL of the image (hosted on the same heroku server). That URL will be /entry/<entry>/image, which will serve the image in a png of jpeg format.

    enhancement 
    opened by gadhagod 1
  • Problems with the hyphen of

    Problems with the hyphen of "non-food"

    When I do a request, I can't retrieve the data of an entry who is in the category "non-food". The hyphen in the category create errors. I don't know how to fix it. I'm using JavaScript.

    bug 
    opened by GuilhemDuval 1
  • v3

    v3

    The new version of the Hyrule Compendium API will serve data on more than just the compendium entries. It will contain the following categories of data:

    • [x] in-game compendium (/compendium)
    • [x] geographical regions (/regions) (https://github.com/gadhagod/Hyrule-Compendium-API/discussions/29)
    • [ ] recipes (/recipes) (https://github.com/gadhagod/Hyrule-Compendium-API/issues/27)

    The goal is to make this API more than just the compendium; it should be able to give data on all (or many) aspects of the game, not just the in-game items.

    Recipes

    Recipes will be divided based on their base ingredient (e.g seafood). Multi-dimensional arrays will be used to represent possible ingredients to tackle the problem of substitutable ingredients.

    Possible example recipe response:

    {
      "name": "meat and rice bowl",
      "image": "https://botw-compendium.herokuapp.com/api/v3/recipes/recipe/meat-and-rice-bowl",
      "category": "meat",
      "hearts_recovered": 4.0, // hearts recovered from consumption
      "ingredients": [["raw meat", "raw bird drumstick"], ["rock salt"], ["hylian rice"]] // array of arrays, each inner array represents possible ingredients
      "effect": "attack", // enhancing effect of dish (empty if none)
      "duration": 60, // duration of effect in seconds (0 if no effect)
    }
    

    Map

    Data on each region, including encompassed shrines and settlements, will be provided.

    Compendium

    • [x] The compendium entries will have a field dlc that specifies if it is a master-mode exclusive. The /master_mode endpoint will remain to avoid ID conflicts.
    • [x] The food and non_food keys in the creatures category response will be removed. Each creature entry will have a boolean property edible instead.

    Code Changes

    These changes will not affect the user of the API. It will improve performance and clean up code.

    • [x] Separate branches for API versions
    • [x] Use Flask blueprints instead of Flask().add_url_rule
    • [ ] Improve queries to reduce API latency
      • Instead of executing multiple queries, using UNION is a better solution
    • [x] Create staging app to test changes

    Client Libraries

    Additional Tasks

    • [ ] Documentation

    Release

    I hope to have all of these features in production by the end of 2022. I hope to get the bulk of it done by the end of this summer (August 2022).


    Feel free to chime in on this thread.

    opened by gadhagod 5
  • Images

    Images

    Hi! Great work with this! I was wondering if you were planning on getting the images more standardized like the ones from https://zelda.fandom.com/wiki/Food#Breath_of_the_Wild. Also, do you have any plans for adding a recipe list?

    opened by dylantoporek 1
Releases(v2)
Owner
Aarav Borthakur
I like automation and making things do work for me. @Harker-Hackers.
Aarav Borthakur
TG-Streaming-bot - TG Simple Streaming bot

TG Simple Streaming bot telegram video straming bot 🎚️ Features Play youtube li

HyDrix 4 May 05, 2022
An script where it logs in your instagram account and follows people and likes their posts

InstaFollower An script where it logs in your instagram account and follows people and likes their posts (uses the tags to fetch people) Requirements:

Bless 3 Nov 29, 2022
Coronavirus whatsapp chatbot to give real time info on covid

Covy Developed a coronavirus whatsapp chatbot which gives case counts in a particular district, city, state or country. It also predicts future cases

Devinco (Rachit) 0 Oct 03, 2021
A python SDK for interacting with quantum devices on Amazon Braket

Amazon Braket Python SDK The Amazon Braket Python SDK is an open source library that provides a framework that you can use to interact with quantum co

Amazon Web Services 213 Dec 14, 2022
A Telegram bot that scrapes websites for available vaccination appointments to notify users. (German)

@dachau_impf_bot 🇬🇧 A Telegram bot to check the contents of https://termin.dachau-med.de for available slots and inform users of the available dates

1 Nov 21, 2021
Tools for Twitter

Tools for Twitter Data This is a start of a collection of tools to use for collecting data via the Twitter API. If you do not have a Twitter Developer

DiscoverText 36 Oct 13, 2022
🤖 Automated follow/unfollow bot for GitHub. Uses GitHub API. Written in python.

GitHub Follow Bot Table of Contents Disclaimer How to Use Install requirements Authenticate Get a GitHub Personal Access Token Add your GitHub usernam

João Correia 37 Dec 27, 2022
We propose the adversarial blur attack (ABA) against visual object tracking.

ABA We propose the adversarial blur attack (ABA) against visual object tracking. The ICCV link: https://arxiv.org/abs/2107.12085 and, https://openacce

Qing Guo 13 Dec 01, 2022
PyMusic Player is a music player written in python3.

PyMusic Player is a music player written in python3. It harvests r

PythonSerious 2 Jan 30, 2022
PyMed is a Python library that provides access to PubMed.

IMPORTANT NOTE: I don't have time to maintain this library (as some of you might have noticed). The PubMed API is a little chaotic, without a clear do

Gijs Wobben 143 Dec 21, 2022
Automatically check for free Anmeldung appointments.

Berlin Anmeldung Appointments (Python) This Python script will automatically check for free Anmeldung appointments in Berlin, and find them for you. T

Martín Aberastegue 6 May 19, 2022
Senditapp.com bot spammer, spam your friends

Sendit Spammer Python ⚠️ I am not responsible for how you use this tool. This tool is against "Sendit" ToS and shall not be used in a production envir

Glaukio 1 Dec 31, 2021
Trading through Binance's API using Python & sqlite

pycrypt Automate trading crypto using Python to pull data from Binance's API and analyse trends. May or may not consistently lose money but oh well it

Maxim 4 Sep 02, 2022
A Python interface module to the SAS System. It works with Linux, Windows, and mainframe SAS. It supports the sas_kernel project (a Jupyter Notebook kernel for SAS) or can be used on its own.

A Python interface to MVA SAS Overview This module creates a bridge between Python and SAS 9.4. This module enables a Python developer, familiar with

SAS Software 319 Dec 19, 2022
Python app to notify via slack channel the status_code change from an URL

Python app to notify, via slack channel you choose to be notified, for the status_code change from the URL list you setup to be checked every yy seconds

Pedro Nunes 1 Oct 25, 2021
Python wrapper for CoWin API's

Cowin Tracker Python API wrapper for CoWin, India's digital platform launched by the government to help citizens register themselves for the vaccinati

Saiprasad Balasubramanian 43 Jun 11, 2022
A Telegram Filter Bot, Support Unlimited Filter. Also, The Bot can auto-filter telegram File | video

A Telegram Filter Bot, Support Unlimited Filter. Also, The Bot can auto-filter telegram File | video

Hash Minner 3 Nov 27, 2021
A Django-style ORM idea for manipulating Google Datastore entities

No SeiQueLa ORM EM DESENVOLVIMENTO Uma ideia de ORM no estilo do Django para manipular entidades do Google Datastore. Montando seu modelo: from noseiq

Geraldo Castro 16 Nov 01, 2022
Asynchronous multi-platform robot framework written in Python

NoneBot ✨ 跨平台 Python 异步机器人框架 ✨ 文档 · 安装 · 开始使用 · 文档打不开? 简介 NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。

NoneBot 3.1k Jan 04, 2023
AWS Workmail Migration Tool

WMigrate A tool for migrating AWS Workmail Users and Groups cross region and cross accounts. It also creates user and group aliases and adds the users

NK 1 Oct 27, 2021