Overview of the current application API for auth, books, reading, audiobooks, profiles, and user settings.
Base path
/api/v1Auth model
Public routes use existing Supabase RLS. Private routes require the current session cookie.
/api/v1/auth/meReturns the current authenticated user, linked profile, and merged user settings.
/api/v1/auth/logoutSigns out the current session.
/api/v1/profiles/:usernameReturns a public profile plus basic publishing stats.
/api/v1/booksList published books with optional filters for search, genre, featured, originals, staff picks, audiobook-only, sort, and limit.
/api/v1/books/:bookIdReturns book metadata, author data, chapter list, and audiobook counters.
/api/v1/books/:bookId/chaptersReturns published chapter metadata. Use `includeContent=true` to include full chapter text.
/api/v1/read/progress?bookId=:bookIdReturns the authenticated user's reading progress for one book.
/api/v1/read/progressCreates or updates reading progress using `book_id`, `chapter_id`, and `scroll_position`.
/api/v1/audiobooksLists books with at least one published chapter that has an audio file.
/api/v1/audiobooks/:bookIdReturns audiobook metadata and all published audio chapters for a book.
/api/v1/audiobooks/:bookId/stream/:chapterIdRedirects with `307` to the real audio file URL for the selected chapter.
/api/v1/settingsReturns the authenticated user's preferences merged with defaults.
/api/v1/settingsUpdates language, theme, autoplay, mail, analytics, privacy, and reading-preference fields.
Example body for updating reading progress.
{
"book_id": "uuid",
"chapter_id": "uuid",
"scroll_position": 0.42
}Allowed fields for `PATCH /api/v1/settings`.
{
"preferred_language": "de",
"theme": "system",
"autoplay_audio": false,
"email_notifications": true,
"marketing_emails": false,
"analytics_enabled": true,
"public_profile": true,
"show_reading_activity": true,
"mature_content": false
}