Skip to main content

AdjacentBooksResponse

Response containing adjacent books in the same series

Returns the previous and next books relative to the requested book, ordered by book number within the series.

next object

Book data transfer object

analysisErrorstring | nullnullable

Error message if book analysis failed

Example: Failed to parse CBZ: invalid archive
analyzedbooleanrequired

Whether the book has been analyzed (page dimensions available)

Example: true
chapternumber,null<float>nullable

Chapter number from book metadata (may be fractional)

Example: 42.5
createdAtstring<date-time>required

When the book was added to the library

Example: 2024-01-01T00:00:00Z
deletedbooleanrequired

Whether the book has been soft-deleted

Example: false
fileFormatstringrequired

File format (cbz, cbr, epub, pdf)

Example: cbz
fileHashstringrequired

File hash for deduplication

Example: a1b2c3d4e5f6g7h8i9j0
fileSizeinteger<int64>required

File size in bytes

Example: 52428800
idstring<uuid>required

Book unique identifier

Example: 550e8400-e29b-41d4-a716-446655440001
koreaderHashstring | nullnullable

KOReader-compatible partial MD5 hash for sync

libraryIdstring<uuid>required

Library this book belongs to

Example: 550e8400-e29b-41d4-a716-446655440000
libraryNamestringrequired

Name of the library

Example: Comics
numberinteger,null<int32>nullable

Book number within the series

Example: 1
pageCountinteger<int32>required

Number of pages in the book

Example: 32
pathstringrequired

Filesystem path to the book file

Example: /media/comics/Batman/Batman - Year One 001.cbz
readProgress object

User's read progress for this book

bookIdstring<uuid>required

Book ID

Example: 550e8400-e29b-41d4-a716-446655440002
completedbooleanrequired

Whether the book is completed

Example: false
completedAtstring,null<date-time>nullable

When the book was completed (if completed)

Example: 2024-01-20T20:00:00Z
currentPageinteger<int32>required

Current page (1-indexed)

Example: 42
idstring<uuid>required

Progress record ID

Example: 550e8400-e29b-41d4-a716-446655440000
progressPercentagenumber,null<double>nullable

Progress as a percentage (0.0-1.0) For EPUBs, this is the stored percentage from reflowable content For other formats, this is calculated from current_page / total_pages

Example: 0.45
startedAtstring<date-time>required

When reading started

Example: 2024-01-10T14:30:00Z
updatedAtstring<date-time>required

When progress was last updated

Example: 2024-01-15T18:45:00Z
userIdstring<uuid>required

User ID

Example: 550e8400-e29b-41d4-a716-446655440001
readingDirectionstring | nullnullable

Effective reading direction (from series metadata, or library default if not set) Values: ltr, rtl, ttb or webtoon

Example: ltr
seriesIdstring<uuid>required

Series this book belongs to

Example: 550e8400-e29b-41d4-a716-446655440002
seriesNamestringrequired

Name of the series

Example: Batman: Year One
summarystring | nullnullable

Book summary/description from book_metadata (ComicInfo <Summary> or EPUB description). Surfaced on the list response so cards can show it on hover without fetching the full detail payload.

Example: Bruce Wayne returns to Gotham to begin his war on crime.
titlestringrequired

Book title

Example: Batman: Year One #1
titleSortstring | nullnullable

Title used for sorting (title_sort field)

Example: batman year one 001
updatedAtstring<date-time>required

When the book was last updated

Example: 2024-01-15T10:30:00Z
volumeinteger,null<int32>nullable

Volume number from book metadata

Example: 1
wantToReadboolean | nullnullable

Whether the requesting user has this book in their want-to-read queue.

None when not computed for this response; populated on book list and detail endpoints that have a user context.

Example: false
prev object

Book data transfer object

analysisErrorstring | nullnullable

Error message if book analysis failed

Example: Failed to parse CBZ: invalid archive
analyzedbooleanrequired

Whether the book has been analyzed (page dimensions available)

Example: true
chapternumber,null<float>nullable

Chapter number from book metadata (may be fractional)

Example: 42.5
createdAtstring<date-time>required

When the book was added to the library

Example: 2024-01-01T00:00:00Z
deletedbooleanrequired

Whether the book has been soft-deleted

Example: false
fileFormatstringrequired

File format (cbz, cbr, epub, pdf)

Example: cbz
fileHashstringrequired

File hash for deduplication

Example: a1b2c3d4e5f6g7h8i9j0
fileSizeinteger<int64>required

File size in bytes

Example: 52428800
idstring<uuid>required

Book unique identifier

Example: 550e8400-e29b-41d4-a716-446655440001
koreaderHashstring | nullnullable

KOReader-compatible partial MD5 hash for sync

libraryIdstring<uuid>required

Library this book belongs to

Example: 550e8400-e29b-41d4-a716-446655440000
libraryNamestringrequired

Name of the library

Example: Comics
numberinteger,null<int32>nullable

Book number within the series

Example: 1
pageCountinteger<int32>required

Number of pages in the book

Example: 32
pathstringrequired

Filesystem path to the book file

Example: /media/comics/Batman/Batman - Year One 001.cbz
readProgress object

User's read progress for this book

bookIdstring<uuid>required

Book ID

Example: 550e8400-e29b-41d4-a716-446655440002
completedbooleanrequired

Whether the book is completed

Example: false
completedAtstring,null<date-time>nullable

When the book was completed (if completed)

Example: 2024-01-20T20:00:00Z
currentPageinteger<int32>required

Current page (1-indexed)

Example: 42
idstring<uuid>required

Progress record ID

Example: 550e8400-e29b-41d4-a716-446655440000
progressPercentagenumber,null<double>nullable

Progress as a percentage (0.0-1.0) For EPUBs, this is the stored percentage from reflowable content For other formats, this is calculated from current_page / total_pages

Example: 0.45
startedAtstring<date-time>required

When reading started

Example: 2024-01-10T14:30:00Z
updatedAtstring<date-time>required

When progress was last updated

Example: 2024-01-15T18:45:00Z
userIdstring<uuid>required

User ID

Example: 550e8400-e29b-41d4-a716-446655440001
readingDirectionstring | nullnullable

Effective reading direction (from series metadata, or library default if not set) Values: ltr, rtl, ttb or webtoon

Example: ltr
seriesIdstring<uuid>required

Series this book belongs to

Example: 550e8400-e29b-41d4-a716-446655440002
seriesNamestringrequired

Name of the series

Example: Batman: Year One
summarystring | nullnullable

Book summary/description from book_metadata (ComicInfo <Summary> or EPUB description). Surfaced on the list response so cards can show it on hover without fetching the full detail payload.

Example: Bruce Wayne returns to Gotham to begin his war on crime.
titlestringrequired

Book title

Example: Batman: Year One #1
titleSortstring | nullnullable

Title used for sorting (title_sort field)

Example: batman year one 001
updatedAtstring<date-time>required

When the book was last updated

Example: 2024-01-15T10:30:00Z
volumeinteger,null<int32>nullable

Volume number from book metadata

Example: 1
wantToReadboolean | nullnullable

Whether the requesting user has this book in their want-to-read queue.

None when not computed for this response; populated on book list and detail endpoints that have a user context.

Example: false
AdjacentBooksResponse
{
"next": {
"analysisError": "Failed to parse CBZ: invalid archive",
"analyzed": true,
"chapter": 42.5,
"createdAt": "2024-01-01T00:00:00Z",
"deleted": false,
"fileFormat": "cbz",
"fileHash": "a1b2c3d4e5f6g7h8i9j0",
"fileSize": 52428800,
"id": "550e8400-e29b-41d4-a716-446655440001",
"koreaderHash": "string",
"libraryId": "550e8400-e29b-41d4-a716-446655440000",
"libraryName": "Comics",
"number": 1,
"pageCount": 32,
"path": "/media/comics/Batman/Batman - Year One 001.cbz",
"readProgress": {
"bookId": "550e8400-e29b-41d4-a716-446655440002",
"completed": false,
"completedAt": "2024-01-20T20:00:00Z",
"currentPage": 42,
"id": "550e8400-e29b-41d4-a716-446655440000",
"progressPercentage": 0.45,
"startedAt": "2024-01-10T14:30:00Z",
"updatedAt": "2024-01-15T18:45:00Z",
"userId": "550e8400-e29b-41d4-a716-446655440001"
},
"readingDirection": "ltr",
"seriesId": "550e8400-e29b-41d4-a716-446655440002",
"seriesName": "Batman: Year One",
"summary": "Bruce Wayne returns to Gotham to begin his war on crime.",
"title": "Batman: Year One #1",
"titleSort": "batman year one 001",
"updatedAt": "2024-01-15T10:30:00Z",
"volume": 1,
"wantToRead": false
},
"prev": {
"analysisError": "Failed to parse CBZ: invalid archive",
"analyzed": true,
"chapter": 42.5,
"createdAt": "2024-01-01T00:00:00Z",
"deleted": false,
"fileFormat": "cbz",
"fileHash": "a1b2c3d4e5f6g7h8i9j0",
"fileSize": 52428800,
"id": "550e8400-e29b-41d4-a716-446655440001",
"koreaderHash": "string",
"libraryId": "550e8400-e29b-41d4-a716-446655440000",
"libraryName": "Comics",
"number": 1,
"pageCount": 32,
"path": "/media/comics/Batman/Batman - Year One 001.cbz",
"readProgress": {
"bookId": "550e8400-e29b-41d4-a716-446655440002",
"completed": false,
"completedAt": "2024-01-20T20:00:00Z",
"currentPage": 42,
"id": "550e8400-e29b-41d4-a716-446655440000",
"progressPercentage": 0.45,
"startedAt": "2024-01-10T14:30:00Z",
"updatedAt": "2024-01-15T18:45:00Z",
"userId": "550e8400-e29b-41d4-a716-446655440001"
},
"readingDirection": "ltr",
"seriesId": "550e8400-e29b-41d4-a716-446655440002",
"seriesName": "Batman: Year One",
"summary": "Bruce Wayne returns to Gotham to begin his war on crime.",
"title": "Batman: Year One #1",
"titleSort": "batman year one 001",
"updatedAt": "2024-01-15T10:30:00Z",
"volume": 1,
"wantToRead": false
}
}