Kavita Opds API
The Opds API from Kavita — 21 operation(s) for opds.
The Opds API from Kavita — 21 operation(s) for opds.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/kavita:kavita-opds-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Kavita Opds API
description: Kavita provides a set of APIs authenticated via an Auth Key passed in the `x-api-key` header. Generate an Auth Key under User Settings → Manage Auth Keys, paste it into the Authorize panel, and all Try It requests will include it. Assume all fields of a payload are required unless marked optional. Built against v0.9.1.15
license:
name: GPL-3.0
url: https://github.com/Kareadita/Kavita/blob/develop/LICENSE
version: 0.9.1.15
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:5000
security:
- AuthKey: []
tags:
- name: Opds
paths:
/api/Opds/{apiKey}:
post:
tags:
- Opds
summary: Returns the Catalogue for Kavita's OPDS Service
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: OK
operationId: postApiOpdsByApiKey
x-operation-id-source: derived
get:
tags:
- Opds
summary: Returns the Catalogue for Kavita's OPDS Service
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: OK
operationId: getApiOpdsByApiKey
x-operation-id-source: derived
/api/Opds/{apiKey}/smart-filters/{filterId}:
get:
tags:
- Opds
summary: Get the User's Smart Filter - Supports Pagination
description: Smart filters have different entity types, this will resolve to the underlying entity
parameters:
- name: apiKey
in: path
required: true
schema:
type: string
- name: filterId
in: path
required: true
schema:
type: integer
format: int32
- name: pageNumber
in: query
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySmartFiltersByFilterId
x-operation-id-source: derived
/api/Opds/{apiKey}/smart-filters:
get:
tags:
- Opds
summary: Get the User's Smart Filters (Dashboard Context) - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySmartFilters
x-operation-id-source: derived
/api/Opds/{apiKey}/libraries:
get:
tags:
- Opds
summary: Get the User's Libraries - No Pagination Support
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyLibraries
x-operation-id-source: derived
/api/Opds/{apiKey}/want-to-read:
get:
tags:
- Opds
summary: Get the User's Want to Read list - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyWantToRead
x-operation-id-source: derived
/api/Opds/{apiKey}/collections:
get:
tags:
- Opds
summary: Get all Collections - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyCollections
x-operation-id-source: derived
/api/Opds/{apiKey}/collections/{collectionId}:
get:
tags:
- Opds
summary: Get Series for a given Collection - Supports Pagination
parameters:
- name: collectionId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyCollectionsByCollectionId
x-operation-id-source: derived
/api/Opds/{apiKey}/reading-list:
get:
tags:
- Opds
summary: Get a User's Reading Lists - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyReadingList
x-operation-id-source: derived
/api/Opds/{apiKey}/reading-list/{readingListId}:
get:
tags:
- Opds
summary: Returns individual items (chapters) from Reading List by ID - Supports…
parameters:
- name: readingListId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyReadingListByReadingListId
x-operation-id-source: derived
/api/Opds/{apiKey}/libraries/{libraryId}:
get:
tags:
- Opds
summary: Returns Series from the Library - Supports Pagination
parameters:
- name: libraryId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyLibrariesByLibraryId
x-operation-id-source: derived
/api/Opds/{apiKey}/recently-added:
get:
tags:
- Opds
summary: Returns Recently Added (Dashboard Feed) - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyRecentlyAdded
x-operation-id-source: derived
/api/Opds/{apiKey}/recently-updated:
get:
tags:
- Opds
summary: Get the Recently Updated Series (Dashboard) - Pagination available, total pages…
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyRecentlyUpdated
x-operation-id-source: derived
/api/Opds/{apiKey}/on-deck:
get:
tags:
- Opds
summary: Get the On Deck (Dashboard) - Supports Pagination
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyOnDeck
x-operation-id-source: derived
/api/Opds/{apiKey}/series:
get:
tags:
- Opds
summary: OPDS Search endpoint
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: query
in: query
description: ''
schema:
type: string
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySeries
x-operation-id-source: derived
/api/Opds/{apiKey}/search:
get:
tags:
- Opds
parameters:
- name: apiKey
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
summary: Get api opds by api key search
x-summary-source: derived
operationId: getApiOpdsByApiKeySearch
x-operation-id-source: derived
/api/Opds/{apiKey}/series/{seriesId}:
get:
tags:
- Opds
summary: Returns the items within a Series (Series Detail)
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: seriesId
in: path
description: ''
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySeriesBySeriesId
x-operation-id-source: derived
/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}:
get:
tags:
- Opds
summary: Returns items for a given Volume
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: seriesId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: volumeId
in: path
description: ''
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySeriesBySeriesIdVolumeByVolumeId
x-operation-id-source: derived
/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}:
get:
tags:
- Opds
summary: Gets items for a given Chapter
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: seriesId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: volumeId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: chapterId
in: path
description: ''
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySeriesBySeriesIdVolumeByVolumeIdChapterByChapterId
x-operation-id-source: derived
/api/Opds/{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}/download/{filename}:
get:
tags:
- Opds
summary: Downloads a file (user must have download permission)
parameters:
- name: apiKey
in: path
description: User's API Key
required: true
schema:
type: string
- name: seriesId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: volumeId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: chapterId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: filename
in: path
description: Not used. Only for Chunky to allow download links
required: true
schema:
type: string
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeySeriesBySeriesIdVolumeByVolumeIdChapterByChapterIdDownloadByFilename
x-operation-id-source: derived
/api/Opds/{apiKey}/image:
get:
tags:
- Opds
summary: This returns a streamed image following OPDS-PS v1.2
parameters:
- name: apiKey
in: path
description: ''
required: true
schema:
type: string
- name: libraryId
in: query
description: ''
schema:
type: integer
format: int32
- name: seriesId
in: query
description: ''
schema:
type: integer
format: int32
- name: volumeId
in: query
description: ''
schema:
type: integer
format: int32
- name: chapterId
in: query
description: ''
schema:
type: integer
format: int32
- name: pageNumber
in: query
description: ''
schema:
type: integer
format: int32
- name: saveProgress
in: query
description: Optional parameter. Can pass false and progress saving will be suppressed
schema:
type: boolean
default: true
responses:
'200':
description: OK
operationId: getApiOpdsByApiKeyImage
x-operation-id-source: derived
/api/Opds/{apiKey}/favicon:
get:
tags:
- Opds
parameters:
- name: apiKey
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
summary: Get api opds by api key favicon
x-summary-source: derived
operationId: getApiOpdsByApiKeyFavicon
x-operation-id-source: derived
components:
securitySchemes:
AuthKey:
type: apiKey
description: Auth Key authentication. Enter your Auth key from your user settings
name: x-api-key
in: header