What's the API?
The Open5e API provides programmatic access to all resources and rules included on this site.
If you're working on an app or website, you can use this API to retrieve monsters, spells, rules, or just about anything else you need.
Visit the Live API to try it out!
You can use explore the API using the Live API page.
This api uses standard Django Rest Framework concepts, including filters, search, and ordering. You can play with all these settings in the live API.
Each resource can be filtered by a variety of properties visible on the live API list endpoint for that resource.
For example, monsters can be filtered by CR. For example:
api.open5e.com/monsters/?cr=3 will return all monsters with a challenge rating of 3.
Filtering by Document
Each resource includes a
"document__slug" property (note the double underscores) indicating which resource it came from, such as
"5esrd" for the 5th edition SRD, or
"tob" for Kobold Press' Tome of Beasts.
If you want to limit your search results to a specific resource, you can use filtering for this.
If you're trying to do case-insensitive search of a specific feature, you can use
/?search="term"to do a case-insensitive partial-word match on that resource.
This is supported for spells, monsters, items, and weapons at this time, and can be extended as needed.
https://api.open5e.com/monsters/?search=fir will return all monsters that contain "fir" in their names, including all monsters that include terms like "fire".
If you want to search the entire SRD for multiple kinds of resources, you can use
/search?text="search-term". This search is by full terms only.
This endpoint also returns useful properties for each type of resource, such as CR, type, and others. Additionally, the
highlighted property includes a span of markup containing a snippet of text where the term was found. This is intended to be used in previews of search results.
https://api.open5e.com/search/?text=fire will search the entire SRD for anything containing "fire".
Limits and Pagination
You can set how many results you want using
https://api.open5e.com/monsters/?limit=100 will return a paginated set of results with the page size of 100.
You can set how results are ordered using "ordering".
https://api.open5e.com/monsters/?ordering=challenge_rating will return results ordered by Challenge Rating. The API always sub-sorts by alphabetical order (so this will return CR0 creatures starting with the letter "A" first)