Kavita Download API
All APIs related to downloading entities from the system. Requires Download Role or Admin Role.
All APIs related to downloading entities from the system. Requires Download Role or Admin Role.
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-download-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 Download 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: Download
description: All APIs related to downloading entities from the system. Requires Download Role or Admin Role.
paths:
/api/Download/volume-size:
get:
tags:
- Download
summary: For a given volume, return the size in bytes
parameters:
- name: volumeId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: integer
format: int64
application/json:
schema:
type: integer
format: int64
text/json:
schema:
type: integer
format: int64
operationId: getApiDownloadVolumeSize
x-operation-id-source: derived
/api/Download/bulk-volume-size:
post:
tags:
- Download
summary: For a set of volumes, return the size in bytes
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BulkVolumeSizeRequest'
text/json:
schema:
$ref: '#/components/schemas/BulkVolumeSizeRequest'
application/*+json:
schema:
$ref: '#/components/schemas/BulkVolumeSizeRequest'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: object
additionalProperties:
type: integer
format: int64
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
text/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
operationId: postApiDownloadBulkVolumeSize
x-operation-id-source: derived
/api/Download/chapter-size:
get:
tags:
- Download
summary: For a given chapter, return the size in bytes
parameters:
- name: chapterId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: integer
format: int64
application/json:
schema:
type: integer
format: int64
text/json:
schema:
type: integer
format: int64
operationId: getApiDownloadChapterSize
x-operation-id-source: derived
/api/Download/bulk-chapter-size:
post:
tags:
- Download
summary: For a set of chapters, return the size in bytes
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BulkChapterSizeRequest'
text/json:
schema:
$ref: '#/components/schemas/BulkChapterSizeRequest'
application/*+json:
schema:
$ref: '#/components/schemas/BulkChapterSizeRequest'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: object
additionalProperties:
type: integer
format: int64
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
text/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
operationId: postApiDownloadBulkChapterSize
x-operation-id-source: derived
/api/Download/series-size:
get:
tags:
- Download
summary: For a series, return the size in bytes
parameters:
- name: seriesId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: integer
format: int64
application/json:
schema:
type: integer
format: int64
text/json:
schema:
type: integer
format: int64
operationId: getApiDownloadSeriesSize
x-operation-id-source: derived
/api/Download/readinglist-size:
get:
tags:
- Download
summary: Returns the filesize for all items of a reading list that the requesting user…
parameters:
- name: readingListId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: integer
format: int64
application/json:
schema:
type: integer
format: int64
text/json:
schema:
type: integer
format: int64
operationId: getApiDownloadReadinglistSize
x-operation-id-source: derived
/api/Download/bulk-readinglist-size:
post:
tags:
- Download
summary: Returns the mapping of readinglist -> size
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BulkReadingListSizeRequest'
text/json:
schema:
$ref: '#/components/schemas/BulkReadingListSizeRequest'
application/*+json:
schema:
$ref: '#/components/schemas/BulkReadingListSizeRequest'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: object
additionalProperties:
type: integer
format: int64
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
text/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
operationId: postApiDownloadBulkReadinglistSize
x-operation-id-source: derived
/api/Download/bulk-series-size:
post:
tags:
- Download
summary: For a set of series, return the size in bytes
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BulkSeriesSizeRequest'
text/json:
schema:
$ref: '#/components/schemas/BulkSeriesSizeRequest'
application/*+json:
schema:
$ref: '#/components/schemas/BulkSeriesSizeRequest'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: object
additionalProperties:
type: integer
format: int64
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
text/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
operationId: postApiDownloadBulkSeriesSize
x-operation-id-source: derived
/api/Download/volume:
get:
tags:
- Download
summary: Downloads all chapters within a volume.
parameters:
- name: volumeId
in: query
description: ''
schema:
type: integer
format: int32
- name: correlationId
in: query
description: Only for UI
schema:
type: string
responses:
'200':
description: OK
operationId: getApiDownloadVolume
x-operation-id-source: derived
/api/Download/chapter:
get:
tags:
- Download
summary: Returns the zip for a single chapter.
parameters:
- name: chapterId
in: query
description: ''
schema:
type: integer
format: int32
- name: correlationId
in: query
schema:
type: string
responses:
'200':
description: OK
operationId: getApiDownloadChapter
x-operation-id-source: derived
/api/Download/series:
get:
tags:
- Download
parameters:
- name: seriesId
in: query
schema:
type: integer
format: int32
- name: correlationId
in: query
schema:
type: string
responses:
'200':
description: OK
summary: Get api download series
x-summary-source: derived
operationId: getApiDownloadSeries
x-operation-id-source: derived
/api/Download/bookmarks:
post:
tags:
- Download
summary: Downloads all bookmarks in a zip for
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DownloadBookmarkDto'
text/json:
schema:
$ref: '#/components/schemas/DownloadBookmarkDto'
application/*+json:
schema:
$ref: '#/components/schemas/DownloadBookmarkDto'
responses:
'200':
description: OK
operationId: postApiDownloadBookmarks
x-operation-id-source: derived
components:
schemas:
MangaFormat:
enum:
- 0
- 1
- 2
- 3
- 4
type: integer
description: 'Members:
- `0` — Image
- `1` — Archive
- `2` — Unknown
- `3` — EPUB (Epub)
- `4` — PDF (Pdf)'
format: int32
x-enum-varnames:
- Image
- Archive
- Unknown
- Epub
- Pdf
x-enum-descriptions:
- Image
- Archive
- Unknown
- EPUB
- PDF
BulkReadingListSizeRequest:
type: object
properties:
readingListIds:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
BookmarkDto:
required:
- chapterId
- page
- seriesId
- volumeId
type: object
properties:
id:
type: integer
format: int32
page:
type: integer
format: int32
volumeId:
type: integer
format: int32
seriesId:
type: integer
format: int32
chapterId:
type: integer
format: int32
imageOffset:
type: integer
format: int32
xPath:
type:
- string
- 'null'
series:
$ref: '#/components/schemas/SeriesDto'
chapterTitle:
type:
- string
- 'null'
additionalProperties: false
BulkChapterSizeRequest:
type: object
properties:
chapterIds:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
MetadataProvider:
enum:
- 2
- 3
- 4
type: integer
description: 'Members:
- `2` — Hardcover
- `3` — Mangabaka
- `4` — ComicBookRoundup'
format: int32
x-enum-varnames:
- Hardcover
- Mangabaka
- ComicBookRoundup
x-enum-descriptions:
- Hardcover
- Mangabaka
- ComicBookRoundup
BulkSeriesSizeRequest:
type: object
properties:
seriesIds:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
SeriesDto:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
originalName:
type:
- string
- 'null'
localizedName:
type:
- string
- 'null'
sortName:
type:
- string
- 'null'
pages:
type: integer
format: int32
coverImageLocked:
type: boolean
lastChapterAdded:
type: string
format: date-time
lastChapterAddedUtc:
type: string
format: date-time
userRating:
type: number
format: float
hasUserRated:
type: boolean
totalReads:
type: integer
format: int32
pagesRead:
type: integer
format: int32
latestReadDate:
type: string
format: date-time
format:
$ref: '#/components/schemas/MangaFormat'
created:
type: string
format: date-time
sortNameLocked:
type: boolean
localizedNameLocked:
type: boolean
nameLocked:
type: boolean
wordCount:
type: integer
format: int64
libraryId:
type: integer
format: int32
libraryName:
type:
- string
- 'null'
minHoursToRead:
type: integer
format: int32
maxHoursToRead:
type: integer
format: int32
avgHoursToRead:
type: number
format: float
folderPath:
type:
- string
- 'null'
lowestFolderPath:
type:
- string
- 'null'
lastFolderScanned:
type: string
format: date-time
dontMatch:
type: boolean
isBlacklisted:
type: boolean
isStandAlone:
type: boolean
metadataProviderOverride:
$ref: '#/components/schemas/MetadataProvider'
coverImage:
type:
- string
- 'null'
primaryColor:
type:
- string
- 'null'
secondaryColor:
type:
- string
- 'null'
aniListId:
type: integer
format: int32
malId:
type: integer
format: int64
hardcoverId:
type: integer
format: int32
metronId:
type: integer
format: int64
comicVineId:
type:
- string
- 'null'
mangaBakaId:
type: integer
format: int32
mangaBakaEditionId:
type:
- string
- 'null'
cbrId:
type: integer
format: int32
additionalProperties: false
BulkVolumeSizeRequest:
type: object
properties:
volumeIds:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
DownloadBookmarkDto:
required:
- bookmarks
type: object
properties:
bookmarks:
type: array
items:
$ref: '#/components/schemas/BookmarkDto'
additionalProperties: false
securitySchemes:
AuthKey:
type: apiKey
description: Auth Key authentication. Enter your Auth key from your user settings
name: x-api-key
in: header