Install MyBibliotheca

Developer documentation

MyBibliotheca API v1

A concise read-only reference for your books, reading sessions, progress, statistics, series, TBR lists, and KOReader data.

Live read-only APICreate a token in Settings to connect a tool.

Quick start

curl \
  -H "Authorization: Bearer mb_live_your_token" \
  https://mybibliotheca.org/api/v1/stats
import requests

response = requests.get("https://mybibliotheca.org/api/v1/stats", headers={"Authorization": "Bearer mb_live_your_token"})
print(response.json())
const response = await fetch("/api/v1/stats", { credentials: "same-origin" });
console.log(await response.json());

Create a read-only token in Settings → API access. Tokens are scoped, revocable, and shown only once.

Try it

Send a read-only request from this browser. You must be signed in.

Endpoints

MethodPathReturns
GET/meAccount ID, username, display name, timezone.
GET/booksLibrary books, progress, ratings, TBR, and series.
GET/books/{id}One book plus latest progress.
GET/reading-sessionsPages, minutes, positions, percentages, source.
GET/statsStreaks, pages, minutes, status counts.
GET/seriesSeries and ordered book membership.
GET/tbrTBR lists and book priorities.
GET/koreaderKOReader documents and sync positions.

Response fields

Books

idLibrary book ID.
title, authorPersonal book identity.
isbn10, isbn13Edition identifiers.
status, formatReading shelf and format.
page_countConfigured edition pages.
ratingYour rating, if set.
started_on, finished_onReading dates.
seriesPrimary series membership.
tbrPriority, rank, and moods.
updated_atLast library update.

Reading sessions

pages, minutesActivity recorded.
position_page, position_minuteCurrent position.
progress_percentSaved progress.
edition_pagesDenominator used.
sourceManual or KOReader.
created_atSession timestamp.

KOReader

percentageNative sync percentage.
positionKOReader native position.
deviceDevice label.
metadataTitle, author, filename.

Authentication

1. Create a token in Settings → API access. 2. Copy it when it is shown. 3. Put it after Bearer in the Authorization header on every API request.

Authorization: Bearer mb_live_your_token

Replace mb_live_your_token with your actual token. Do not paste it into a URL, commit it to code, or share it publicly.

Scopes: books:read, reading:read, and stats:read. Tokens can be revoked and may expire.

Pagination

/books and /reading-sessions accept limit (1–100) and an opaque cursor. Responses return next_cursor when more data is available.

Privacy

Every response is account-scoped. Email addresses, passwords, private notes, and raw device IDs are excluded by default. The API is read-only.