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.

Filtering

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.

For example will only return monsters from Kobold Press' Tome of Beasts.

Resource Searches

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.

For example: 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".

General Search

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.

For example: 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 /?limit.

For example, https://api.open5e.com/monsters/?limit=100 will return a paginated set of results with the page size of 100.

Ordering

You can set how results are ordered using "ordering".

For example, 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)