Qingheks APIqingheks.com ↗
Access Qinghe Book City (青禾书城) via API. Search novels by keyword, retrieve chapter lists, and read full chapter text with 3 endpoints.
What is the Qingheks API?
The Qinghe Book City API provides 3 endpoints to search, browse, and read Chinese novels hosted on qingheks.com. Use search_books to find titles by keyword, author, or topic and get back book IDs and metadata. From there, get_book_chapters returns the complete table of contents with chapter numbers, publication status, and a synopsis, and get_chapter_content delivers the full text of any individual chapter.
curl -X GET 'https://api.parse.bot/scraper/218aa804-b4dd-4a0f-bb3a-f499ce76722e/search_books?keyword=%E4%BF%AE%E4%BB%99' \ -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 qingheks-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: Qinghe Book City SDK — search, browse chapters, read content."""
from parse_apis.qingheks_com_api import QingheBooks, InputFormatInvalid
client = QingheBooks()
# Search for books by keyword; limit total results fetched.
for book_summary in client.book_summaries.search(keyword="修仙", limit=3):
print(book_summary.title, "-", book_summary.author)
# Drill into the first result's full metadata (chapter list, description).
hit = client.book_summaries.search(keyword="修仙", limit=1).first()
if hit is not None:
book = hit.details()
print(book.title, f"({book.total_chapters} chapters)")
print(book.description[:80])
# Read the first chapter's content using the chapter list.
if book.chapters:
first_ch = book.chapters[0]
try:
content = book.get_chapter(chapter_number=first_ch.chapter_number)
print(content.title)
print(content.content[:200])
except InputFormatInvalid as e:
print(f"Invalid input: {e.message}")
print("exercised: book_summaries.search / details / get_chapter")
Search for books by keyword (title, author name, or content-related terms). Returns all matching results in a single response with no pagination. Each result includes book_id which can be used with get_book_chapters.
| Param | Type | Description |
|---|---|---|
| keywordrequired | string | Search keyword — can be a book title, author name, or content-related term. |
{
"type": "object",
"fields": {
"total": "Number of results returned",
"keyword": "The search keyword used",
"results": "Array of matching books"
},
"sample": {
"data": {
"total": 78,
"keyword": "修仙",
"results": [
{
"title": "【炉鼎修仙记】(7-12)【作者:安公子】",
"author": "burst89",
"status": "连载",
"book_id": "241533",
"summary": "作者:安公子字数:20,620字第七章:法舟内扇脸惩罚犯贱母狗师姐,正道仙子来袭春已暖,夏未至。山林繁茂,妖兽横行。这个世界是公平的,充盈灵气滋养下,人类修士更容易获得更高的修为和更强的神通,移山填海..",
"update_time": "去年"
}
]
},
"status": "success"
}
}About the Qingheks API
Searching for Books
The search_books endpoint accepts a single keyword parameter — a book title, author name, or content-related term — and returns all matching results in one response with no pagination. Each item in the results array carries a book_id that feeds directly into the other two endpoints. The response also includes a total count and echoes back the keyword used.
Retrieving Chapter Lists
get_book_chapters takes a numeric book_id and returns full book metadata: title, author, status (e.g. 连载 for ongoing or 已完结 for completed), description, update_time, and total_chapters. The chapters array is ordered and each entry includes a chapter_number and chapter title, giving you everything needed to build a table of contents or iterate through the book programmatically.
Reading Chapter Content
get_chapter_content requires both a book_id and a chapter_number sourced from the chapters list. It returns the chapter title and the full content text body. There are no truncation limits described for the content field — the full chapter text is returned in a single response.
Coverage Notes
All three endpoints work together as a read pipeline: search returns IDs, the chapters endpoint maps out the structure, and the content endpoint delivers the text. Publication status in the status field lets you distinguish active serials from completed works without fetching the full chapter list first.
The Qingheks API is a managed, monitored endpoint for qingheks.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when qingheks.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 qingheks.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 Chinese novel reader app using full chapter text from
get_chapter_content - Index a corpus of Chinese web fiction by iterating search results and chapter metadata
- Track ongoing serials by monitoring
update_timeandtotal_chaptersfromget_book_chapters - Generate book summaries or study aids from the
descriptionand chapter title list - Filter completed novels using the
statusfield before downloading chapter content - Build a recommendation tool by matching
keywordsearches across multiple genres or authors - Archive specific author catalogs by searching by author name and collecting all returned
book_idvalues
| 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 Qinghe Book City have an official developer API?+
What does `search_books` return and does it paginate?+
book_id usable in the other endpoints, alongside basic book metadata. For very broad keywords the result set could be large, so more specific terms produce more targeted results.Does the API expose reader statistics like view counts, ratings, or user reviews?+
Is there a way to browse books by genre or category without a keyword?+
search_books, which requires a keyword string. Genre or category browsing is not covered. You can fork this API on Parse and revise it to add a category-browse endpoint.How do I tell whether a book is still being updated?+
get_book_chapters response includes a status field that distinguishes ongoing serials (连载) from completed works (已完结), as well as an update_time timestamp. You can check both fields without reading any chapter content.