Get books on a shelf
GET
/api/v1/shelves/{shelfId}/books
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");curl_easy_setopt(hnd, CURLOPT_URL, "http://127.0.0.1:58259/api/v1/shelves/1/books");
CURLcode ret = curl_easy_perform(hnd);using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("http://127.0.0.1:58259/api/v1/shelves/1/books"),};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "http://127.0.0.1:58259/api/v1/shelves/1/books"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://127.0.0.1:58259/api/v1/shelves/1/books")) .method("GET", HttpRequest.BodyPublishers.noBody()) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("http://127.0.0.1:58259/api/v1/shelves/1/books") .get() .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = {method: 'GET', url: 'http://127.0.0.1:58259/api/v1/shelves/1/books'};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'http://127.0.0.1:58259/api/v1/shelves/1/books';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}val client = OkHttpClient()
val request = Request.Builder() .url("http://127.0.0.1:58259/api/v1/shelves/1/books") .get() .build()
val response = client.newCall(request).execute()use reqwest;
#[tokio::main]pub async fn main() { let url = "http://127.0.0.1:58259/api/v1/shelves/1/books";
let client = reqwest::Client::new(); let response = client.get(url) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url http://127.0.0.1:58259/api/v1/shelves/1/bookswget --quiet \ --method GET \ --output-document \ - http://127.0.0.1:58259/api/v1/shelves/1/booksRetrieve all books assigned to a specific shelf.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ” shelfId
required
integer format: int64
ID of the shelf
Responses
Section titled “ Responses ”Books returned successfully
Media type */*
Array<object>
object
id
integer format: int64
libraryId
integer format: int64
libraryName
string
primaryFile
object
id
integer format: int64
bookId
integer format: int64
fileName
string
filePath
string
fileSubPath
string
folderBased
boolean
bookType
string
archiveType
string
fileSizeKb
integer format: int64
extension
string
description
string
addedOn
string format: date-time
book
boolean
title
string
lastReadTime
string format: date-time
addedOn
string format: date-time
metadata
object
bookId
integer format: int64
title
string
subtitle
string
publisher
string
publishedDate
string format: date
description
string
seriesName
string
seriesNumber
number format: float
seriesTotal
integer format: int32
isbn13
string
isbn10
string
pageCount
integer format: int32
language
string
narrator
string
abridged
boolean
audiobookMetadata
object
durationSeconds
integer format: int64
bitrate
integer format: int32
sampleRate
integer format: int32
channels
integer format: int32
codec
string
chapterCount
integer format: int32
chapters
Array<object>
object
index
integer format: int32
title
string
startTimeMs
integer format: int64
endTimeMs
integer format: int64
durationMs
integer format: int64
comicMetadata
object
issueNumber
string
volumeName
string
volumeNumber
integer format: int32
storyArc
string
storyArcNumber
integer format: int32
alternateSeries
string
alternateIssue
string
pencillers
Array<string>
inkers
Array<string>
colorists
Array<string>
letterers
Array<string>
coverArtists
Array<string>
editors
Array<string>
imprint
string
format
string
blackAndWhite
boolean
manga
boolean
readingDirection
string
characters
Array<string>
teams
Array<string>
locations
Array<string>
webLink
string
notes
string
issueNumberLocked
boolean
volumeNameLocked
boolean
volumeNumberLocked
boolean
storyArcLocked
boolean
storyArcNumberLocked
boolean
alternateSeriesLocked
boolean
alternateIssueLocked
boolean
imprintLocked
boolean
formatLocked
boolean
blackAndWhiteLocked
boolean
mangaLocked
boolean
readingDirectionLocked
boolean
webLinkLocked
boolean
notesLocked
boolean
creatorsLocked
boolean
pencillersLocked
boolean
inkersLocked
boolean
coloristsLocked
boolean
letterersLocked
boolean
coverArtistsLocked
boolean
editorsLocked
boolean
charactersLocked
boolean
teamsLocked
boolean
locationsLocked
boolean
asin
string
amazonRating
number format: double
amazonReviewCount
integer format: int32
goodreadsId
string
comicvineId
string
goodreadsRating
number format: double
goodreadsReviewCount
integer format: int32
hardcoverId
string
hardcoverBookId
string
hardcoverRating
number format: double
hardcoverReviewCount
integer format: int32
doubanId
string
doubanRating
number format: double
doubanReviewCount
integer format: int32
lubimyczytacRating
number format: double
googleId
string
lubimyczytacId
string
ranobedbId
string
ranobedbRating
number format: double
audibleId
string
audibleRating
number format: double
audibleReviewCount
integer format: int32
externalUrl
string
coverUpdatedOn
string format: date-time
audiobookCoverUpdatedOn
string format: date-time
authors
Array<string>
categories
Array<string>
moods
Array<string>
tags
Array<string>
provider
string
thumbnailUrl
string
bookReviews
Array<object>
object
id
integer format: int64
metadataProvider
string
reviewerName
string
title
string
rating
number format: float
date
string format: date-time
body
string
country
string
spoiler
boolean
followersCount
integer format: int32
textReviewsCount
integer format: int32
rating
number format: double
isFixedLayout
boolean
allMetadataLocked
boolean
titleLocked
boolean
subtitleLocked
boolean
publisherLocked
boolean
publishedDateLocked
boolean
descriptionLocked
boolean
seriesNameLocked
boolean
seriesNumberLocked
boolean
seriesTotalLocked
boolean
isbn13Locked
boolean
isbn10Locked
boolean
asinLocked
boolean
goodreadsIdLocked
boolean
comicvineIdLocked
boolean
hardcoverIdLocked
boolean
hardcoverBookIdLocked
boolean
doubanIdLocked
boolean
googleIdLocked
boolean
pageCountLocked
boolean
languageLocked
boolean
amazonRatingLocked
boolean
amazonReviewCountLocked
boolean
goodreadsRatingLocked
boolean
goodreadsReviewCountLocked
boolean
hardcoverRatingLocked
boolean
hardcoverReviewCountLocked
boolean
doubanRatingLocked
boolean
doubanReviewCountLocked
boolean
lubimyczytacIdLocked
boolean
lubimyczytacRatingLocked
boolean
ranobedbIdLocked
boolean
ranobedbRatingLocked
boolean
audibleIdLocked
boolean
audibleRatingLocked
boolean
audibleReviewCountLocked
boolean
externalUrlLocked
boolean
coverLocked
boolean
audiobookCoverLocked
boolean
authorsLocked
boolean
categoriesLocked
boolean
moodsLocked
boolean
tagsLocked
boolean
reviewsLocked
boolean
narratorLocked
boolean
abridgedLocked
boolean
ageRating
integer format: int32
contentRating
string
ageRatingLocked
boolean
contentRatingLocked
boolean
metadataMatchScore
number format: float
pdfProgress
object
page
required
integer format: int32
percentage
required
number format: float
epubProgress
object
cfi
string
href
string
contentSourceProgressPercent
number format: float
percentage
required
number format: float
ttsPositionCfi
string
cbxProgress
object
page
required
integer format: int32
percentage
required
number format: float
audiobookProgress
object
positionMs
required
integer format: int64
trackIndex
integer format: int32
trackPositionMs
integer format: int64
percentage
required
number format: float
koreaderProgress
object
percentage
number format: float
koboProgress
object
percentage
number format: float
personalRating
integer format: int32
shelves
Array<object>
object
id
integer format: int64
name
string
icon
string
iconType
string
sort
object
field
string
direction
string
userId
integer format: int64
publicShelf
boolean
bookCount
integer format: int32
readStatus
string
dateFinished
string format: date-time
libraryPath
object
id
integer format: int64
libraryId
integer format: int64
path
string
alternativeFormats
Array<object>
object
id
integer format: int64
bookId
integer format: int64
fileName
string
filePath
string
fileSubPath
string
folderBased
boolean
bookType
string
archiveType
string
fileSizeKb
integer format: int64
extension
string
description
string
addedOn
string format: date-time
book
boolean
supplementaryFiles
Array<object>
object
id
integer format: int64
bookId
integer format: int64
fileName
string
filePath
string
fileSubPath
string
folderBased
boolean
bookType
string
archiveType
string
fileSizeKb
integer format: int64
extension
string
description
string
addedOn
string format: date-time
book
boolean
isPhysical
boolean