Webnovel APIwebnovel.com ↗
Fetch book metadata, search titles, and retrieve Power Rankings from Webnovel.com. Covers synopsis, ratings, tags, view counts, and more across multiple locales.
What is the Webnovel API?
The Webnovel.com API exposes 3 endpoints covering book metadata, title search, and the Power Ranking leaderboard. The get_book_details endpoint returns 10 structured fields per book including synopsis, rating score, chapter count, view count, cover image URL, and tags. Search results support pagination and optional locale filtering across Portuguese, Spanish, Japanese, French, German, and other language editions of the site.
curl -X GET 'https://api.parse.bot/scraper/e189b2e3-a0c9-4ac8-9358-cba48c9531d1/get_book_details?book_id=32060926408545505' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace webnovel-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Webnovel SDK — browse rankings, drill into details, and search."""
from parse_apis.webnovel_com_api import Webnovel, ReleasePeriod, VotePeriod, InputFormatInvalid
client = Webnovel()
# Browse the power ranking for recent books, capped at 5 results.
for book in client.ranked_books.list(
release_period=ReleasePeriod.BI_ANNUAL,
vote_period=VotePeriod.WEEKLY,
limit=5,
):
print(book.rank, book.title, book.power_stones, "stones")
# Drill into the top-ranked book's full details.
top = client.ranked_books.list(release_period=ReleasePeriod.BI_ANNUAL, limit=1).first()
if top is not None:
try:
detail = top.details()
except InputFormatInvalid as e:
print(f"Could not fetch details: {e.message}")
else:
print(f"{detail.title} — {detail.category}")
print(f"Chapters: {detail.chapter_count}, Views: {detail.view_count}")
print(f"Rating: {detail.rating_score} ({detail.rating_count} ratings)")
print(f"Ranking: {detail.ranking}") # None when unavailable
print(f"Synopsis: {detail.synopsis[:120]}...")
# Search for books by keyword.
for hit in client.book_summaries.search(query="dragon", limit=3):
print(hit.title, hit.rating, ", ".join(hit.categories))
print("exercised: ranked_books.list / details / book_summaries.search")
Fetches detailed metadata for a webnovel book given its ID or URL slug. Returns the page URL, title, cover image URL, category, chapter count, view count, power ranking position (may be null when unavailable), rating score and count, full synopsis, and tags. Accepts both the numeric book ID (e.g. '32060926408545505') and the full URL slug with title (e.g. 'o-mais-fraco-domador-de-bestas-consegue-todos-os-dragoes-sss_32060926408545505').
| Param | Type | Description |
|---|---|---|
| book_idrequired | string | Webnovel book identifier. Can be the numeric ID (e.g. '32060926408545505') or the full slug including title (e.g. 'o-mais-fraco-domador-de-bestas-consegue-todos-os-dragoes-sss_32060926408545505'). |
{
"type": "object",
"fields": {
"tags": "array of strings — book tags",
"title": "string — book title",
"ranking": "integer or null — power stone ranking position, null when unavailable",
"category": "string — book category (e.g. Fantasia)",
"page_url": "string — canonical URL of the book page",
"synopsis": "string — full book description/synopsis",
"view_count": "integer — total number of views",
"cover_image": "string — URL of the book cover image",
"rating_count": "integer — number of ratings/reviews",
"rating_score": "number — average rating score out of 5",
"chapter_count": "integer — total number of chapters"
}
}About the Webnovel API
Book Details
The get_book_details endpoint accepts either a numeric book ID (e.g. 32060926408545505) or a full URL slug and returns the canonical page_url, title, cover_image, category, synopsis, view_count, rating_score, rating_count, tags, and ranking. The ranking field reflects the book's current Power Stone position and is returned as null when the book is not ranked. All fields come back in a single call.
Search
The search_books endpoint accepts a query keyword and returns up to 20 results per page. Each result object includes url, title, cover_image, categories, rating, synopsis, and tags. The optional type parameter restricts results to novels, fan-fiction, or comics/manga — unrecognized values are rejected before the request is dispatched. Pass a language locale code such as pt or ja to search within a specific regional edition of the site. The has_more boolean in the response indicates whether additional pages exist.
Power Ranking
The list_power_ranking endpoint returns books ordered by Power Stones received. Each record includes rank, book_id, url, title, cover_image, synopsis, tags, category, author, and the power-stone count. The limit parameter caps at 100 per call. Additional filters — vote_period, content_type, contract_type, release_period, and reading_preference — let you narrow results to specific ranking boards (e.g. weekly translated works with a female lead). The filters object in the response echoes the effective values applied.
The Webnovel API is a managed, monitored endpoint for webnovel.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when webnovel.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official webnovel.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a reading list app that pulls cover images, synopses, and ratings from
get_book_detailsfor a set of book IDs. - Track weekly Power Ranking movement by polling
list_power_rankingwithvote_periodand storing rank positions over time. - Search for fan-fiction titles in a specific language using
search_bookswith thetype=fan-fictionandlanguageparameters. - Aggregate tag frequency across top-ranked books to identify trending genres on the platform.
- Display localized book recommendations by querying
search_bookswith differentlanguagelocale codes for a multilingual audience. - Compare view counts and rating scores across books in the same category using repeated
get_book_detailscalls. - Monitor newly released contracted works on the Power Ranking by combining
release_periodandcontract_typefilters inlist_power_ranking.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Webnovel.com have an official developer API?+
What does the `ranking` field in `get_book_details` represent, and when is it null?+
null rather than omitted.Can I retrieve individual chapter content or the chapter list for a book?+
How does locale filtering work across the endpoints, and which locales are supported?+
search_books and list_power_ranking accept a language parameter that directs the query to a specific regional edition of Webnovel. Supported values include pt, es, ja, fr, and de. get_book_details accepts a full locale-specific URL slug, so passing a Portuguese URL will return Portuguese metadata.