Update OpenAPI documentation

This commit is contained in:
GitHub Action 2025-03-22 20:07:46 +00:00
parent 4a6ea0a27d
commit e1e00c8c47

View File

@ -1,8 +1,8 @@
{
"openapi": "3.0.1",
"openapi": "3.0.4",
"info": {
"title": "Kavita",
"description": "Kavita provides a set of APIs that are authenticated by JWT. JWT token can be copied from local storage. Assume all fields of a payload are required. Built against v0.8.5.13",
"description": "Kavita provides a set of APIs that are authenticated by JWT. JWT token can be copied from local storage. Assume all fields of a payload are required. Built against v0.8.5.15",
"license": {
"name": "GPL-3.0",
"url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE"
@ -315,7 +315,7 @@
"tags": [
"Account"
],
"summary": "Initiates the flow to update a user's email address.\r\n \r\nIf email is not setup, then the email address is not changed in this API. A confirmation link is sent/dumped which will\r\nvalidate the email. It must be confirmed for the email to update.",
"summary": "Initiates the flow to update a user's email address.\n \nIf email is not setup, then the email address is not changed in this API. A confirmation link is sent/dumped which will\nvalidate the email. It must be confirmed for the email to update.",
"requestBody": {
"description": "",
"content": {
@ -1016,7 +1016,7 @@
"tags": [
"Book"
],
"summary": "This will return a list of mappings from ID -> page num. ID will be the xhtml key and page num will be the reading order\r\nthis is used to rewrite anchors in the book text so that we always load properly in our reader.",
"summary": "This will return a list of mappings from ID -> page num. ID will be the xhtml key and page num will be the reading order\nthis is used to rewrite anchors in the book text so that we always load properly in our reader.",
"description": "This is essentially building the table of contents",
"parameters": [
{
@ -1068,7 +1068,7 @@
"tags": [
"Book"
],
"summary": "This returns a single page within the epub book. All html will be rewritten to be scoped within our reader,\r\nall css is scoped, etc.",
"summary": "This returns a single page within the epub book. All html will be rewritten to be scoped within our reader,\nall css is scoped, etc.",
"parameters": [
{
"name": "chapterId",
@ -1513,7 +1513,7 @@
"tags": [
"Collection"
],
"summary": "Updates an existing tag with a new title, promotion status, and summary.\r\n<remarks>UI does not contain controls to update title</remarks>",
"summary": "Updates an existing tag with a new title, promotion status, and summary.\n<remarks>UI does not contain controls to update title</remarks>",
"requestBody": {
"description": "",
"content": {
@ -1678,7 +1678,7 @@
"tags": [
"Collection"
],
"summary": "For the authenticated user, if they have an active Kavita+ subscription and a MAL username on record,\r\nfetch their Mal interest stacks (including restacks)",
"summary": "For the authenticated user, if they have an active Kavita+ subscription and a MAL username on record,\nfetch their Mal interest stacks (including restacks)",
"responses": {
"200": {
"description": "OK",
@ -4038,7 +4038,7 @@
4
],
"type": "integer",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\r\nThis enum dictates which field to use for the lookup.",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\nThis enum dictates which field to use for the lookup.",
"format": "int32",
"default": 1
}
@ -5587,6 +5587,7 @@
"tags": [
"Person"
],
"summary": "Returns a list of authors and artists for browsing",
"parameters": [
{
"name": "PageNumber",
@ -6166,7 +6167,7 @@
"Reader"
],
"summary": "Returns the file dimensions for all pages in a chapter. If the underlying chapter is PDF, use extractPDF to unpack as images.",
"description": "This has a side effect of caching the images.\r\n This will only be populated on archive filetypes and not in bookmark mode",
"description": "This has a side effect of caching the images.\n This will only be populated on archive filetypes and not in bookmark mode",
"parameters": [
{
"name": "chapterId",
@ -6673,7 +6674,7 @@
"tags": [
"Reader"
],
"summary": "Continue point is the chapter which you should start reading again from. If there is no progress on a series, then the first chapter will be returned (non-special unless only specials).\r\nOtherwise, loop through the chapters and volumes in order to find the next chapter which has progress.",
"summary": "Continue point is the chapter which you should start reading again from. If there is no progress on a series, then the first chapter will be returned (non-special unless only specials).\nOtherwise, loop through the chapters and volumes in order to find the next chapter which has progress.",
"parameters": [
{
"name": "seriesId",
@ -9264,7 +9265,7 @@
"tags": [
"Search"
],
"summary": "Returns the series for the MangaFile id. If the user does not have access (shouldn't happen by the UI),\r\nthen null is returned",
"summary": "Returns the series for the MangaFile id. If the user does not have access (shouldn't happen by the UI),\nthen null is returned",
"parameters": [
{
"name": "mangaFileId",
@ -9305,7 +9306,7 @@
"tags": [
"Search"
],
"summary": "Returns the series for the Chapter id. If the user does not have access (shouldn't happen by the UI),\r\nthen null is returned",
"summary": "Returns the series for the Chapter id. If the user does not have access (shouldn't happen by the UI),\nthen null is returned",
"parameters": [
{
"name": "chapterId",
@ -10147,7 +10148,7 @@
{
"name": "context",
"in": "query",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\r\nThis enum dictates which field to use for the lookup.",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\nThis enum dictates which field to use for the lookup.",
"schema": {
"enum": [
1,
@ -10156,7 +10157,7 @@
4
],
"type": "integer",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\r\nThis enum dictates which field to use for the lookup.",
"description": "For complex queries, Library has certain restrictions where the library should not be included in results.\nThis enum dictates which field to use for the lookup.",
"format": "int32",
"default": 1
}
@ -10639,7 +10640,7 @@
"tags": [
"Series"
],
"summary": "Fetches Series for a set of Ids. This will check User for permission access and filter out any Ids that don't exist or\r\nthe user does not have access to.",
"summary": "Fetches Series for a set of Ids. This will check User for permission access and filter out any Ids that don't exist or\nthe user does not have access to.",
"requestBody": {
"content": {
"application/json": {
@ -10986,7 +10987,7 @@
"tags": [
"Series"
],
"summary": "Based on the delta times between when chapters are added, for series that are not Completed/Cancelled/Hiatus, forecast the next\r\ndate when it will be available.",
"summary": "Based on the delta times between when chapters are added, for series that are not Completed/Cancelled/Hiatus, forecast the next\ndate when it will be available.",
"parameters": [
{
"name": "seriesId",
@ -11326,6 +11327,17 @@
"Server"
],
"summary": "Returns how many versions out of date this install is",
"parameters": [
{
"name": "stableOnly",
"in": "query",
"description": "Only count Stable releases",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "OK",
@ -11583,7 +11595,9 @@
"tags": [
"Settings"
],
"summary": "Update Server settings",
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
@ -11992,7 +12006,7 @@
"tags": [
"Settings"
],
"summary": "Update the metadata settings for Kavita+ users",
"summary": "Update the metadata settings for Kavita+ Metadata feature",
"requestBody": {
"description": "",
"content": {
@ -13623,7 +13637,7 @@
"tags": [
"Upload"
],
"summary": "This stores a file (image) in temp directory for use in a cover image replacement flow.\r\nThis is automatically cleaned up.",
"summary": "This stores a file (image) in temp directory for use in a cover image replacement flow.\nThis is automatically cleaned up.",
"requestBody": {
"description": "Escaped url to download from",
"content": {
@ -15426,7 +15440,7 @@
2
],
"type": "integer",
"description": "Manga Reader Option: How the manga reader should perform paging or reading of the file\r\n<example>\r\nWebtoon uses scrolling to page, MANGA_LR uses paging by clicking left/right side of reader, MANGA_UD uses paging\r\nby clicking top/bottom sides of reader.\r\n</example>",
"description": "Manga Reader Option: How the manga reader should perform paging or reading of the file\n<example>\nWebtoon uses scrolling to page, MANGA_LR uses paging by clicking left/right side of reader, MANGA_UD uses paging\nby clicking top/bottom sides of reader.\n</example>",
"format": "int32"
},
"autoCloseMenu": {
@ -15514,7 +15528,7 @@
2
],
"type": "integer",
"description": "Book Reader Option: The way a page from a book is rendered. Default is as book dictates, 1 column is fit to height,\r\n2 column is fit to height, 2 columns",
"description": "Book Reader Option: The way a page from a book is rendered. Default is as book dictates, 1 column is fit to height,\n2 column is fit to height, 2 columns",
"format": "int32"
},
"bookReaderImmersiveMode": {
@ -15640,7 +15654,7 @@
},
"bookScrollId": {
"type": "string",
"description": "For Book Reader, represents the nearest passed anchor on the screen that can be used to resume scroll point\r\non next load",
"description": "For Book Reader, represents the nearest passed anchor on the screen that can be used to resume scroll point\non next load",
"nullable": true
},
"created": {
@ -16199,7 +16213,7 @@
},
"malId": {
"type": "integer",
"description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"description": "https://myanimelist.net/people/{MalId}/\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"format": "int64"
},
"hardcoverId": {
@ -16946,7 +16960,7 @@
}
},
"additionalProperties": false,
"description": "A Chapter is the lowest grouping of a reading medium. A Chapter contains a set of MangaFiles which represents the underlying\r\nfile (abstracted from type)."
"description": "A Chapter is the lowest grouping of a reading medium. A Chapter contains a set of MangaFiles which represents the underlying\nfile (abstracted from type)."
},
"ChapterInfoDto": {
"type": "object",
@ -18678,7 +18692,7 @@
},
"rating": {
"type": "integer",
"description": "Will return back everything with the rating and above\r\nAPI.Entities.AppUserRating.Rating",
"description": "Will return back everything with the rating and above\nAPI.Entities.AppUserRating.Rating",
"format": "int32"
},
"sortOptions": {
@ -19051,7 +19065,7 @@
"items": {
"type": "string"
},
"description": "List of Roles to assign to user. If admin not present, Pleb will be applied.\r\nIf admin present, all libraries will be granted access and will ignore those from DTO.",
"description": "List of Roles to assign to user. If admin not present, Pleb will be applied.\nIf admin present, all libraries will be granted access and will ignore those from DTO.",
"nullable": true
},
"libraries": {
@ -20261,7 +20275,7 @@
},
"malId": {
"type": "integer",
"description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"description": "https://myanimelist.net/people/{MalId}/\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"format": "int64"
},
"hardcoverId": {
@ -20332,7 +20346,7 @@
},
"malId": {
"type": "integer",
"description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"description": "https://myanimelist.net/people/{MalId}/\nhttps://myanimelist.net/character/{MalId}/CharacterName",
"format": "int64"
},
"hardcoverId": {
@ -20402,7 +20416,7 @@
},
"bookScrollId": {
"type": "string",
"description": "For EPUB reader, this can be an optional string of the id of a part marker, to help resume reading position\r\non pages that combine multiple \"chapters\".",
"description": "For EPUB reader, this can be an optional string of the id of a part marker, to help resume reading position\non pages that combine multiple \"chapters\".",
"nullable": true
},
"lastModifiedUtc": {
@ -21853,7 +21867,7 @@
}
},
"additionalProperties": false,
"description": "This is a special DTO for a UI page in Kavita. This performs sorting and grouping and returns exactly what UI requires for layout.\r\nThis is subject to change, do not rely on this Data model."
"description": "This is a special DTO for a UI page in Kavita. This performs sorting and grouping and returns exactly what UI requires for layout.\nThis is subject to change, do not rely on this Data model."
},
"SeriesDetailPlusDto": {
"type": "object",
@ -22558,7 +22572,7 @@
}
},
"additionalProperties": false,
"description": "A relation flows between one series and another.\r\nSeries ---kind---> target"
"description": "A relation flows between one series and another.\nSeries ---kind---> target"
},
"SeriesRelationship": {
"type": "object",
@ -23021,7 +23035,7 @@
},
"fileName": {
"type": "string",
"description": "File path to the content. Stored under API.Services.DirectoryService.SiteThemeDirectory.\r\nMust be a .css file",
"description": "File path to the content. Stored under API.Services.DirectoryService.SiteThemeDirectory.\nMust be a .css file",
"nullable": true
},
"isDefault": {
@ -23108,7 +23122,7 @@
},
"fileName": {
"type": "string",
"description": "File path to the content. Stored under API.Services.DirectoryService.SiteThemeDirectory.\r\nMust be a .css file",
"description": "File path to the content. Stored under API.Services.DirectoryService.SiteThemeDirectory.\nMust be a .css file",
"nullable": true
},
"isDefault": {
@ -24221,7 +24235,7 @@
},
"updateVersion": {
"type": "string",
"description": "Semver of the release version\r\n<example>0.4.3</example>",
"description": "Semver of the release version\n<example>0.4.3</example>",
"nullable": true
},
"updateBody": {
@ -25000,7 +25014,7 @@
2
],
"type": "integer",
"description": "Manga Reader Option: How the manga reader should perform paging or reading of the file\r\n<example>\r\nWebtoon uses scrolling to page, LeftRight uses paging by clicking left/right side of reader, UpDown uses paging\r\nby clicking top/bottom sides of reader.\r\n</example>",
"description": "Manga Reader Option: How the manga reader should perform paging or reading of the file\n<example>\nWebtoon uses scrolling to page, LeftRight uses paging by clicking left/right side of reader, UpDown uses paging\nby clicking top/bottom sides of reader.\n</example>",
"format": "int32"
},
"layoutMode": {
@ -25587,7 +25601,7 @@
},
{
"name": "Tachiyomi",
"description": "All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any\r\nother purposes."
"description": "All APIs are for Tachiyomi extension and app. They have hacks for our implementation and should not be used for any\nother purposes."
},
{
"name": "Upload",