Files
bookhoard/docs/developer/api/scanner/scan_library.md
T
John O'Keefe 72839921f2 drop DOC and LIT from the pipeline (deliberately unsupported)
.IMAGE  — extensions removed from AllowedExtensions (scan gate),
bookExtensions, MimeTypes and sync/format.go maps: .doc/.lit files
are no longer scanned or indexed. classifyFormatGroup gains the
RTF and PDB reflowable arms that were missing when those rungs
shipped (rows only reclassify on creation). Scanner docs updated.

DOC + LIT have no credible JS tooling (mammoth is docx-only; LIT
needs LZX and its DRM variants are dead) and text-extraction-only
support would misrepresent what the reader can do. Verified: probe
.doc/.lit files watched but never scanned; probe .txt control
scanned; TestClassifyFormatGroup extended and passing.

Docs change granted in-session by the user (extensions + format
docs).
2026-10-03 16:11:04 -04:00

1.5 KiB

Scan Library

Initiate a one-time scan of a library for ebooks, manga, or comics.

Endpoint: POST /api/scanner/scan Auth: Required (Admin only) Content-Type: application/json

Request Body

Field Type Required Description
library_id string (UUID) Yes Library UUID to scan (supports ebooks, manga, and comics)
recursive boolean No Scan subdirectories recursively (default: true)
force boolean No Force rescan of existing files (default: false)

Supported Formats

The scanner automatically detects and processes files based on the library type:

Ebooks: .epub, .pdf, .mobi, .txt, .rtf, .docx, .fb2, .pdb

Comics: .cbz, .cbr, .cb7, .cbt, .pdf

Manga: .cbz, .cbr, .png, .jpg, .jpeg, .gif, .bmp, .webp

Example Request

{
  "library_id": "550e8400-e29b-41d4-a716-446655440000",
  "recursive": true,
  "force": false
}

Response (202 Accepted)

{
  "message": "Scan initiated successfully",
  "job_id": "uuid",
  "library_id": "uuid",
  "status": "pending"
}

Error Responses

Code Description
400 Invalid request data
401 Invalid or expired token
403 User does not have admin privileges
404 Library not found