Stephen King API
Free Stephen King API with no key: every novel with year, publisher, ISBN and page count, plus villains and short stories cross-linked between them. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Stephen King API?
The Stephen King API is a free, key-free REST API cataloguing Stephen King's published work. It returns novels with publication year, publisher, ISBN and page count, along with villains and short stories, cross-linked so each book lists the villains that appear in it.
This is a small, well-shaped dataset, which makes it genuinely useful as a teaching API — the sort of thing a front-end tutorial needs when JSONPlaceholder feels too abstract but a real production API is too much. It has real bibliographic fields (ISBNs, publishers, page counts) alongside fun ones (villains), so exercises can be more interesting than listing users.
The cross-linking is the part worth noticing. Each book carries a `villains` array where every entry is a name plus a URL to that villain's own record, which is a clean, discoverable HATEOAS-style design. It gives learners something real to practise against: follow a link, fetch the related resource, render the combination. One caveat — the API is hosted on a free Render instance, so the first request after an idle period can take several seconds while the service wakes up.
Quick facts
- Base URL
https://stephen-king-api.onrender.com/api- Authentication
- No API key or account. Open source and community-maintained.
- Rate limit
- No published limit. The dataset is small and fully cacheable.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Stephen King API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List every Stephen King novel
GET https://stephen-king-api.onrender.com/api/books
curl 'https://stephen-king-api.onrender.com/api/books'const res = await fetch("https://stephen-king-api.onrender.com/api/books");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://stephen-king-api.onrender.com/api/books", timeout=20)
res.raise_for_status()
print(res.json()){
"data": [
{
"id": 1,
"Year": 1974,
"Title": "Carrie",
"handle": "carrie",
"Publisher": "Doubleday",
"ISBN": "978-0-385-08695-0",
"Pages": 199,
"Notes": [
""
],
"created_at": "2023-11-13T23:48:47.848Z",
"villains": [
{
"name": "Tina Blake",
"url": "https://stephen-king-api.onrender.com/api/villain/4"
},
{
"name": "Cindi",
"url": "https://stephen-king-api.onrender.com/api/villain/14"
},
{
"name": "Myra Crewes",
"url": "https://stephen-king-api.onrender.com/api/villain/16"
},
{
"name": "Billy deLois",
"url": "https://stephen-king-api.onrender.com/api/villain/25"
},
{
"name": "Kenny Garson",
"url": "https://stephen-king-api.onrender.com/api/villain/38"
},
{
"name": "Mary Lila Grace",
"url": "https://stephen-king-api.onrender.com/api/villain/44"
},
{
"name": "Christine Hargensen",
"url": "https://stephen-king-api.onrender.com/api/villain/49"
},
{
"name": "Vic Mooney",
"url": "https://stephen-king-api.onrender.com/api/villain/75"
},
{
"name": "The Mortimer Snerds",
"url": "https://stephen-king-api.onrender.com/api/villain/77"
},
{
"name": "Billy Nolan",
"url": "https://stephen-king-api.onrender.com/api/villain/80"
},
{
"name": "Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
resource | path segment | Required | `books`, `villains` or `shorts`. books |
id | path segment | Optional | Fetch a single record by its numeric id. 1 |
(book/:id) | path segment | Optional | The singular `/book/{id}` path returns one book with its villains expanded. 1 |
Response fields
dataarray- The records. Everything is wrapped in a `data` envelope, so index into it rather than treating the response as a bare array.
idinteger- Numeric identifier used by the single-record endpoints.
Title / Year / Publisherstring- Bibliographic basics. Note the capitalised field names — the API mixes casing conventions, so `Title` and `handle` sit side by side.
ISBNstring- ISBN-13 with hyphens, suitable for looking the book up in Open Library or Google Books.
Pagesinteger- Page count for the catalogued edition.
handlestring- URL-safe slug for the title, handy for building routes in your own app.
villainsarray- Villains appearing in the book, each with a `name` and a `url` to its own record — follow the link to expand.
What you can build with the Stephen King API
- Provide a small, interesting dataset for a front-end or API tutorial
- Build a bibliography browser or reading-progress tracker
- Practise following linked resources between related endpoints
- Cross-reference ISBNs against Open Library to pull cover images
Common errors and how to fix them
Slow first request
The free Render instance sleeps when idle.
Fix: The first call after a quiet period can take several seconds to cold-start. Do not put it on a blocking render path without a timeout and a fallback.
404
Unknown resource or id.
Fix: Resource names are plural for lists (`/books`) and singular for one record (`/book/1`). That inconsistency is real — check both.
Mixed field casing
Not an error — the schema mixes `Title` with `handle`.
Fix: Map the response into your own consistently named type at the boundary rather than propagating the inconsistency.
Stephen King API — frequently asked questions
Is the Stephen King API free?
Yes, free with no API key or account. It is an open-source community project hosted on a free tier.
Why is the first request so slow?
It runs on a free Render instance, which sleeps after a period of inactivity. The first request wakes it up and can take several seconds; subsequent ones are fast. Do not block a page render on it without a fallback.
How do I get a book's villains?
Each book's `villains` array holds a name and a URL per villain. Follow that URL to fetch the full villain record — it is a link-following exercise, which is part of what makes this a useful teaching API.
Does the API include cover images?
No, it is bibliographic data only. The `ISBN` field gives you a clean join key into Open Library or Google Books, both of which serve cover images and are also documented in this directory.
Tools that pair with this API
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.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
Stephen King API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.