Skip to main content
The Chapters API provides access to individual chapter metadata, content, and images. All endpoints are under /api/chapter and require authentication.
To get a paginated list of chapters for a novel, use GET /api/novel/{novel_id}/chapters on the Novels API.

GET /api/chapter/

Return the metadata for a single chapter. Path parameters
chapter_id
string
required
The chapter’s unique ID.
Response — a Chapter object.
id
string
Unique chapter ID.
novel_id
string
Parent novel ID.
volume_id
string | null
Parent volume ID, if the chapter belongs to a volume.
serial
integer
Chapter number within the novel (1-indexed).
url
string
Full URL of the chapter’s content page on the source site.
title
string
Chapter title.
is_done
boolean
Whether the chapter content has been crawled.
content_file
string
Relative path to the compressed chapter content file.
is_available
boolean
Whether the chapter content file is available locally.
created_at
integer
Creation time (UNIX ms).
updated_at
integer
Last update time (UNIX ms).
curl -s http://localhost:8080/api/chapter/ch001 \
  -H "Authorization: Bearer $TOKEN"
{
  "id": "ch001",
  "novel_id": "abc123",
  "volume_id": "vol001",
  "serial": 1,
  "url": "https://readnovelfull.com/overgeared/chapter-1.html",
  "title": "Chapter 1",
  "is_done": true,
  "content_file": "novels/abc123/chapters/000001.zst",
  "is_available": true,
  "created_at": 1700000000000,
  "updated_at": 1700001000000
}

GET /api/chapter//fetch

Create (or retrieve an existing) crawl job to download the content for this chapter. If a job for this chapter already exists, the existing job is returned instead of creating a duplicate. Path parameters
chapter_id
string
required
The chapter’s unique ID.
Response — a Job object. See the Jobs API for field descriptions.
curl -s http://localhost:8080/api/chapter/ch001/fetch \
  -H "Authorization: Bearer $TOKEN"

GET /api/chapter//images

List the images referenced in a chapter. Path parameters
chapter_id
string
required
The chapter’s unique ID.
Query parameters
available_only
boolean
default:"false"
When true, only return images that have already been downloaded locally.
Response — array of ChapterImage objects.
id
string
Unique image ID.
novel_id
string
Parent novel ID.
chapter_id
string
Parent chapter ID.
url
string
Original remote image URL.
is_done
boolean
Whether the image has been downloaded.
image_file
string
Relative path to the local image file.
is_available
boolean
Whether the local image file exists.
created_at
integer
Creation time (UNIX ms).
updated_at
integer
Last update time (UNIX ms).
curl -s "http://localhost:8080/api/chapter/ch001/images?available_only=true" \
  -H "Authorization: Bearer $TOKEN"

GET /api/chapter//read

Return the chapter content prepared for reading, including navigation links to the previous and next chapters.
The chapter content must have been crawled first (is_done: true). If the content is not yet available, trigger a fetch job via GET /api/chapter/{chapter_id}/fetch.
Path parameters
chapter_id
string
required
The chapter’s unique ID.
Response — a ReadChapterResponse object.
novel
object
The parent novel object. See Novels API for field descriptions.
chapter
object
The chapter metadata object (same fields as GET /api/chapter/{chapter_id}).
content
string | null
The chapter body as an HTML string. null if the content has not been fetched yet.
next_id
string | null
The ID of the next chapter, or null if this is the last chapter.
previous_id
string | null
The ID of the previous chapter, or null if this is the first chapter.
curl -s http://localhost:8080/api/chapter/ch001/read \
  -H "Authorization: Bearer $TOKEN"
{
  "novel": { "id": "abc123", "title": "Overgeared", "..." : "..." },
  "chapter": { "id": "ch001", "serial": 1, "title": "Chapter 1", "..." : "..." },
  "content": "<p>Grid was the top-ranked player...</p>",
  "next_id": "ch002",
  "previous_id": null
}

Build docs developers (and LLMs) love