{ "openapi": "3.0.4", "info": { "title": "Tranga v2", "version": "2.0" }, "paths": { "/v2/FileLibrary": { "get": { "tags": [ "FileLibrary" ], "summary": "Returns all API.Controllers.DTOs.FileLibrary", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileLibrary" } } } } }, "500": { "description": "Error during Database Operation" } } }, "put": { "tags": [ "FileLibrary" ], "summary": "Creates new API.Controllers.DTOs.FileLibrary", "requestBody": { "description": "New API.Controllers.DTOs.FileLibrary to add", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryRecord" } } } }, "responses": { "201": { "description": "Created", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "200": { "description": "Key of new Library" } } } }, "/v2/FileLibrary/{FileLibraryId}": { "get": { "tags": [ "FileLibrary" ], "summary": "Returns API.Controllers.DTOs.FileLibrary with FileLibraryId", "parameters": [ { "name": "FileLibraryId", "in": "path", "description": "API.Controllers.DTOs.FileLibrary.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/FileLibrary" } } } }, "404": { "description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } }, "delete": { "tags": [ "FileLibrary" ], "summary": "Deletes the !:FileLibraryId.LibraryName with FileLibraryId", "parameters": [ { "name": "FileLibraryId", "in": "path", "description": "API.Controllers.DTOs.FileLibrary.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/FileLibrary/{FileLibraryId}/ChangeBasePath": { "patch": { "tags": [ "FileLibrary" ], "summary": "Changes the !:FileLibraryId.BasePath with FileLibraryId", "parameters": [ { "name": "FileLibraryId", "in": "path", "description": "API.Controllers.DTOs.FileLibrary.Key", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "New !:FileLibraryId.BasePath", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/FileLibrary/{FileLibraryId}/ChangeName": { "patch": { "tags": [ "FileLibrary" ], "summary": "Changes the !:FileLibraryId.LibraryName with FileLibraryId", "parameters": [ { "name": "FileLibraryId", "in": "path", "description": "API.Controllers.DTOs.FileLibrary.Key", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "New !:FileLibraryId.LibraryName", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/LibraryConnector": { "get": { "tags": [ "LibraryConnector" ], "summary": "Gets all configured API.Controllers.DTOs.LibraryConnector", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LibraryConnector" } } } } }, "500": { "description": "Error during Database Operation" } } }, "put": { "tags": [ "LibraryConnector" ], "summary": "Creates a new API.Controllers.DTOs.LibraryConnector", "requestBody": { "description": "", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryConnectorRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryConnectorRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryConnectorRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateLibraryConnectorRecord" } } } }, "responses": { "201": { "description": "", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/LibraryConnector/{LibraryConnectorId}": { "get": { "tags": [ "LibraryConnector" ], "summary": "Returns API.Controllers.DTOs.LibraryConnector with LibraryConnectorId", "parameters": [ { "name": "LibraryConnectorId", "in": "path", "description": "API.Controllers.DTOs.LibraryConnector.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/LibraryConnector" } } } }, "404": { "description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } }, "delete": { "tags": [ "LibraryConnector" ], "summary": "Deletes API.Controllers.DTOs.LibraryConnector with LibraryConnectorId", "parameters": [ { "name": "LibraryConnectorId", "in": "path", "description": "ToFileLibrary-Connector-ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Maintenance/CleanupNoDownloadManga": { "post": { "tags": [ "Maintenance" ], "summary": "Removes all API.Schema.MangaContext.Manga not marked for Download on any API.MangaConnectors.MangaConnector", "responses": { "200": { "description": "" }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga": { "get": { "tags": [ "Manga" ], "summary": "Returns all cached API.Controllers.DTOs.Manga", "responses": { "200": { "description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MinimalManga" } } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Manga/Keys": { "get": { "tags": [ "Manga" ], "summary": "Returns all cached API.Schema.MangaContext.Manga.Keys", "responses": { "200": { "description": "API.Schema.MangaContext.Manga Keys/IDs", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Manga/Downloading": { "get": { "tags": [ "Manga" ], "summary": "Returns all API.Schema.MangaContext.Manga that are being downloaded from at least one API.MangaConnectors.MangaConnector", "responses": { "200": { "description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MinimalManga" } } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Manga/WithIDs": { "post": { "tags": [ "Manga" ], "summary": "Returns all cached API.Schema.MangaContext.Manga with MangaIds", "requestBody": { "description": "Array of API.Schema.MangaContext.Manga.Key", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } }, "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } }, "text/json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } }, "application/*+json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "responses": { "200": { "description": "API.Controllers.DTOs.Manga", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Manga" } } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Manga/{MangaId}": { "get": { "tags": [ "Manga" ], "summary": "Return API.Schema.MangaContext.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Schema.MangaContext.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/Manga" } } } }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } }, "delete": { "tags": [ "Manga" ], "summary": "Delete API.Controllers.DTOs.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga/{MangaIdFrom}/MergeInto/{MangaIdInto}": { "patch": { "tags": [ "Manga" ], "summary": "Merge two API.Controllers.DTOs.Manga into one. THIS IS NOT REVERSIBLE!", "parameters": [ { "name": "MangaIdFrom", "in": "path", "description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data from (getting deleted)", "required": true, "schema": { "type": "string" } }, { "name": "MangaIdInto", "in": "path", "description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data into", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaIdFrom or MangaIdInto not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga/{MangaId}/Cover/{CoverSize}": { "get": { "tags": [ "Manga" ], "summary": "Returns Cover of API.Controllers.DTOs.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } }, { "name": "CoverSize", "in": "path", "description": "Size of the cover returned\n \n - API.Controllers.MangaController.CoverSize.SmallAPI.Constants.ImageSmSize\n - API.Controllers.MangaController.CoverSize.MediumAPI.Constants.ImageMdSize\n - API.Controllers.MangaController.CoverSize.LargeAPI.Constants.ImageLgSize", "required": true, "schema": { "$ref": "#/components/schemas/CoverSize" } } ], "responses": { "200": { "description": "JPEG Image", "content": { "image/jpeg; x-version=2.0": { "schema": { "type": "string", "format": "binary" } } } }, "204": { "description": "Cover not loaded" }, "400": { "description": "Bad Request", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "503": { "description": "Retry later, downloading cover" } } } }, "/v2/Manga/{MangaId}/Chapters": { "get": { "tags": [ "Manga" ], "summary": "Returns all API.Controllers.DTOs.Chapter of API.Controllers.DTOs.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Chapter" } } } } }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/v2/Manga/{MangaId}/Chapters/Downloaded": { "get": { "tags": [ "Manga" ], "summary": "Returns all downloaded API.Controllers.DTOs.Chapter for API.Controllers.DTOs.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Chapter" } } } } }, "204": { "description": "No available chapters" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga/{MangaId}/Chapters/NotDownloaded": { "get": { "tags": [ "Manga" ], "summary": "Returns all API.Controllers.DTOs.Chapter not downloaded for API.Controllers.DTOs.Manga with MangaId", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Chapter" } } } } }, "204": { "description": "No available chapters" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga/{MangaId}/Chapter/LatestAvailable": { "get": { "tags": [ "Manga" ], "summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Controllers.DTOs.Manga available on API.MangaConnectors.MangaConnector", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "integer", "format": "int32" } } } }, "204": { "description": "No available chapters" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Internal Server Error" }, "503": { "description": "Retry after timeout, updating value" }, "412": { "description": "Could not retrieve the maximum chapter-number" } } } }, "/v2/Manga/{MangaId}/Chapter/LatestDownloaded": { "get": { "tags": [ "Manga" ], "summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Controllers.DTOs.Manga that is downloaded", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/Chapter" } } } }, "204": { "description": "No available chapters" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "412": { "description": "Could not retrieve the maximum chapter-number", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "503": { "description": "Retry after timeout, updating value" } } } }, "/v2/Manga/{MangaId}/IgnoreChaptersBefore": { "patch": { "tags": [ "Manga" ], "summary": "Configure the API.Controllers.DTOs.Chapter cut-off for API.Controllers.DTOs.Manga", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Threshold (API.Controllers.DTOs.Chapter ChapterNumber)", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "number", "format": "float" } }, "application/json; x-version=2.0": { "schema": { "type": "number", "format": "float" } }, "text/json; x-version=2.0": { "schema": { "type": "number", "format": "float" } }, "application/*+json; x-version=2.0": { "schema": { "type": "number", "format": "float" } } } }, "responses": { "200": { "description": "OK" }, "404": { "description": "API.Controllers.DTOs.Manga with MangaId not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "202": { "description": "" } } } }, "/v2/Manga/{MangaId}/ChangeLibrary/{LibraryId}": { "post": { "tags": [ "Manga" ], "summary": "Move API.Controllers.DTOs.Manga to different API.Controllers.DTOs.FileLibrary", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga.Key", "required": true, "schema": { "type": "string" } }, { "name": "LibraryId", "in": "path", "description": "API.Controllers.DTOs.FileLibrary.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK" }, "404": { "description": "MangaId or LibraryId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "202": { "description": "Folder is going to be moved" } } } }, "/v2/Manga/{MangaId}/SetAsDownloadFrom/{MangaConnectorName}/{IsRequested}": { "post": { "tags": [ "Manga" ], "summary": "(Un-)Marks API.Controllers.DTOs.Manga as requested for Download from API.MangaConnectors.MangaConnector", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Controllers.DTOs.Manga with MangaId", "required": true, "schema": { "type": "string" } }, { "name": "MangaConnectorName", "in": "path", "description": "API.MangaConnectors.MangaConnector with MangaConnectorName", "required": true, "schema": { "type": "string" } }, { "name": "IsRequested", "in": "path", "description": "true to mark as requested, false to mark as not-requested", "required": true, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "" }, "404": { "description": "MangaId or MangaConnectorName not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "412": { "description": "API.Controllers.DTOs.Manga was not linked to API.MangaConnectors.MangaConnector, so nothing changed", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "428": { "description": "API.Controllers.DTOs.Manga is not linked to API.MangaConnectors.MangaConnector yet. Search for API.Controllers.DTOs.Manga on API.MangaConnectors.MangaConnector first (to create a API.Schema.MangaContext.MangaConnectorId`1).", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Manga/{MangaId}/SearchOn/{MangaConnectorName}": { "post": { "tags": [ "Manga" ], "summary": "Initiate a search for API.Schema.MangaContext.Manga on a different API.MangaConnectors.MangaConnector", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Schema.MangaContext.Manga with MangaId", "required": true, "schema": { "type": "string" } }, { "name": "MangaConnectorName", "in": "path", "description": "API.MangaConnectors.MangaConnector.Name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MinimalManga" } } } } }, "404": { "description": "API.MangaConnectors.MangaConnector with Name not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "406": { "description": "Not Acceptable", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "412": { "description": "API.MangaConnectors.MangaConnector with Name is disabled" } } } }, "/v2/Manga/WithAuthorId/{AuthorId}": { "get": { "tags": [ "Manga" ], "summary": "Returns all API.Controllers.DTOs.Manga which where Authored by API.Controllers.DTOs.Author with AuthorId", "parameters": [ { "name": "AuthorId", "in": "path", "description": "API.Controllers.DTOs.Author.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Manga" } } } } }, "404": { "description": "API.Controllers.DTOs.Author with AuthorId", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Manga/WithTag/{Tag}": { "get": { "tags": [ "Manga" ], "summary": "Returns all API.Controllers.DTOs.Manga with !:Tag", "parameters": [ { "name": "Tag", "in": "path", "description": "!:Tag.Tag", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Manga" } } } } }, "404": { "description": "!:Tag not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/MangaConnector": { "get": { "tags": [ "MangaConnector" ], "summary": "Get all API.MangaConnectors.MangaConnector (Scanlation-Sites)", "responses": { "200": { "description": "Names of API.MangaConnectors.MangaConnector (Scanlation-Sites)", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MangaConnector" } } } } } } } }, "/v2/MangaConnector/{MangaConnectorName}": { "get": { "tags": [ "MangaConnector" ], "summary": "Returns the API.MangaConnectors.MangaConnector (Scanlation-Sites) with the requested Name", "parameters": [ { "name": "MangaConnectorName", "in": "path", "description": "API.MangaConnectors.MangaConnector.Name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/MangaConnector" } } } }, "404": { "description": "API.Controllers.DTOs.MangaConnector (Scanlation-Sites) with Name not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/MangaConnector/Enabled": { "get": { "tags": [ "MangaConnector" ], "summary": "Get all enabled API.MangaConnectors.MangaConnector (Scanlation-Sites)", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MangaConnector" } } } } } } } }, "/v2/MangaConnector/Disabled": { "get": { "tags": [ "MangaConnector" ], "summary": "Get all disabled API.MangaConnectors.MangaConnector (Scanlation-Sites)", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MangaConnector" } } } } } } } }, "/v2/MangaConnector/{MangaConnectorName}/SetEnabled/{Enabled}": { "patch": { "tags": [ "MangaConnector" ], "summary": "Enabled or disables API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name", "parameters": [ { "name": "MangaConnectorName", "in": "path", "description": "API.MangaConnectors.MangaConnector.Name", "required": true, "schema": { "type": "string" } }, { "name": "Enabled", "in": "path", "description": "Set true to enable, false to disable", "required": true, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name not found.", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/MetadataFetcher": { "get": { "tags": [ "MetadataFetcher" ], "summary": "Get all API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)", "responses": { "200": { "description": "Names of API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } } } } } } }, "/v2/MetadataFetcher/Links": { "get": { "tags": [ "MetadataFetcher" ], "summary": "Returns all API.Schema.MangaContext.MetadataFetchers.MetadataEntry", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataEntry" } } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/MetadataFetcher/{MetadataFetcherName}/SearchManga/{MangaId}": { "post": { "tags": [ "MetadataFetcher" ], "summary": "Searches API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) for Manga-Metadata", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Schema.MangaContext.Manga.Key", "required": true, "schema": { "type": "string" } }, { "name": "MetadataFetcherName", "in": "path", "description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Instead of using the MangaId for search on Website, use a specific term", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataSearchResult" } } } } }, "400": { "description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "API.Schema.MangaContext.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/MetadataFetcher/{MetadataFetcherName}/Link/{MangaId}": { "post": { "tags": [ "MetadataFetcher" ], "summary": "Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) using Provider-Specific Identifier to API.Schema.MangaContext.Manga", "parameters": [ { "name": "MangaId", "in": "path", "description": "API.Schema.MangaContext.Manga.Key", "required": true, "schema": { "type": "string" } }, { "name": "MetadataFetcherName", "in": "path", "description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "!:MetadataFetcherName-Specific ID", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/MetadataEntry" } } } }, "400": { "description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "API.Schema.MangaContext.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/MetadataFetcher/{MetadataFetcherName}/Unlink/{MangaId}": { "post": { "tags": [ "MetadataFetcher" ], "summary": "Un-Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) from API.Schema.MangaContext.Manga", "parameters": [ { "name": "MangaId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "MetadataFetcherName", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "400": { "description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "API.Schema.MangaContext.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "412": { "description": "No API.Schema.MangaContext.MetadataFetchers.MetadataEntry linking API.Schema.MangaContext.Manga and API.Schema.MangaContext.MetadataFetchers.MetadataFetcher found", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/NotificationConnector": { "get": { "tags": [ "NotificationConnector" ], "summary": "Gets all configured API.Controllers.DTOs.NotificationConnector", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationConnector" } } } } }, "500": { "description": "Error during Database Operation" } } }, "put": { "tags": [ "NotificationConnector" ], "summary": "Creates a new API.Controllers.DTOs.NotificationConnector", "description": "Formatting placeholders: \"%title\" and \"%text\" can be placed in url, header-values and body and will be replaced when notifications are sent", "requestBody": { "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNotificationConnectorRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNotificationConnectorRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNotificationConnectorRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNotificationConnectorRecord" } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "application/json": { "schema": { "type": "string" } } } }, "200": { "description": "ID of the new API.Controllers.DTOs.NotificationConnector" } } } }, "/v2/NotificationConnector/{Name}": { "get": { "tags": [ "NotificationConnector" ], "summary": "Returns API.Controllers.DTOs.NotificationConnector with requested Name", "parameters": [ { "name": "Name", "in": "path", "description": "API.Controllers.DTOs.NotificationConnector.Name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationConnector" } } } }, "404": { "description": "API.Controllers.DTOs.NotificationConnector with Name not found", "content": { "application/json": { "schema": { "type": "string" } } } } } }, "delete": { "tags": [ "NotificationConnector" ], "summary": "Deletes the API.Controllers.DTOs.NotificationConnector with the requested Name", "parameters": [ { "name": "Name", "in": "path", "description": "API.Controllers.DTOs.NotificationConnector.Name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "404": { "description": "API.Controllers.DTOs.NotificationConnector with Name not found", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "application/json": { "schema": { "type": "string" } } } } } } }, "/v2/NotificationConnector/Gotify": { "put": { "tags": [ "NotificationConnector" ], "summary": "Creates a new Gotify-API.Controllers.DTOs.NotificationConnector", "description": "Priority needs to be between 0 and 10", "requestBody": { "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateGotifyConnectorRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateGotifyConnectorRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateGotifyConnectorRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateGotifyConnectorRecord" } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "application/json": { "schema": { "type": "string" } } } }, "200": { "description": "ID of the new API.Controllers.DTOs.NotificationConnector" } } } }, "/v2/NotificationConnector/Ntfy": { "put": { "tags": [ "NotificationConnector" ], "summary": "Creates a new Ntfy-API.Controllers.DTOs.NotificationConnector", "description": "Priority needs to be between 1 and 5", "requestBody": { "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNtfyConnectorRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNtfyConnectorRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNtfyConnectorRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreateNtfyConnectorRecord" } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "application/json": { "schema": { "type": "string" } } } }, "200": { "description": "ID of the new API.Controllers.DTOs.NotificationConnector" } } } }, "/v2/NotificationConnector/Pushover": { "put": { "tags": [ "NotificationConnector" ], "summary": "Creates a new Pushover-API.Controllers.DTOs.NotificationConnector", "description": "https://pushover.net/api", "requestBody": { "content": { "application/json-patch+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreatePushoverConnectorRecord" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreatePushoverConnectorRecord" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreatePushoverConnectorRecord" } }, "application/*+json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/CreatePushoverConnectorRecord" } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "application/json": { "schema": { "type": "string" } } } }, "200": { "description": "ID of the new API.Controllers.DTOs.NotificationConnector" } } } }, "/v2/Query/Author/{AuthorId}": { "get": { "tags": [ "Query" ], "summary": "Returns the API.Controllers.DTOs.Author with AuthorId", "parameters": [ { "name": "AuthorId", "in": "path", "description": "API.Controllers.DTOs.Author.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/Author" } } } }, "404": { "description": "API.Controllers.DTOs.Author with AuthorId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Query/Chapter/{ChapterId}": { "get": { "tags": [ "Query" ], "summary": "Returns API.Controllers.DTOs.Chapter with ChapterId", "parameters": [ { "name": "ChapterId", "in": "path", "description": "API.Controllers.DTOs.Chapter.Key", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/Chapter" } } } }, "404": { "description": "API.Controllers.DTOs.Chapter with ChapterId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Query/Manga/MangaConnectorId/{MangaConnectorIdId}": { "get": { "tags": [ "Query" ], "summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key", "parameters": [ { "name": "MangaConnectorIdId", "in": "path", "description": "Key of API.Schema.MangaContext.MangaConnectorId`1", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/MangaConnectorId" } } } }, "404": { "description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Query/Manga/{MangaId}/SimilarName": { "get": { "tags": [ "Query" ], "summary": "Returns API.Schema.MangaContext.Manga with names similar to API.Schema.MangaContext.Manga (identified by MangaId)", "parameters": [ { "name": "MangaId", "in": "path", "description": "Key of API.Schema.MangaContext.Manga", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "404": { "description": "API.Schema.MangaContext.Manga with MangaId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation" } } } }, "/v2/Query/Chapter/MangaConnectorId/{MangaConnectorIdId}": { "get": { "tags": [ "Query" ], "summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key", "parameters": [ { "name": "MangaConnectorIdId", "in": "path", "description": "Key of API.Schema.MangaContext.MangaConnectorId`1", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/MangaConnectorId" } } } }, "404": { "description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Search/{MangaConnectorName}/{Query}": { "get": { "tags": [ "Search" ], "summary": "Initiate a search for a API.Schema.MangaContext.Manga on API.Controllers.DTOs.MangaConnector with searchTerm", "parameters": [ { "name": "MangaConnectorName", "in": "path", "description": "API.Controllers.DTOs.MangaConnector.Name", "required": true, "schema": { "type": "string" } }, { "name": "Query", "in": "path", "description": "searchTerm", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga", "content": { "application/json; x-version=2.0": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MinimalManga" } } } } }, "404": { "description": "API.Controllers.DTOs.MangaConnector with Name not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "406": { "description": "Not Acceptable", "content": { "text/plain; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "412": { "description": "API.Controllers.DTOs.MangaConnector with Name is disabled" } } } }, "/v2/Search/Url": { "post": { "tags": [ "Search" ], "summary": "Returns API.Schema.MangaContext.Manga from the API.Controllers.DTOs.MangaConnector associated with url", "requestBody": { "description": "", "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga.", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/MinimalManga" } } } }, "404": { "description": "API.Schema.MangaContext.Manga not found", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } }, "500": { "description": "Error during Database Operation", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } } }, "/v2/Settings": { "get": { "tags": [ "Settings" ], "summary": "Get all API.Tranga.Settings", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "$ref": "#/components/schemas/TrangaSettings" } } } } } } }, "/v2/Settings/UserAgent": { "get": { "tags": [ "Settings" ], "summary": "Get the current UserAgent used by Tranga", "responses": { "200": { "description": "", "content": { "text/plain; x-version=2.0": { "schema": { "type": "string" } } } } } }, "patch": { "tags": [ "Settings" ], "summary": "Set a new UserAgent", "requestBody": { "content": { "application/json-patch+json; x-version=2.0": { "schema": { "type": "string" } }, "application/json; x-version=2.0": { "schema": { "type": "string" } }, "text/json; x-version=2.0": { "schema": { "type": "string" } }, "application/*+json; x-version=2.0": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "" } } }, "delete": { "tags": [ "Settings" ], "summary": "Reset the UserAgent to default", "responses": { "200": { "description": "" } } } }, "/v2/Settings/RequestLimits": { "get": { "tags": [ "Settings" ], "summary": "Get all Request-Limits", "responses": { "200": { "description": "", "content": { "application/json; x-version=2.0": { "schema": { "type": "object", "properties": { "Default": { "type": "integer", "format": "int32" }, "MangaDexFeed": { "type": "integer", "format": "int32" }, "MangaImage": { "type": "integer", "format": "int32" }, "MangaCover": { "type": "integer", "format": "int32" }, "MangaDexImage": { "type": "integer", "format": "int32" }, "MangaInfo": { "type": "integer", "format": "int32" } }, "additionalProperties": false } } } } } }, "patch": { "tags": [ "Settings" ], "summary": "Update all Request-Limits to new values", "description": "