These examples use generated Komga API 1.25 operations. Parameters are flat, and { client } is passed as the options argument. Results are non-throwing by default.
List series
getSeries requires a seriesSearch value, even for an unfiltered list:
Search series
Filters, sorting, and pagination
seriesSearch supports fullTextSearch or a recursive condition tree. Use allOf/anyOf to combine conditions, and operators such as is, isNot, contains, beginsWith, endsWith, isNull, and isNotNull.
page is zero-based. Set unpaged: true for a complete export, and use totalElements, totalPages, and number from the PageSeriesDto response to render navigation. Series conditions include libraryId, collectionId, seriesStatus, readStatus, complete, oneShot, title, titleSort, releaseDate, tag, sharingLabel, publisher, language, genre, ageRating, and author.
Pagination and sort are flat parameters alongside seriesSearch; only the search tree is sent as the request body.
Get a series by ID
updateSeriesMetadata returns no data on success:
Updating series metadata requires the ADMIN role.
updateSeriesMetadata is a partial update. Omitted fields remain unchanged; the API contract permits setting a metadata field to null to unset it, while an empty array such as genres: [] clears that collection. Lock flags (titleLock, genresLock, and similar) are independent and must be changed explicitly. The successful response is 204 No Content, so fetch the series again when you need the updated DTO.
List books in a series
Use the current getBooks search endpoint with a seriesId condition. The older path-specific operation is deprecated:
Mark an entire series read or unread
These operations change read progress for every book in the series and return no data on success:
Use markBookReadProgress for a single book when a series-wide change would be too broad.
Failure modes and permissions
Listing and reading are filtered by the current user’s library permissions. Metadata changes, series analysis, and other administrative actions can return 403 when the account lacks ADMIN; 401 means the client was not authenticated and 404 means the series is not available. Generated results expose the HTTP status as result.response?.status rather than throwing by default.
List collections containing a series
Next steps