Developer documentation
MyBibliotheca API v1
A concise read-only reference for your books, reading sessions, progress, statistics, series, TBR lists, and KOReader data.
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
| Method | Path | Returns |
|---|---|---|
| GET | /me | Account ID, username, display name, timezone. |
| GET | /books | Library books, progress, ratings, TBR, and series. |
| GET | /books/{id} | One book plus latest progress. |
| GET | /reading-sessions | Pages, minutes, positions, percentages, source. |
| GET | /stats | Streaks, pages, minutes, status counts. |
| GET | /series | Series and ordered book membership. |
| GET | /tbr | TBR lists and book priorities. |
| GET | /koreader | KOReader 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.