Jjwxc APIjjwxc.net ↗
Access novel metadata, chapter lists, chapter text, author profiles, and rankings from Jinjiang Literature City (jjwxc.net) via a structured JSON API.
What is the Jjwxc API?
The Jinjiang Literature City API exposes 6 endpoints covering novel metadata, chapter lists, chapter content, author profiles, search, and rankings from jjwxc.net. The get_novel_info endpoint returns over 10 structured fields per novel — including title, genre, word count, tags, cover image URL, and VIP status — identified by a numeric novel ID.
curl -X GET 'https://api.parse.bot/scraper/87bbfd85-7537-44a9-ac67-e8d7f51a0225/get_novel_info?novelid=3' \ -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 jjwxc-net-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: JJWXC Novel API — bounded, re-runnable; every call capped."""
from parse_apis.jjwxc_novel_api import JJWXC, RankingType, SearchType, NovelNotFound
jjwxc = JJWXC()
# Browse top-ranked novels by total score
for ranked in jjwxc.rankednovels.list(type=RankingType.TOTAL_SCORE, limit=5):
print(ranked.rank, ranked.novel_name, ranked.author)
# Search for novels by title keyword
result = jjwxc.novelsummaries.search(query="修仙", type=SearchType.TITLE, limit=1).first()
if result:
print(result.novel_name, result.author_name, result.status)
# Drill into full novel details from a search result
novel = result.details()
print(novel.name, novel.genre, novel.score, novel.word_count)
# List chapters of that novel
for chapter in novel.chapters.list(limit=3):
print(chapter.chapter_id, chapter.name, chapter.size)
# Fetch a known novel by ID and read its first chapter
novel = jjwxc.novel("3").refresh()
content = novel.chapters.content(chapterid="1")
print(content.name, content.size, content.content[:100])
# Fetch an author profile
author = jjwxc.authorprofiles.get(authorid="2")
print(author.author_name)
for work in author.works:
print(work.name, work.status, work.word_count)
# Typed error handling
try:
bad = jjwxc.novel("99999999999").refresh()
except NovelNotFound as exc:
print(f"Novel not found: {exc}")
print("exercised: rankednovels.list / novelsummaries.search / novel.refresh / chapters.list / chapters.content / authorprofiles.get")
Fetch comprehensive novel metadata by novel ID via the mobile API. Returns title, author, genre, tags, synopsis, cover image, word count, chapter count, score, VIP status, and other metadata.
| Param | Type | Description |
|---|---|---|
| novelidrequired | string | The numeric novel ID (e.g. "3", "4001734"). |
{
"type": "object",
"fields": {
"isVip": "string - whether novel has VIP chapters (0 or 1)",
"novelId": "string - the queried novel ID",
"authorId": "string - numeric author ID",
"novelName": "string - title of the novel",
"novelSize": "string - formatted word count",
"novelTags": "string - tags",
"renewDate": "string - last update date",
"authorName": "string - author's display name",
"novelClass": "string - genre classification",
"novelCover": "string - URL to cover image",
"novelIntro": "string - synopsis/introduction text",
"novelScore": "string - accumulated score",
"novelChapterCount": "string - total chapter count"
},
"sample": {
"data": {
"isVip": "0",
"novelId": "3",
"authorId": "2",
"novelName": "烟花之舞",
"novelSize": "7,006",
"novelTags": "正剧",
"renewDate": "2003-07-28 14:50:00",
"authorName": "慕容",
"novelClass": "原创-言情-近代现代-爱情-女主",
"novelCover": "https://i9-static.jjwxc.net/novelimage.php?novelid=3&coverid=49&ver=ec6c2fe84343c62593254f490e62af25",
"novelIntro": "一个中篇...",
"novelScore": "246.3万",
"novelChapterCount": "1"
},
"status": "success"
}
}About the Jjwxc API
Novel Data and Chapter Access
The get_novel_info endpoint accepts a numeric novelid and returns fields such as novelName, novelClass, novelTags, novelSize, renewDate, novelCover, and isVip. The authorId field in the response can be fed directly into get_author_profile to retrieve the author's display name and a list of their published works with genre, completion status, word count, and score.
Chapter-level data is available through two endpoints. get_novel_chapters returns a full chapterlist array where each entry includes chapterid, chaptername, chaptersize, chapterdate, isvip, and islock. get_chapter_content takes both a novelid and a chapterid and returns the full chapter text (content), the chapter title (chapterName), and the word count (chapterSize). VIP-locked chapters are not accessible without authentication and will return an error response rather than text content.
Search and Rankings
search_novels accepts a query string and an optional type parameter that controls what field is searched: 1 for title, 2 for author, 4 for protagonist, 5 for supporting character, and 6 for other. Results are paginated via the page parameter. get_rankings returns ranked novel lists by type — monthly (5), seasonal (6), total score (7), or word count (8) — with each entry providing rank, novel_name, novel_url, author, and author_url. The author_url value can be parsed to obtain an authorid for use with get_author_profile.
The Jjwxc API is a managed, monitored endpoint for jjwxc.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jjwxc.net 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 jjwxc.net 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 tracker that monitors
renewDateandchaptercountfromget_novel_infoto alert users when a followed novel updates. - Compile genre-specific novel catalogs using the
novelClassandnovelTagsfields fromget_novel_info. - Analyze prolific authors by pulling their full works list — including word count and score per title — via
get_author_profile. - Identify trending titles by querying
get_rankingswith monthly (type=5) or total-score (type=7) ranking types. - Support full-text search across jjwxc.net by protagonist or supporting character name using
search_novelswith type=4 or type=5. - Extract free-chapter text for NLP or readability analysis using
get_chapter_contenton non-VIP chapters. - Map author networks by cross-referencing
authorIdvalues from multiple novel records throughget_author_profile.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Jinjiang Literature City have an official developer API?+
What happens when `get_chapter_content` is called on a VIP-locked chapter?+
content, chapterName, and chapterSize fields. The isvip and islock fields from get_novel_chapters can be checked before requesting content to avoid unnecessary calls.Does `search_novels` return the same metadata fields as `get_novel_info`?+
search_novels returns an items array but does not guarantee the full field set available from get_novel_info (such as novelCover, novelTags, or renewDate). Use search_novels to find novel IDs, then call get_novel_info with those IDs to retrieve complete metadata.Are reader reviews or comment data available through the API?+
Can `get_rankings` be filtered by genre or tag?+
type parameter on get_rankings selects only the time period or scoring criterion (monthly, seasonal, total score, word count); genre-level filtering is not supported. You can fork this API on Parse and revise it to add genre-scoped ranking parameters.