# Tranga API Calls v2 This document outlines all different HTTP API calls that Tranga accepts. Tranga expects specific HTTP methods for its calls and therefore careful attention must be paid when making them. `apiUri` refers to your `http(s)://TRANGA.FRONTEND.URI/api`. Parameters are included in the HTTP request URI and/or the request body. The request Body is in JSON key-value-pair format, with all values as strings. Tranga responses are always in the JSON format within the Response Body. Parameters in *italics* are optional ### Quick Entry * [Connectors](#connectors-top) * [Manga](#manga-top) * [Jobs](#jobs-top) * [Settings](#settings-top) * [Library Connectors](#library-connectors-top) * [Notification Connectors](#notification-connectors-top) * [Miscellaneous](#miscellaneous-top) ## Connectors [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Connector/Types` Returns available Manga Connectors (Scanlation sites)
Returns List of strings with Names.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Connector//GetManga` Returns the Manga from the specified Manga Connector.
Request `ConnectorName` is returned in the response of [GET /v2/Connector/Types](#-v2connectortypes) Use either `title` or `url` Parameter. | Parameter | Value | |-----------|-------------------------------------------------| | title | Search Term | | url | Direct link (URL) to the Manga on the used Site |
Returns List of [Manga](Types.md#Manga) | StatusCode | Meaning | |------------|--------------------------| | 400 | Connector does not exist | | 404 | URL/Connector Mismatch |
## Manga [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Manga/` Returns the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns [Manga](Types.md#manga) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
### ![DELETE](https://img.shields.io/badge/DELETE-f00) `/v2/Manga/` Deletes all associated Jobs for the specified Manga
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns | StatusCode | Meaning | |------------|--------------------------------------------| | 200 | Jobs were deleted | | 404 | Manga with `internalId` could not be found |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Manga//Cover` Returns the URL for the Cover of the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns String with the url. | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Manga//Chapters` Returns the Chapter-list for the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns List of [Chapters](Types.md/#chapter) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Manga//Chapters/latest` Returns the latest Chapter of the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns [Chapter](Types.md/#chapter) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
## Jobs [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Jobs` Returns all configured Jobs.
Returns List of JobIds.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Jobs/Running` Returns all Running Jobs.
Returns List of JobIds.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Jobs/Waiting` Returns all Waiting Jobs.
Returns List of JobIds.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Jobs/Monitoring` Returns all Monitoring Jobs.
Returns List of JobIds.
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Jobs/Create/Monitor/` Creates a Monitoring-Job for the specified Manga at the specified Interval.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs) | Parameter | Value | |-----------|--------------------------------------------------------| | interval | Interval at which the Job is re-run in HH:MM:SS format |
Returns [Job](Types.md#job) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found | | 500 | Error parsing interval |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Jobs/Create/DownloadNewChapters/` Creates a Job to check for new Chapters and Download new ones of the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns [Job](Types.md#job) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Jobs/Create/UpdateMetadata` Creates a Job to update the Metadata of all Manga.
Returns [Job](Types.md#job)
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Jobs/Create/UpdateMetadata/` Updates the Metadata of the specified Manga.
Request `internalId` is returned in the response of * [GET /v2/Connector/*ConnectorName*/GetManga](#-v2connectorconnectornamegetmanga) * [GET /v2/Jobs/*jobId*](#-v2jobs)
Returns [Job](Types.md#job) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Manga with `internalId` could not be found |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Job/` Returns the specified Job.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns [Job](Types.md#job) | StatusCode | Meaning | |------------|---------------------------------------| | 404 | Manga with `jobId` could not be found |
### ![DELETE](https://img.shields.io/badge/DELETE-f00) `/v2/Job/` Deletes the specified Job and all descendants.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 200 | Job deleted | | 404 | Manga with `jobId` could not be found |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Job//Progress` Returns the progress the of the specified Job.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns [ProgressToken](Types.md#progresstoken) | StatusCode | Meaning | |------------|---------------------------------------| | 404 | Manga with `jobId` could not be found |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Job//StartNow` Starts the specified Job.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 200 | Job started | | 404 | Manga with `jobId` could not be found |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Job//Cancel` Cancels the specified Job, or dequeues it.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 200 | Job cancelled | | 404 | Manga with `jobId` could not be found |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Job//SetInterval` Edits the specified Job.
Request `jobId` is returned in the response of * [GET /v2/Jobs](#-v2jobs) * [GET /v2/Jobs/Running](#-v2jobsrunning) * [GET /v2/Jobs/Waiting](#-v2jobswaiting) * [GET /v2/Jobs/Monitoring](#-v2jobsmonitoring)
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 404 | Manga with `jobId` could not be found |
## Settings [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings` Returns the `settings.json` file.
Returns [Settings](Types.md#settings)
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings/UserAgent` Returns the current User Agent used for Requests.
Returns [UserAgent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent)
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Settings/UserAgent` Sets the User Agent. If left empty, User Agent is reset to default.
Request | Parameter | Value | |-----------|----------------------------------------------------------------------------------------| | value | New [UserAgent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) |
Returns
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings/RateLimit/Types` Returns the configurable Rate-Limits.
Returns List of Rate-Limit-Names.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings/RateLimit` Returns the current configuration of Rate-Limits for Requests.
Returns Dictionary of `Rate-Limits` and `Requests per Minute`
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Settings/RateLimit` Sets the Rate-Limits for all Requests. If left empty, resets to default Rate-Limits.
Request For each Rate-Limit set as follows: | Parameter | Value | |------------------------------------|---------------------| | [Type](#-v2settingsratelimittypes) | Requests per Minute | `Type` is returned by [GET /v2/Settings/RateLimit/Types](#-v2settingsratelimittypes)
Returns | StatusCode | Meaning | |------------|--------------------------------| | 404 | Rate-Limit-Name does not exist |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings/RateLimit/` Returns the current Rate-Limit for the Request-Type.
Request `Type` is returned by [GET /v2/Settings/RateLimit/Types](#-v2settingsratelimittypes)
Returns Integer with Requests per Minute.
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Settings/RateLimit/` Sets the Rate-Limit for the Request-Type in Requests per Minute.
Request `Type` is returned by [GET /v2/Settings/RateLimit/Types](#-v2settingsratelimittypes) | Parameter | Value | |-----------|---------------------| | value | Requests per Minute |
Returns | StatusCode | Meaning | |------------|--------------------------------| | 404 | Rate-Limit-Name does not exist | | 500 | Parsing Error |
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Settings/AprilFoolsMode` Returns the current state of the April-Fools-Mode setting.
Returns Boolean
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Settings/AprilFoolsMode` Enables/Disables April-Fools-Mode.
Request | Parameter | Value | |-----------|------------| | value | true/false |
Returns | StatusCode | Meaning | |------------|--------------------------------| | 404 | Rate-Limit-Name does not exist | | 500 | Parsing Error |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Settings/DownloadLocation` Updates the default Download-Location.
Request | Parameter | Value | |-------------|------------------| | location | New Folder-Path | | *moveFiles* | __*true*__/false |
Returns | StatusCode | Meaning | |------------|--------------------------| | 200 | Successfully changed | | 500 | Files could not be moved |
## Library Connectors [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/LibraryConnector` Returns the configured Library-Connectors.
Returns List of [LibraryConnectors](Types.md#libraryconnector)
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/LibraryConnector/Types` Returns the available Library-Connector types.
Returns List of String of Names.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/LibraryConnector/` Returns the Library-Connector for the specified Type.
Request `Type` is returned by [GET /v2/LibraryConnector/Types](#-v2libraryconnectortypes)
Returns [LibraryConnector](Types.md#libraryconnector) | StatusCode | Meaning | |------------|---------------------------------------| | 404 | Library Connector Type does not exist |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/LibraryConnector/` Creates a Library-Connector of the specified Type.
Request `Type` is returned by [GET /v2/LibraryConnector/Types](#-v2libraryconnectortypes) | Parameter | Value | |-------------|--------------------| | URL | URL of the Library | #### Type specific Parameters (must be included for each) * Komga | Parameter | Value | |-----------|-------------------------------------------------------------------------------------------------------------------| | auth | [Base64 encoded Basic-Authentication-String](https://datatracker.ietf.org/doc/html/rfc7617) (`username:password`) | * Kavita | Parameter | Value | |-----------|-----------------| | username | Kavita Username | | password | Kavita Password |
Returns [LibraryConnector](Types.md#libraryconnector) | StatusCode | Meaning | |------------|----------------------------------| | 404 | Library Connector does not exist | | 500 | Parsing Error |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/LibraryConnector//Test` Tests a Library-Connector of the specified Type.
Request `Type` is returned by [GET /v2/LibraryConnector/Types](#-v2libraryconnectortypes) | Parameter | Value | |-------------|--------------------| | URL | URL of the Library | #### Type specific Parameters (must be included for each) * Komga | Parameter | Value | |-----------|-------------------------------------------------------------------------------------------------------------------| | auth | [Base64 encoded Basic-Authentication-String](https://datatracker.ietf.org/doc/html/rfc7617) (`username:password`) | * Kavita | Parameter | Value | |-----------|-----------------| | username | Kavita Username | | password | Kavita Password |
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 200 | Test successful | | 404 | Library Connector Type does not exist | | 408 | Test failed | | 500 | Parsing Error |
### ![DELETE](https://img.shields.io/badge/DELETE-f00) `/v2/LibraryConnector/` Deletes the Library-Connector of the specified Type.
Request `Type` is returned by [GET /v2/LibraryConnector/Types](#-v2libraryconnectortypes)
Returns | StatusCode | Meaning | |------------|---------------------------------------| | 200 | Deleted | | 404 | Library Connector Type does not exist |
## Notification Connectors [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/NotificationConnector` Returns the configured Notification-Connectors.
Returns List of [NotificationConnectors](Types.md#notificationconnector)
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/NotificationConnector/Types` Returns the available Notification-Connectors.
Returns List of String of Names.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/NotificationConnector/` Returns the configured Notification-Connector of the specified Type.
Request `Type` is returned by [GET /v2/NotificationConnector/Types](#-v2notificationconnectortypes)
Returns [Notification Connector](Types.md#notificationconnector) | StatusCode | Meaning | |------------|---------------------------------------| | 404 | Library Connector Type does not exist |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/NotificationConnector/` Creates a Notification-Connector of the specified Type.
Request `Type` is returned by [GET /v2/NotificationConnector/Types](-v2notificationconnectortypes) #### Type specific Parameters (must be included for each) * Gotify | Parameter | Value | |-----------|---------------------------------------| | url | URL of the Gotify Instance | | appToken | AppToken of the configured Gotify App | * LunaSea | Parameter | Value | |-----------|-----------------| | webhook | LunaSea Webhook | * Nty | Parameter | Value | |-----------|--------------------------| | url | URL of the Ntfy Instance | | auth | Auth-String |
Returns [NotificationConnector](Types.md#notificationconnector) | StatusCode | Meaning | |------------|--------------------------------------------| | 404 | Notification Connector Type does not exist | | 500 | Parsing Error |
### ![POST](https://img.shields.io/badge/POST-00f) `/v2/NotificationConnector//Test` Tests a Notification-Connector of the specified Type.
Request `Type` is returned by [GET /v2/NotificationConnector/Types](#-v2notificationconnectortypes) #### Type specific Parameters (must be included for each) * Gotify | Parameter | Value | |-----------|---------------------------------------| | url | URL of the Gotify Instance | | appToken | AppToken of the configured Gotify App | * LunaSea | Parameter | Value | |-----------|-----------------| | webhook | LunaSea Webhook | * Ntfy | Parameter | Value | |-----------|--------------------------| | url | URL of the Ntfy Instance | | auth | Auth-String |
Returns | StatusCode | Meaning | |------------|--------------------------------------------| | 200 | Test successful | | 404 | Notification Connector Type does not exist | | 408 | Test failed | | 500 | Parsing Error |
### ![DELETE](https://img.shields.io/badge/DELETE-f00) `/v2/NotificationConnector/` Deletes the Notification-Connector of the specified Type.
Request `Type` is returned by [GET /v2/NotificationConnector/Types](#-v2notificationconnectortypes)
Returns | StatusCode | Meaning | |------------|--------------------------------------------| | 200 | Deleted | | 404 | Notification Connector Type does not exist |
## Miscellaneous [^top](#top) ### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/LogFile` Returns the current log-file.
Returns The Logfile as Stream.
### ![GET](https://img.shields.io/badge/GET-0f0) `/v2/Ping` Pong! ### ![POST](https://img.shields.io/badge/POST-00f) `/v2/Ping` Pong!