Kavita Tachiyomi API
All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any other purposes.
All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any other purposes.
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-tachiyomi-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 Tachiyomi 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: Tachiyomi
description: 'All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any
other purposes.'
paths:
/api/Tachiyomi/latest-chapter:
get:
tags:
- Tachiyomi
summary: Given the series Id, this should return the latest chapter that has been fully…
parameters:
- name: seriesId
in: query
description: ''
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/TachiyomiChapterDto'
application/json:
schema:
$ref: '#/components/schemas/TachiyomiChapterDto'
text/json:
schema:
$ref: '#/components/schemas/TachiyomiChapterDto'
operationId: getApiTachiyomiLatestChapter
x-operation-id-source: derived
/api/Tachiyomi/mark-chapter-until-as-read:
post:
tags:
- Tachiyomi
summary: Marks every chapter that is sorted below the passed number as Read.
description: This is built for Tachiyomi and is not expected to be called by any other place
parameters:
- name: seriesId
in: query
schema:
type: integer
format: int32
- name: chapterNumber
in: query
schema:
type: number
format: float
- name: generateReadingSessions
in: query
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
text/plain:
schema:
type: boolean
application/json:
schema:
type: boolean
text/json:
schema:
type: boolean
operationId: postApiTachiyomiMarkChapterUntilAsRead
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
TachiyomiChapterDto:
type: object
properties:
id:
type: integer
format: int32
range:
type:
- string
- 'null'
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
number:
type:
- string
- 'null'
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
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
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
securitySchemes:
AuthKey:
type: apiKey
description: Auth Key authentication. Enter your Auth key from your user settings
name: x-api-key
in: header