{"name":"SIBI API","version":"1.0.0","docs":{"GET /health":"liveness + db check","GET /v1/stats":"catalogue totals + per-kind availability","POST /v1/books/list":"paginated list, filters + sort in the body; has_pdf filters on what we can serve","GET /v1/books/detail?slug=":"one book with its files","GET /v1/books/pdf?slug=":"stream the PDF (Range supported)","GET /v1/books/cover?slug=":"stream the cover image","GET /v1/books/audio?slug=":"audio track list","GET /v1/books/audio/file?slug=&n=":"stream one MP3 (Range supported)","GET /v1/books/pages?slug=":"interactive page list","GET /v1/books/page?slug=&n=":"one interactive page HTML","GET /v1/books/page/asset?slug=&p=":"an asset inside an interactive book","GET /v1/facets":"facet value counts for filters","GET /v1/changes?since=":"books updated since an ISO timestamp","POST /v1/sync/run":"trigger a sync (admin token)","GET /v1/sync/status":"last sync run","GET /read/<slug>/":"the interactive reader, self-hosted"}}