Dungeons is a Mastodon-based bot that runs D&D-style campaigns through public polls.
The Dungeons bot and this website are made by ASTRELION.
Dungeons and this supporting website are both GNU AGPL licensed, with their source available here and here, respectfully. Dungeons was made primarily with Python and the Mastodon.py library, and uses Supabase as a database backend to populate this site and its API. This site was made with SvelteKit and Typescript.
All D&D data is obtained through the D&D 5e API, which itself is populated from the D&D 5e SRD.
The background images on this site were generated with Midjourney.
This site collects simple and anonymous usage statistics through Counter. Opt-in.
The API provided through this site is intended primarily for its own use, though its publicly available should anyone want to use it. Please be kind with your requests, and respect the rate limits and browser caching of its data. The API is subject to change at any point, including the endpoints used and the structure of its data.
_dnd_dict dicts are truncated data obtained through the D&D 5e API and provide the path to obtain the full data. Any dict with a dnd_api_url key is a dict directly from the D&D 5e API and thus follow its data formats.
All endpoints are paginated with a size of 100 rows per page, with the exception of the emojis, images, and mastodon endpoints. A page can be passed as a URL search parameter like ?page=1. If no page is provided then the first page is returned. You may also specify a custom page size with ?page_size=100 (max 100). Rows are ordered in descending order by their ID.
You can use URL search parameters on all endpoints to query for any top-level field. For example, to get all characters with 42 max hit points you could use a query like /api/characters?maxHitpoints=42.
Rate Limit: 60 requests per IP per minute.