REST API
FastAPI routes, response shapes, and server-sent events.
The REST API is the primary programmatic interface to Comicarr. It uses standard HTTP methods and JSON bodies. Most routes require a JWT session cookie; a small set of library browse GETs accept X-Api-Key.
Base URL
http://localhost:8090/api/Authentication
See Authentication for session cookies, API keys, and CSRF.
# Session (full API)
curl -b cookies.txt http://localhost:8090/api/series
# API key (library browse only)
curl -H "X-Api-Key: YOUR_KEY" http://localhost:8090/api/watchlistResponse format
Responses are not wrapped in a single global envelope. Shapes vary by endpoint:
- List endpoints often return domain keys plus pagination metadata, e.g.
{"comics": [...], "pagination": {...}} - Errors typically use FastAPI-style
{"detail": "..."}with the appropriate HTTP status code - Some handlers return plain lists or status objects
Always check the HTTP status code and the endpoint’s documented fields.
Pagination
Where pagination is supported, clients commonly send limit / offset (or page-style query params depending on the route). Defaults and response field names vary — inspect the JSON for pagination, total, or similar.
Event stream (SSE)
Real-time updates use server-sent events:
GET /api/events/streamThis endpoint requires a session cookie (not API key). Example:
curl -N -b cookies.txt \
-H "Accept: text/event-stream" \
http://localhost:8090/api/events/streamFull event names and payload fields: Server-Sent Events.
Resources
Series & library (session)
GET /api/series
GET /api/series/{comic_id}
POST /api/series
DELETE /api/series/{comic_id}
PUT /api/series/{comic_id}/pause
PUT /api/series/{comic_id}/resume
POST /api/series/{comic_id}/refresh
POST /api/series/bulk-delete
POST /api/series/bulk-pause
POST /api/series/bulk-resume
PUT /api/series/issues/{issue_id}/queue
PUT /api/series/issues/{issue_id}/unqueue
GET /api/wantedLibrary browse (API key)
GET /api/watchlist
GET /api/comics
GET /api/comic/{comic_id}
GET /api/comic/{comic_id}/issues
GET /api/comic/{comic_id}/issue/{issue_id}Import
GET /api/import
POST /api/import/match
PATCH /api/import/{imp_id}
POST /api/import/ignore
DELETE /api/import
POST /api/import/refresh
POST /api/import/comic/scan
GET /api/import/comic/progress
POST /api/import/comic/confirm
POST /api/import/manga/scan
GET /api/import/manga/progress
POST /api/import/manga/confirmSearch
POST /api/search/comics
POST /api/search/manga
POST /api/search/add
POST /api/search/add-manga
POST /api/search/force
POST /api/search/rss/force
GET /api/search/providersDownloads
GET /api/downloads/history
DELETE /api/downloads/history
POST /api/downloads/process
POST /api/downloads/process/issue
GET /api/downloads/queue
POST /api/downloads/{item_id}/requeue
POST /api/downloads/ddl
DELETE /api/downloads/{item_id}
GET /api/downloads/file/{issue_id}Metadata
POST /api/metadata/search
POST /api/metadata/search/manga
GET /api/metadata/comic/{comic_id}
GET /api/metadata/issue/{issue_id}
GET /api/metadata/art/{comic_id}
GET /api/metadata/image-proxy
GET /api/metadata/series-image/{series_id}
POST /api/metadata/metatag
POST /api/metadata/metatag/bulk
POST /api/metadata/metatag/groupStory arcs & reading lists
GET /api/storyarcs
GET /api/storyarcs/{arc_id}
DELETE /api/storyarcs/{arc_id}
POST /api/storyarcs/generate
POST /api/storyarcs/generate/save
POST /api/storyarcs/{arc_id}/want-all
POST /api/storyarcs/{arc_id}/refresh
GET /api/readlist
POST /api/readlist
DELETE /api/readlist/{issue_id}
DELETE /api/readlist
GET /api/upcomingWeekly & dashboard
GET /api/weekly
GET /api/dashboardAI
GET /api/ai/status
POST /api/ai/test
GET /api/ai/activity
POST /api/ai/chat/stream
GET /api/ai/suggestionsSystem & config
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/check-session
GET /api/auth/check-setup
POST /api/auth/setup
GET /api/events/stream
GET /api/config
PUT /api/config
POST /api/config/api-key/regenerate
PUT /api/config/providers
GET /api/system/version
GET /api/system/logs
GET /api/system/jobs
GET /api/system/diagnostics
POST /api/system/migration/preview
POST /api/system/migration/start
GET /api/system/migration/progress
POST /api/system/shutdown
POST /api/system/restartOPDS
OPDS is a separate catalog under /opds (not under /api). See the Reading (OPDS) guide.