Kavita Volume API
The Volume API from Kavita — 3 operation(s) for volume.
The Volume API from Kavita — 3 operation(s) for volume.
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-volume-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 Volume 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: Volume
paths:
/api/Volume:
get:
tags:
- Volume
summary: Returns the appropriate Volume
parameters:
- name: volumeId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/VolumeDto'
application/json:
schema:
$ref: '#/components/schemas/VolumeDto'
text/json:
schema:
$ref: '#/components/schemas/VolumeDto'
operationId: getApiVolume
x-operation-id-source: derived
delete:
tags:
- Volume
summary: Delete the Volume from the DB
parameters:
- name: volumeId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: boolean
application/json:
schema:
type: boolean
text/json:
schema:
type: boolean
operationId: deleteApiVolume
x-operation-id-source: derived
/api/Volume/update:
post:
tags:
- Volume
summary: Updates the information on the Volume
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateVolumeDto'
text/json:
schema:
$ref: '#/components/schemas/UpdateVolumeDto'
application/*+json:
schema:
$ref: '#/components/schemas/UpdateVolumeDto'
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/VolumeDto'
application/json:
schema:
$ref: '#/components/schemas/VolumeDto'
text/json:
schema:
$ref: '#/components/schemas/VolumeDto'
operationId: postApiVolumeUpdate
x-operation-id-source: derived
/api/Volume/multiple:
post:
tags:
- Volume
summary: Delete multiple Volumes from the DB
requestBody:
description: ''
content:
application/json:
schema:
type: array
items:
type: integer
format: int32
text/json:
schema:
type: array
items:
type: integer
format: int32
application/*+json:
schema:
type: array
items:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
type: boolean
application/json:
schema:
type: boolean
text/json:
schema:
type: boolean
operationId: postApiVolumeMultiple
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
MangaFileDto:
type: object
properties:
id:
type: integer
format: int32
filePath:
type:
- string
- 'null'
pages:
type: integer
format: int32
bytes:
type: integer
format: int64
format:
$ref: '#/components/schemas/MangaFormat'
created:
type: string
format: date-time
extension:
type:
- string
- 'null'
koreaderHash:
type:
- string
- 'null'
additionalProperties: false
TagDto:
required:
- title
type: object
properties:
id:
type: integer
format: int32
title:
type:
- string
- 'null'
additionalProperties: false
PersonDto:
required:
- name
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
coverImageLocked:
type: boolean
primaryColor:
type:
- string
- 'null'
secondaryColor:
type:
- string
- 'null'
coverImage:
type:
- string
- 'null'
aliases:
type:
- array
- 'null'
items:
type: string
description:
type:
- string
- 'null'
asin:
type:
- string
- 'null'
aniListId:
type: integer
format: int32
malId:
type: integer
format: int64
hardcoverId:
type:
- string
- 'null'
webLinks:
type:
- array
- 'null'
items:
type: string
roles:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonRole'
additionalProperties: false
VolumeDto:
type: object
properties:
id:
type: integer
format: int32
minNumber:
type: number
format: float
maxNumber:
type: number
format: float
name:
type:
- string
- 'null'
number:
type: integer
format: int32
deprecated: true
pages:
type: integer
format: int32
pagesRead:
type: integer
format: int32
lastModifiedUtc:
type: string
format: date-time
createdUtc:
type: string
format: date-time
created:
type: string
format: date-time
lastModified:
type: string
format: date-time
seriesId:
type: integer
format: int32
chapters:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ChapterDto'
minHoursToRead:
type: integer
format: int32
maxHoursToRead:
type: integer
format: int32
avgHoursToRead:
type: number
format: float
wordCount:
type: integer
format: int64
coverImage:
type:
- string
- 'null'
coverImageLocked:
type: boolean
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
cbrId:
type: integer
format: int32
additionalProperties: false
PublicationStatus:
enum:
- 0
- 1
- 2
- 3
- 4
type: integer
description: 'Members:
- `0` — Ongoing (OnGoing)
- `1` — Hiatus
- `2` — Completed
- `3` — Cancelled
- `4` — Ended'
format: int32
x-enum-varnames:
- OnGoing
- Hiatus
- Completed
- Cancelled
- Ended
x-enum-descriptions:
- Ongoing
- Hiatus
- Completed
- Cancelled
- Ended
GenreTagDto:
required:
- title
type: object
properties:
id:
type: integer
format: int32
title:
type:
- string
- 'null'
additionalProperties: false
ChapterDto:
type: object
properties:
id:
type: integer
format: int32
range:
type:
- string
- 'null'
number:
type:
- string
- 'null'
deprecated: true
minNumber:
type: number
format: float
maxNumber:
type: number
format: float
sortOrder:
type: number
format: float
pages:
type: integer
format: int32
isSpecial:
type: boolean
title:
type:
- string
- 'null'
files:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MangaFileDto'
pagesRead:
type: integer
format: int32
totalReads:
type: integer
format: int32
lastReadingProgressUtc:
type: string
format: date-time
lastReadingProgress:
type: string
format: date-time
coverImageLocked:
type: boolean
volumeId:
type: integer
format: int32
createdUtc:
type: string
format: date-time
lastModifiedUtc:
type: string
format: date-time
created:
type: string
format: date-time
releaseDate:
type: string
format: date-time
titleName:
type:
- string
- 'null'
summary:
type:
- string
- 'null'
ageRating:
$ref: '#/components/schemas/AgeRating'
wordCount:
type: integer
format: int64
volumeTitle:
type:
- string
- 'null'
minHoursToRead:
type: integer
format: int32
maxHoursToRead:
type: integer
format: int32
avgHoursToRead:
type: number
format: float
webLinks:
type:
- string
- 'null'
isbn:
type:
- string
- 'null'
writers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
coverArtists:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
publishers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
characters:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
pencillers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
inkers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
imprints:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
colorists:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
letterers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
editors:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
translators:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
teams:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
locations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PersonDto'
genres:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/GenreTagDto'
tags:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TagDto'
publicationStatus:
$ref: '#/components/schemas/PublicationStatus'
language:
type:
- string
- 'null'
count:
type: integer
format: int32
totalCount:
type: integer
format: int32
languageLocked:
type: boolean
summaryLocked:
type: boolean
ageRatingLocked:
type: boolean
publicationStatusLocked:
type: boolean
genresLocked:
type: boolean
tagsLocked:
type: boolean
writerLocked:
type: boolean
characterLocked:
type: boolean
coloristLocked:
type: boolean
editorLocked:
type: boolean
inkerLocked:
type: boolean
imprintLocked:
type: boolean
lettererLocked:
type: boolean
pencillerLocked:
type: boolean
publisherLocked:
type: boolean
translatorLocked:
type: boolean
teamLocked:
type: boolean
locationLocked:
type: boolean
coverArtistLocked:
type: boolean
releaseDateLocked:
type: boolean
titleNameLocked:
type: boolean
sortOrderLocked:
type: boolean
coverImage:
type:
- string
- 'null'
primaryColor:
type:
- string
- 'null'
secondaryColor:
type:
- string
- 'null'
format:
$ref: '#/components/schemas/MangaFormat'
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
cbrId:
type: integer
format: int32
additionalProperties: false
PersonRole:
enum:
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
type: integer
description: 'Members:
- `3` — Writer
- `4` — Penciller
- `5` — Inker
- `6` — Colorist
- `7` — Letterer
- `8` — CoverArtist
- `9` — Editor
- `10` — Publisher
- `11` — Character
- `12` — Translator
- `13` — Imprint
- `14` — Team
- `15` — Location'
format: int32
x-enum-varnames:
- Writer
- Penciller
- Inker
- Colorist
- Letterer
- CoverArtist
- Editor
- Publisher
- Character
- Translator
- Imprint
- Team
- Location
x-enum-descriptions:
- Writer
- Penciller
- Inker
- Colorist
- Letterer
- CoverArtist
- Editor
- Publisher
- Character
- Translator
- Imprint
- Team
- Location
AgeRating:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- -1
type: integer
description: 'Members:
- `0` — Unknown
- `1` — Rating Pending (RatingPending)
- `2` — Early Childhood (EarlyChildhood)
- `3` — Everyone
- `4` — G
- `5` — Everyone 10+ (Everyone10Plus)
- `6` — PG
- `7` — Kids to Adults (KidsToAdults)
- `8` — Teen
- `9` — MA15+ (Mature15Plus)
- `10` — Mature 17+ (Mature17Plus)
- `11` — M (Mature)
- `12` — R18+ (R18Plus)
- `13` — Adults Only 18+ (AdultsOnly)
- `14` — X18+ (X18Plus)
- `-1` — Not Applicable (NotApplicable)'
format: int32
x-enum-varnames:
- Unknown
- RatingPending
- EarlyChildhood
- Everyone
- G
- Everyone10Plus
- PG
- KidsToAdults
- Teen
- Mature15Plus
- Mature17Plus
- Mature
- R18Plus
- AdultsOnly
- X18Plus
- NotApplicable
x-enum-descriptions:
- Unknown
- Rating Pending
- Early Childhood
- Everyone
- G
- Everyone 10+
- PG
- Kids to Adults
- Teen
- MA15+
- Mature 17+
- M
- R18+
- Adults Only 18+
- X18+
- Not Applicable
UpdateVolumeDto:
type: object
properties:
id:
type: integer
format: int32
aniListId:
type:
- integer
- 'null'
format: int32
malId:
type:
- integer
- 'null'
format: int64
hardcoverId:
type:
- integer
- 'null'
format: int32
metronId:
type:
- integer
- 'null'
format: int64
comicVineId:
type:
- string
- 'null'
mangaBakaId:
type:
- integer
- 'null'
format: int32
cbrId:
type:
- integer
- 'null'
format: int32
additionalProperties: false
securitySchemes:
AuthKey:
type: apiKey
description: Auth Key authentication. Enter your Auth key from your user settings
name: x-api-key
in: header