Skip to main content

HTTP API

Interactive API docs (served by a running Athenaeum instance): /docs. Machine-readable: GET /api/openapi.json (OpenAPI 3) and GET /api/docs (JSON). The generated reference covers the core endpoints; this page is the complete route list. Key management is under Settings -> API.

Mutating browser requests require the X-CSRF-Token header (not needed for Basic Auth or API keys). Auth when users exist: session cookie, HTTP Basic, or API key (Authorization: Bearer ath_<token> or X-API-Key: ath_<token>).

Docs and health​

MethodPathDescription
GET/api/docsAPI reference (JSON)
GET/api/healthHealth check and optional telemetry config
GET/api/i18n/localesList UI locales
GET/api/i18n/templateTranslation template
GET/api/i18n/{locale}Messages for one locale
GET/api/openapi.jsonOpenAPI 3.0 specification
GET/docsInteractive OpenAPI UI
GET/docs/app.jsInteractive OpenAPI UI
GET/metricsPrometheus metrics (if enabled)

Authentication​

MethodPathDescription
GET/api/altcha/challengeALTCHA PoW challenge (builtin)
GET/api/auth/api-keysList API keys
POST/api/auth/api-keysCreate API key
DELETE/api/auth/api-keys/{id}Revoke API key
GET/api/auth/auditAudit log
GET/api/auth/csrfIssue CSRF token cookie
GET/api/auth/kindle-emailPer-user Kindle/email delivery address
PUT/api/auth/kindle-emailPer-user Kindle/email delivery address
POST/api/auth/loginCreate session
POST/api/auth/logoutEnd session
GET/api/auth/meCurrent user
GET/api/auth/methodsAvailable login methods
GET/api/auth/oidc/configOIDC / SSO configuration
PUT/api/auth/oidc/configOIDC / SSO configuration
POST/api/auth/oidc/discoverDiscover OIDC endpoints from issuer
PUT/api/auth/passwordChange own password
POST/api/auth/password/checkCheck password against policy
PUT/api/auth/profileRename current user
GET/api/auth/reader-prefsSynced reader preferences
PUT/api/auth/reader-prefsSynced reader preferences
POST/api/auth/refreshRotate access token
POST/api/auth/registerCreate user (admin)
POST/api/auth/register-publicSelf-register (when enabled)
DELETE/api/auth/sessionsRevoke all other sessions (?all=true revokes every session including the current one)
GET/api/auth/sessionsList your sessions
DELETE/api/auth/sessions/{id}Revoke one session
GET/api/auth/settingsAuth settings (registration, require TOTP)
PUT/api/auth/settingsAuth settings (registration, require TOTP)
GET/api/auth/setupSetup / auth status
POST/api/auth/setupCreate first admin
POST/api/auth/totp/disableDisable TOTP
POST/api/auth/totp/enableConfirm TOTP with code
POST/api/auth/totp/setupStart TOTP enrollment (returns secret)
POST/api/auth/totp/verifyVerify TOTP during login
GET/api/auth/usersList users
POST/api/auth/users/guestCreate guest account
GET/api/auth/users/guestsList guests
POST/api/auth/users/guests/bulk-deleteRevoke guest accounts
POST/api/auth/users/guests/{id}/extendExtend guest expiry
POST/api/invitesCreate invite
GET/api/invitesList invites
DELETE/api/invites/{id}Revoke invite
GET/api/invite/{token}Invite metadata (public)
POST/api/invite/{token}/acceptAccept invite (public)
DELETE/api/auth/users/{id}Delete user
PUT/api/auth/users/{id}/adminGrant/revoke admin
GET/api/auth/users/{id}/librariesPer-user library access
PUT/api/auth/users/{id}/librariesPer-user library access
PUT/api/auth/users/{id}/passwordReset password (admin)
PUT/api/auth/users/{id}/permissionsSet non-admin permissions
GET/api/auth/users/{id}/sessionsList sessions for a user (admin)
GET/api/authorsAuthors with counts
GET/auth/oidc/callbackOIDC callback
GET/auth/oidc/loginCreate session

Library mounts and scan​

MethodPathDescription
GET/api/fs/browseBrowse host filesystem (admin)
GET/api/librariesList library mounts
POST/api/librariesAdd library mount (local or s3)
POST/api/libraries/test-s3Validate S3 credentials
PUT/api/libraries/reorderReorder mounts
DELETE/api/libraries/{id}Remove mount
GET/api/libraries/{id}Get one mount
PUT/api/libraries/{id}Update mount
POST/api/libraries/{id}/scanScan one mount
POST/api/libraries/{id}/uploadsStart resumable upload
DELETE/api/libraries/{id}/uploads/{uploadId}Cancel upload
GET/api/libraries/{id}/uploads/{uploadId}Upload status
PATCH/api/libraries/{id}/uploads/{uploadId}Upload chunk
POST/api/library/metadata/matchStart bulk metadata match
GET/api/library/metadata/match/statusBulk metadata match status
POST/api/library/bibtex/importMatch BibTeX entries to existing books
POST/api/library/scanBackground rescan all
GET/api/library/scan/statusLive scan progress
POST/api/library/series/cleanupCleanup series names
GET/api/library/statsLibrary counts and flags
GET/api/metadata/providersMetadata providers

Books and reading​

MethodPathDescription
GET/api/authorsAuthors with counts
GET/api/booksList books
DELETE/api/books/{id}Delete book
GET/api/books/{id}Book detail
PUT/api/books/{id}Edit metadata
GET/api/books/{id}/bookmarksList bookmarks
POST/api/books/{id}/bookmarksAdd bookmark
DELETE/api/books/{id}/bookmarks/{bookmarkId}Delete bookmark
GET/api/books/{id}/chaptersAudiobook chapters
POST/api/books/{id}/convertConvert book (admin; ?target=epub or pdf, PDF needs Calibre)
DELETE/api/books/{id}/coverRemove cover
GET/api/books/{id}/coverCover image
PUT/api/books/{id}/coverUpload cover
PUT/api/books/{id}/cover-from-urlSet cover from URL
GET/api/books/{id}/downloadDownload attachment
GET/api/books/{id}/favoriteFavorite status / toggle
PUT/api/books/{id}/favoriteFavorite status / toggle
GET/api/books/{id}/fileStream file (HTTP Range)
GET/api/books/{id}/highlightsList highlights
POST/api/books/{id}/highlightsAdd highlight
DELETE/api/books/{id}/highlights/{highlightId}Delete highlight
POST/api/books/{id}/metadata/applyApply metadata match
POST/api/books/{id}/metadata/searchSearch external metadata
GET/api/books/{id}/bibtexDownload BibTeX for one book
GET/api/books/bibtexDownload BibTeX (?ids= or ?format=papers)
GET/api/books/{id}/mobi-sectionsMOBI/AZW section list
GET/api/books/{id}/pagesComic page list
GET/api/books/{id}/pages/{page}Comic page image
GET/api/books/{id}/progressReading progress
PUT/api/books/{id}/progressReading progress
GET/api/books/{id}/ratingStar rating (1-5, 0 clears)
PUT/api/books/{id}/ratingStar rating (1-5, 0 clears)
POST/api/books/{id}/reading-timeAdd reading seconds
POST/api/books/{id}/sendSend via SMTP/Kindle
GET/api/books/{id}/shareList share links
POST/api/books/{id}/shareCreate share link
DELETE/api/books/{id}/share/{shareId}Revoke share link
GET/api/books/{id}/tagsList tags on book
POST/api/books/{id}/tagsAdd tag to book
PUT/api/books/{id}/tagsReplace book tags
DELETE/api/books/{id}/tags/{tagId}Remove tag from book
GET/api/books/{id}/tracksAudiobook tracks
GET/api/favoritesList favorite book IDs
GET/api/seriesSeries with counts
GET/api/stats/readingUser reading stats
GET/api/me/reading-sessionsRecent reading sessions
GET/api/tagsList tags
POST/api/tagsCreate tag

Collections​

MethodPathDescription
GET/api/collectionsList shelves
POST/api/collectionsCreate shelf
DELETE/api/collections/{id}Delete shelf
GET/api/collections/{id}Get shelf
PUT/api/collections/{id}Update shelf
DELETE/api/collections/{id}/books/{bookId}Remove book from shelf
POST/api/collections/{id}/books/{bookId}Add book to shelf

Sharing and delivery​

Share links, SMTP/Kindle delivery, and the per-user delivery address are listed under Books, Authentication, and Admin above. Public endpoints:

MethodPathDescription
GET/api/share/{token}Share metadata (public)
GET/share/{token}/downloadDownload attachment

Audio feeds​

Feed tokens expose a library or shelf as an RSS 2.0 feed for podcast apps. The token in the URL is the credential; item routes re-check the feed scope and the owner's library access on every request.

MethodPathDescription
GET/api/feedsList your audio feeds
POST/api/feedsCreate a feed token (name, libraryId?, collectionId?)
DELETE/api/feeds/{id}Delete a feed token (admins may pass userId)
GET/feed/{token}RSS 2.0 audio feed (public)
GET/feed/{token}/item/{bookId}/fileFeed item audio, HTTP Range (public)
GET/feed/{token}/item/{bookId}/coverFeed item cover (public)

Narration (TTS)​

MethodPathDescription
GET/api/admin/ttsTTS sidecar settings
PUT/api/admin/ttsUpdate TTS settings
POST/api/admin/tts/testPing TTS sidecar
GET/api/tts/statusWhether server TTS is enabled
POST/api/tts/synthesizeSynthesize speech through the TTS endpoint
GET/api/tts/voicesList TTS voices
GET/api/tts/prefsYour narration preferences and schedule
PUT/api/tts/prefsSave narration preferences
GET/api/tts/jobsList your audiobook jobs (admins can pass ?all=1)
POST/api/tts/jobsQueue a whole-book narration job ({bookId, voice?, speed?})
POST/api/tts/jobs/{id}/cancelCancel a queued or running job
POST/api/tts/jobs/{id}/retryRequeue a finished, failed, or cancelled job
DELETE/api/tts/jobs/{id}Delete a finished job record

Admin and maintenance​

MethodPathDescription
GET/api/admin/backupDownload data zip
GET/api/admin/config/exportExport config JSON
POST/api/admin/config/importImport config JSON
POST/api/admin/content-indexIndex EPUB full text
POST/api/admin/restoreRestore from zip
GET/api/admin/serverServer settings (metrics, proxy, CSP, CORS)
PUT/api/admin/serverServer settings (metrics, proxy, CSP, CORS)
GET/api/admin/smtpSMTP delivery settings
PUT/api/admin/smtpSMTP delivery settings
GET/api/admin/pocketidPocket ID connector
PUT/api/admin/pocketidPocket ID connector
POST/api/admin/pocketid/testTest Pocket ID API
POST/api/admin/pocketid/apply-oidcApply Pocket ID to OIDC
GET/api/admin/pocketid/signup-tokensList Pocket ID signup tokens
POST/api/admin/pocketid/signup-tokensCreate Pocket ID signup token
DELETE/api/admin/pocketid/signup-tokens/{id}Delete signup token
GET/api/admin/webhooksList webhooks
POST/api/admin/webhooksCreate webhook
GET/api/admin/webhooks/{id}Get webhook
PUT/api/admin/webhooks/{id}Update webhook
DELETE/api/admin/webhooks/{id}Delete webhook
GET/api/admin/webhooks/{id}/deliveriesDelivery log
POST/api/admin/webhooks/{id}/testSend test ping
POST/api/admin/tasks/cleanup-coversCleanup orphan covers
POST/api/admin/tasks/cleanup-seriesCleanup series metadata
POST/api/admin/tasks/cleanup-textCleanup text fields
POST/api/admin/tasks/prune-missingPrune missing files from DB
POST/api/admin/tasks/regenerate-coversRegenerate covers
GET/api/admin/tasks/statusMaintenance task status
POST/api/admin/tasks/verifyVerify library integrity
DELETE/api/offlineRevoke offline grant
GET/api/offlineList offline grants
POST/api/offlineGrant offline book
GET/api/system/statsHost CPU/memory/disk and version

OPDS and KOSync​

MethodPathDescription
PUT/kosync/syncs/progressReading progress
GET/kosync/syncs/progress/{document}Reading progress
GET/kosync/users/authKOSync authenticate
GET/opds/OPDS 1.2 navigation catalog
GET/opds/comicsOPDS comics feed
GET/opds/kindleOPDS Kindle-friendly feed
GET/opds/papersOPDS research papers feed
GET/opds/recentOPDS recent acquisitions
GET/opds/searchOPDS search feed
GET/opds/seriesOPDS series navigation
GET/opds/series/{name}OPDS books in series
GET/opds/v2/OPDS 2 catalog
GET/opds/v2/recentOPDS 2 catalog