Wizard World API
Free wizarding world API with no key: elixirs, spells, houses, ingredients and wizards, with effects, side effects, difficulty and inventor links. Tested example included.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Wizard World API?
Wizard World is a free, key-free API covering the Harry Potter universe. The elixirs endpoint returns each potion with its effect, side effects, brewing difficulty, ingredient list and the wizards credited with inventing it.
Fan-data APIs usually stop at a flat list of characters. This one is modelled properly: elixirs link to ingredient objects and to inventor objects, each with their own id, so you can walk from a potion to its ingredients to every other potion using them without any string matching. That relational structure is what makes it useful for a quiz generator or a browsable reference rather than just a list.
The nulls are honest rather than sloppy. `characteristics`, `time` and `manufacturer` are null on many entries, and `difficulty` frequently reads `Unknown` — because the source material simply does not say. An API that invented values for those would be worse. Alongside elixirs there are endpoints for spells, houses, ingredients and wizards, each supporting query filters, and the whole thing sends permissive CORS headers so it works directly from browser JavaScript.
Quick facts
- Base URL
https://wizard-world-api.herokuapp.com- Authentication
- No API key and no account.
- Rate limit
- No published limit. Data is static — cache it.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Wizard World API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. List elixirs with their ingredients
GET https://wizard-world-api.herokuapp.com/Elixirs
curl 'https://wizard-world-api.herokuapp.com/Elixirs'const res = await fetch("https://wizard-world-api.herokuapp.com/Elixirs");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://wizard-world-api.herokuapp.com/Elixirs", timeout=20)
res.raise_for_status()
print(res.json())[
{
"id": "0106fb32-b00d-4d70-9841-4b7c2d2cca71",
"name": "Fergus Fungal Budge",
"effect": "Treats ringworm, fungicide",
"sideEffects": "Potential negative side effects if used by elves",
"characteristics": null,
"time": null,
"difficulty": "Unknown",
"ingredients": [
{
"id": "4ff5aaf2-776f-43c6-9896-c79c67dc90c5",
"name": "Neem oil"
},
{
"id": "846be123-c40f-4156-91f4-800305df7485",
"name": "Jewelweed"
},
{
"id": "a08e7390-a362-4013-b413-11b151fae20e",
"name": "Onion juice"
}
],
"inventors": [],
"manufacturer": null
},
{
"id": "021b40b3-68ba-4fde-a595-dbb07500674d",
"name": "Manegro Potion",
"effect": "Rapid hair growth",
"sideEffects": null,
"characteristics": null,
"time": null,
"difficulty": "Unknown",
"ingredients": [],
"inventors": [],
"manufacturer": null
},
{
"id": "024f56cc-ccd2-4d71-adbd-3cb383c2fe87",
"name": "Potion N. 220",
"effect": null,
"sideEffects": null,
"characteristics": null,
"time": null,
"difficulty": "Unknown",
"ingredients": [],
"inventors": [],
"manufacturer": null
},
{
"id": "06beea01-1e2a-4344-9da3-c27abc4a4580",
"name": "Rudimentary body potion",
"effect": "Helps restore non-corporeal wizards to a rudimentary bodies/sustains rudimentary bodies",
"sideEffects": null,
"characteristics": null,
"time": null,
"difficulty": "Unknown",
"ingredients": [
{
"id": "97128d90-bf57-49e5-b314-417Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Name | query | Optional | Filter elixirs by name. Manegro |
Difficulty | query | Optional | Filter by brewing difficulty. Advanced |
Ingredient | query | Optional | Return elixirs containing a given ingredient. Jewelweed |
/Spells | path | Optional | Spells with incantation, effect, light colour and type. |
/Houses | path | Optional | Hogwarts houses with heads, ghosts and traits. |
/Wizards | path | Optional | Wizards with the elixirs they invented. |
Response fields
(root)array- Elixirs. No envelope object.
idstring- UUID for the elixir.
namestring- Elixir name, such as `Fergus Fungal Budge`.
effectstring- What the potion does.
sideEffectsstring- Adverse effects. Null where the source material records none.
characteristicsstring- Appearance and properties. Null on many entries.
timestring- Brewing time. Frequently null.
difficultystring- Brewing difficulty, or `Unknown` where the books do not say.
ingredientsarray- Ingredient objects with their own `id` and `name`, so you can pivot to other elixirs using the same ingredient.
inventorsarray- Wizard objects credited with inventing the elixir. Often empty.
manufacturerstring- Producer where one is named. Usually null.
What you can build with the Wizard World API
- Build a wizarding world reference or quiz application
- Practise working with relational JSON and linked entities
- Generate trivia questions from effects and side effects
- Demonstrate filtering and joining in a teaching example
Common errors and how to fix them
Null fields everywhere
The source material does not record every attribute.
Fix: Render conditionally. Null here means unknown, and inventing a value would be worse.
Empty inventors array
Most potions have no recorded inventor.
Fix: Treat an empty array as normal rather than as a failed lookup.
Filter returns nothing
Query parameter names are capitalised.
Fix: It is `Name` and `Difficulty`, not lowercase. The Swagger document lists the exact spellings.
Slow first response
The host sleeps between requests on a free tier.
Fix: Expect a cold start of a few seconds after idle. Cache aggressively; the data never changes.
Wizard World API — frequently asked questions
Is the Wizard World API free?
Yes, free with no key or account, and it sends permissive CORS headers so it works from browser JavaScript.
What does it cover besides potions?
Spells with incantations and effects, Hogwarts houses with their heads and ghosts, ingredients, and wizards linked to the elixirs they invented.
Why are so many fields null?
Because the books do not record brewing times, appearances or manufacturers for most potions. The API returns null rather than inventing plausible values, which is the right choice.
How do the relationships work?
Ingredients and inventors come back as full objects with their own ids, so you can walk from an elixir to an ingredient and then find every other elixir using it, with no string matching.
Tools that pair with this API
Random List Picker
Paste a list and pick random winners without repeats, or shuffle the whole list. A fair random name and item picker for giveaways, draws and raffles.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Compare Two Lists
Paste two lists and instantly see items in both, only in list A, only in list B, and the combined set — with case-insensitive and trim options.
Alternatives to Wizard World API
If Wizard World API does not fit, these book & dictionary apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| Free Dictionary API | Free dictionary API with no key: definitions, phonetics, audio pronunciation, synonyms, antonyms and examples for English words. Tested curl example. | No key | Yes | 19 Aug 2026 |
| Datamuse | Free word-finding API with no key: rhymes, synonyms, antonyms, related words, spelling suggestions and autocomplete. 100k requests/day. Tested example. | No key | Yes | 19 Aug 2026 |
| Open Library | Free book API from the Internet Archive: search by ISBN, title or author, with covers, publication data and subjects. No key required. Tested curl example. | No key | Yes | 19 Aug 2026 |
| PoetryDB | Free poetry API with no key: full poem text by author, title or line count from a public-domain corpus. CORS enabled. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Wolne Lektury | Free Wolne Lektury API with no key: thousands of Polish public domain books with full texts, audiobooks, covers and literary epoch metadata. Tested example included. | No key | Yes | 21 Aug 2026 |
| Bible API | Free Bible API with no key: fetch any verse, passage or chapter as JSON with multiple translations. Simple URL-based reference lookup. Tested example. | No key | Yes | 19 Aug 2026 |
Wizard World API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.