Skip to content

Outbound webhooks

Updated View as Markdown

Every library event (BookAdded, SeriesAdded, BookImported, ReadProgressChanged, …) can be POSTed as {event, timestamp, data} JSON to configured URLs ([webhooks] in config.toml, env KOMGA_WEBHOOKS_URLS / KOMGA_WEBHOOKS_EVENTS / KOMGA_WEBHOOKS_TIMEOUT / KOMGA_WEBHOOKS_SECRET).

Event names and data shapes match the SSE stream, plus full series/book DTOs mirroring the REST API on upsert events (series on SeriesAdded/SeriesUpdated, book on BookAdded/BookUpdated, null when the row is gone; everything else stays id-only), and carried-over libraryName/readListName/collectionName/userEmail on Library/ReadList/Collection/User events.

Delivery is fire-and-forget through a bounded in-memory queue: 429/5xx and transport errors are retried up to 3 times with 1s/2s/4s backoff honoring Retry-After, other 4xx are dropped, and nothing is persisted.

Every request carries X-Kmrs-Event; with secret set it is HMAC-SHA256 signed via X-Kmrs-Signature: t=<timestamp>,v1=<hex> over <timestamp>.<body>.

The Java version has no webhook support at all.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close