Skip to content

List library books

GET
/api/library

Paginated list of organized books with optional search and filtering. The organized library is shared, so every caller sees every book together with its uploader's display label. uploader.id is an opaque per-install reference, never the uploader's user id; pass a value from GET /api/library/facets as uploaderId to filter. An unrecognised uploaderId returns an empty page.

Parameters

Query Parameters

page

Page number

Type
integer
Minimum
1
Default
1
limit

Items per page

Type
integer
Minimum
1
Maximum
100
Default
20
author

Filter by author (partial match)

Type
string
Max Length
500
Default
""
genre

Filter by genre (exact, case-insensitive)

Type
string
Max Length
500
Default
""
language

Filter by language code (exact, case-insensitive)

Type
string
Max Length
500
Default
""
series

Filter by series name (exact match)

Type
string
Max Length
500
Default
""
uploaderId

Filter by uploader. Takes the opaque uploaders[].id reference from GET /api/library/facets, not a user id; an unrecognised value returns an empty page.

Type
string
Default
""
q

Full-text search across title, author, and description with typo tolerance

Type
string
Max Length
500
Default
""
sort

Sort order for results

Type
string
Default
"title_asc"

Responses

Paginated list of books with files

application/json
JSON
{
  
"data": [
  
  
{
  
  
  
"id": "string",
  
  
  
"status": "string",
  
  
  
"title": "string",
  
  
  
"author": "string",
  
  
  
"isbn10": "string",
  
  
  
"isbn13": "string",
  
  
  
"publisher": "string",
  
  
  
"publishedYear": 0,
  
  
  
"language": "string",
  
  
  
"description": "string",
  
  
  
"coverUrl": "string",
  
  
  
"coverPath": "string",
  
  
  
"pageCount": 0,
  
  
  
"series": "string",
  
  
  
"seriesIndex": 0,
  
  
  
"genres": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"tags": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"hardcoverBookId": 0,
  
  
  
"hardcoverEditionId": 0,
  
  
  
"createdBy": "string",
  
  
  
"possibleDuplicateOf": "string",
  
  
  
"approvedAt": "string",
  
  
  
"createdAt": "string",
  
  
  
"updatedAt": "string",
  
  
  
"files": [
  
  
  
  
{
  
  
  
  
  
"id": "string",
  
  
  
  
  
"format": "string",
  
  
  
  
  
"originalName": "string",
  
  
  
  
  
"fileSize": "string"
  
  
  
  
}
  
  
  
],
  
  
  
"uploader": {
  
  
  
  
"id": "string",
  
  
  
  
"label": "string"
  
  
  
}
  
  
}
  
],
  
"pagination": {
  
  
"page": 0,
  
  
"limit": 0,
  
  
"total": 0,
  
  
"totalPages": 0
  
}
}

Samples