Welcome to the Rhythm Café API!

The API is just a bunch of pre-existing open source software chucked onto a fly.io server. The data that the API serves is collected by a Python script called rd-indexer. The script runs approximately every hour and updates the levels when it runs.

The API currently provides the following software:

Datasette

Datasette is a "tool for exploring and publishing data". It exposes the level info as an SQL database. You can browse the data, make queries, and download the underlying SQL database.

The rhythm.cafe page doesn't really use Datasette much at the moment. I was originally planning to only use Datasette to serve the entire page, but I found that the search functionality was not very good. However, I still think it could be useful for third parties, so I'm keeping it in here. For instance, you could use it to write a script that downloads all the levels.

You can find more info about Datasette here.

Typesense (search)

Typesense is a search engine, which I'm using extensively. However, compared to Datasette it is a lot more fiddly. You will have to interact with it using the JSON interface rather than directly browsing in a web browser. For instance, you might need to use tools such as Postman or Insomnia to successfully interact with Typesense. Therefore, if you don't think you need search in the way you interact with levels, my suggestion is to stick with Datasette.

Also, Typesense needs an API key, which is passed in through the x-typesense-api-key header. The API key is nicolebestgirl.

Contact

Feel free to DM me @auburnsummer on the Rhythm Doctor Discord server if you have any questions!

You can also send me email at this ROT13'd address: nqzva ng eulguz qbg pnsr