Open5e SRD 5.1 Scraper
parseforge/open5e-srd-scraper
OtherEducationDeveloper tools
Scrapes Open5e SRD 5.1 entries by resource type, search query, challenge rating, spell level, or source document. Returns each entry as a flat row for export to CSV, JSON, Excel, or XML.
- Total users
- 2
- Monthly active
- 1
- Total runs
- 105
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
Open5e SRD 5.1 Scraper
Scrape the Open5e SRD 5.1 database for monsters, spells, magic items, and more, up to a million entries per run. Every entry comes as a flat row with its full stat block, description, and source document. No API key or registration. Export to CSV, JSON, Excel, or XML.
The Open5e API is rate-limited and returns nested JSON that is hard to flatten. This Actor reads the public Open5e SRD 5.1 database directly, filters by search term, challenge rating, spell level, or source document, and returns each entry in one fixed schema. Build your own monster manual, spellbook, or item compendium without writing a single line of code.
| Who uses it | What they scrape Open5e for |
|---|---|
| Game masters | Build a custom encounter table with monsters filtered by challenge rating and source book |
| Homebrew designers | Export the SRD baseline for spells or magic items to compare against their own creations |
| Tool developers | Populate a searchable database for a character builder or virtual tabletop |
| Data analysts | Study the distribution of monster stats or spell levels across official and third-party sources |
What it does
This Actor collects Open5e SRD 5.1 entries by resource type, search query, challenge rating, spell level, or source document, and returns each one as a flat row.
- ๐ Resource families: monsters, spells, magic items, weapons, armor, classes, races, feats, backgrounds, conditions, and rules sections.
- ๐ Search query: free-text search across the chosen resource, such as 'dragon' or 'fireball'.
- ๐ฏ Challenge rating filter: narrow monsters to a specific CR, from 0 to 30.
- โจ Spell level filter: restrict spells to cantrips (0) or levels 1 through 9.
- ๐ Source document filter: limit results to Wizards SRD, Tome of Beasts, Deep Magic, and more.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Open5e data
๐ Build a monster manual.
A game master scrapes all monsters with challenge rating 5 or lower from the Wizards SRD and Tome of Beasts, then exports the dataset to CSV for a custom encounter binder.
๐ฎ Create a spellbook app.
A developer scrapes every spell from levels 0 to 9, filters by the search term 'fire', and loads the flat JSON into a mobile spell reference.
โ๏ธ Compare magic items across sources.
A homebrew designer scrapes all magic items from Deep Magic and Vault of Magic, then uses the dataset to check for duplicates before publishing new content.
๐ Analyze stat distributions.
A data analyst scrapes all monsters from the Wizards SRD and computes average hit points and armor class by challenge rating for a balance study.
Why choose this scraper
| What you get | |
|---|---|
| No API key | The Actor reads the public Open5e database directly, so you do not need to register or manage tokens. |
| Flat output | Every entry is returned as a single row with consistent fields, ready for spreadsheets or databases. |
| Up to a million entries | Set maxItems as high as 1,000,000 to pull the entire SRD in one run. |
| Multiple formats | Export to CSV, JSON, Excel, or XML from the Apify dataset. |
How it compares
No other Store actor targets Open5e the same way, so the honest comparison is with the alternatives teams actually weigh.
| Open5e SRD 5.1 Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Open5e changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from resource type, search query, challenge rating, spell level, and source document, alone or together, and filters run as each entry is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"resourceType": "monsters"
}
A larger pull:
{
"maxItems": 200,
"resourceType": "monsters"
}
Pricing
Pay-per-result: $0.005 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.50 |
| 1,000 results | $5.00 |
| 10,000 results | $50.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Open5e SRD 5.1 Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Open5e through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/open5e-srd-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. If you set a searchQuery that does not match any entry, or combine a challengeRating with a non-monster resource, the Actor returns an empty dataset. Try clearing filters or broadening the search term.
Why does the run stop before reaching maxItems?
The Actor stops when it has collected all entries that match your filters. If the total number of matching entries is less than maxItems, the run ends early. Increase maxItems or remove filters to get more data.
Why are some fields empty in the output?
Not every entry has every field. For example, a monster may not have a damage vulnerability, or a spell may not have a material component. Empty fields are normal and reflect the source data.
Can I scrape multiple resource types in one run?
No, the Actor scrapes one resource type per run. Run it multiple times with different resourceType values and merge the datasets if needed.
FAQ
| Question | Answer |
|---|---|
| What is the Open5e SRD 5.1? | It is a community-maintained database of the D&D 5th Edition System Reference Document plus popular third-party content like Tome of Beasts and Deep Magic. This Actor scrapes that database directly. |
| Do I need an API key or registration? | No. The Actor reads the public Open5e database without authentication, so you can start scraping immediately. |
| Can I scrape all monsters at once? | Yes. Set resourceType to 'monsters' and maxItems to 1000000 to collect the entire monster database in a single run. |
| How do I filter by challenge rating? | Use the challengeRating input. It accepts values like '1/2', '5', or '20'. Leave it empty to include all challenge ratings. |
| Can I search for a specific spell or item? | Yes. Set resourceType to 'spells' or 'magicitems' and enter a searchQuery like 'fireball' or 'cloak'. The Actor returns only matching entries. |
| What source documents are supported? | The document input includes Wizards SRD, Tome of Beasts 1-3, Creature Codex, Deep Magic, Vault of Magic, Level Up Advanced 5e, and more. Choose one or leave it empty for all sources. |
| What output formats are available? | You can export the dataset to CSV, JSON, Excel, or XML directly from the Apify platform. |
| Is the data flat or nested? | The Actor flattens each entry into a single row with consistent fields, so you can load it straight into a spreadsheet or database. |
| Can I scrape rules sections? | Yes. Set resourceType to 'sections' to collect rules text from the SRD, such as combat or spellcasting rules. |
| How many entries can I scrape per run? | You can set maxItems up to 1,000,000. The actual number returned depends on the filters you apply. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Open5e. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many entries to collect per run. | 10 |
| resourceType | string (11 options) | Which SRD resource family to scrape. | monsters |
| searchQuery | string | Free-text search across the chosen resource. Examples: 'dragon', 'fireball', 'cloak'. | not set |
| challengeRating | string (35 options) | Monsters only. Filter monsters by their challenge rating. | not set |
| spellLevel | integer | Spells only. 0 for cantrips, 1-9 for leveled spells. | not set |
| document | string (14 options) | Restrict to one rules document. | not set |
Pricing
from $3.75 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Result Item | Charged once per result collected. | $0.00375 to $0.005 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~open5e-srd-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
