qbittorrent_web_api/qbittorrent-web-api-gen/token_tree.txt
2022-08-13 18:16:01 +00:00

15504 lines
721 KiB
Plaintext

TokenTree {
title: None,
content: [
Text(
"This WebUI API documentation applies to qBittorrent v4.1+. For other WebUI API versions, visit [WebUI API](https://github.com/qbittorrent/qBittorrent/wiki#WebUI-API).",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Table of Contents",
),
content: [
Text(
"",
),
Text(
"1. [Changes](#changes)",
),
Text(
" 1. [API v2.0](#api-v20)",
),
Text(
" 1. [API v2.0.1](#api-v201)",
),
Text(
" 1. [API v2.0.2](#api-v202)",
),
Text(
" 1. [API v2.1.0](#api-v210)",
),
Text(
" 1. [API v2.1.1](#api-v211)",
),
Text(
" 1. [API v2.2.0](#api-v220)",
),
Text(
" 1. [API v2.2.1](#api-v221)",
),
Text(
" 1. [API v2.3.0](#api-v230)",
),
Text(
" 1. [API v2.4.0](#api-v240)",
),
Text(
" 1. [API v2.4.1](#api-v241)",
),
Text(
" 1. [API v2.5.0](#api-v250)",
),
Text(
" 1. [API v2.5.1](#api-v251)",
),
Text(
" 1. [API v2.6.0](#api-v260)",
),
Text(
" 1. [API v2.6.1](#api-v261)",
),
Text(
" 1. [API v2.6.2](#api-v262)",
),
Text(
" 1. [API v2.7.0](#api-v270)",
),
Text(
" 1. [API v2.8.0](#api-v280)",
),
Text(
" 1. [API v2.8.1](#api-v281)",
),
Text(
" 1. [API v2.8.2](#api-v282)",
),
Text(
" 1. [API v2.8.3](#api-v283)",
),
Text(
"1. [General information](#general-information)",
),
Text(
"1. [Authentication](#authentication)",
),
Text(
" 1. [Login](#login)",
),
Text(
" 1. [Logout](#logout)",
),
Text(
"1. [Application](#application)",
),
Text(
" 1. [Get application version](#get-application-version)",
),
Text(
" 1. [Get API version](#get-api-version)",
),
Text(
" 1. [Get build info](#get-build-info)",
),
Text(
" 1. [Shutdown application](#shutdown-application)",
),
Text(
" 1. [Get application preferences](#get-application-preferences)",
),
Text(
" 1. [Set application preferences](#set-application-preferences)",
),
Text(
" 1. [Get default save path](#get-default-save-path)",
),
Text(
"1. [Log](#log)",
),
Text(
" 1. [Get log](#get-log)",
),
Text(
" 1. [Get peer log](#get-peer-log)",
),
Text(
"1. [Sync](#sync)",
),
Text(
" 1. [Get main data](#get-main-data)",
),
Text(
" 1. [Get torrent peers data](#get-torrent-peers-data)",
),
Text(
"1. [Transfer info](#transfer-info)",
),
Text(
" 1. [Get global transfer info](#get-global-transfer-info)",
),
Text(
" 1. [Get alternative speed limits state](#get-alternative-speed-limits-state)",
),
Text(
" 1. [Toggle alternative speed limits](#toggle-alternative-speed-limits)",
),
Text(
" 1. [Get global download limit](#get-global-download-limit)",
),
Text(
" 1. [Set global download limit](#set-global-download-limit)",
),
Text(
" 1. [Get global upload limit](#get-global-upload-limit)",
),
Text(
" 1. [Set global upload limit](#set-global-upload-limit)",
),
Text(
" 1. [Ban peers](#ban-peers)",
),
Text(
"1. [Torrent management](#torrent-management)",
),
Text(
" 1. [Get torrent list](#get-torrent-list)",
),
Text(
" 1. [Get torrent generic properties](#get-torrent-generic-properties)",
),
Text(
" 1. [Get torrent trackers](#get-torrent-trackers)",
),
Text(
" 1. [Get torrent web seeds](#get-torrent-web-seeds)",
),
Text(
" 1. [Get torrent contents](#get-torrent-contents)",
),
Text(
" 1. [Get torrent pieces' states](#get-torrent-pieces-states)",
),
Text(
" 1. [Get torrent pieces' hashes](#get-torrent-pieces-hashes)",
),
Text(
" 1. [Pause torrents](#pause-torrents)",
),
Text(
" 1. [Resume torrents](#resume-torrents)",
),
Text(
" 1. [Delete torrents](#delete-torrents)",
),
Text(
" 1. [Recheck torrents](#recheck-torrents)",
),
Text(
" 1. [Reannounce torrents](#reannounce-torrents)",
),
Text(
" 1. [Edit trackers](#edit-trackers)",
),
Text(
" 1. [Remove trackers](#remove-trackers)",
),
Text(
" 1. [Add peers](#add-peers)",
),
Text(
" 1. [Add new torrent](#add-new-torrent)",
),
Text(
" 1. [Add trackers to torrent](#add-trackers-to-torrent)",
),
Text(
" 1. [Increase torrent priority](#increase-torrent-priority)",
),
Text(
" 1. [Decrease torrent priority](#decrease-torrent-priority)",
),
Text(
" 1. [Maximal torrent priority](#maximal-torrent-priority)",
),
Text(
" 1. [Minimal torrent priority](#minimal-torrent-priority)",
),
Text(
" 1. [Set file priority](#set-file-priority)",
),
Text(
" 1. [Get torrent download limit](#get-torrent-download-limit)",
),
Text(
" 1. [Set torrent download limit](#set-torrent-download-limit)",
),
Text(
" 1. [Set torrent share limit](#set-torrent-share-limit)",
),
Text(
" 1. [Get torrent upload limit](#get-torrent-upload-limit)",
),
Text(
" 1. [Set torrent upload limit](#set-torrent-upload-limit)",
),
Text(
" 1. [Set torrent location](#set-torrent-location)",
),
Text(
" 1. [Set torrent name](#set-torrent-name)",
),
Text(
" 1. [Set torrent category](#set-torrent-category)",
),
Text(
" 1. [Get all categories](#get-all-categories)",
),
Text(
" 1. [Add new category](#add-new-category)",
),
Text(
" 1. [Edit category](#edit-category)",
),
Text(
" 1. [Remove categories](#remove-categories)",
),
Text(
" 1. [Add torrent tags](#add-torrent-tags)",
),
Text(
" 1. [Remove torrent tags](#remove-torrent-tags)",
),
Text(
" 1. [Get all tags](#get-all-tags)",
),
Text(
" 1. [Create tags](#create-tags)",
),
Text(
" 1. [Delete tags](#delete-tags)",
),
Text(
" 1. [Set automatic torrent management](#set-automatic-torrent-management)",
),
Text(
" 1. [Toggle sequential download](#toggle-sequential-download)",
),
Text(
" 1. [Set first/last piece priority](#set-firstlast-piece-priority)",
),
Text(
" 1. [Set force start](#set-force-start)",
),
Text(
" 1. [Set super seeding](#set-super-seeding)",
),
Text(
" 1. [Rename file](#rename-file)",
),
Text(
" 1. [Rename folder](#rename-folder)",
),
Text(
"1. [RSS (experimental)](#rss-experimental)",
),
Text(
" 1. [Add folder](#add-folder)",
),
Text(
" 1. [Add feed](#add-feed)",
),
Text(
" 1. [Remove item](#remove-item)",
),
Text(
" 1. [Move item](#move-item)",
),
Text(
" 1. [Get all items](#get-all-items)",
),
Text(
" 1. [Mark as read](#mark-as-read)",
),
Text(
" 1. [Refresh item](#refresh-item)",
),
Text(
" 1. [Set auto-downloading rule](#set-auto-downloading-rule)",
),
Text(
" 1. [Rename auto-downloading rule](#rename-auto-downloading-rule)",
),
Text(
" 1. [Remove auto-downloading rule](#remove-auto-downloading-rule)",
),
Text(
" 1. [Get all auto-downloading rules](#get-all-auto-downloading-rules)",
),
Text(
" 1. [Get all articles matching a rule](#get-all-articles-matching-a-rule)",
),
Text(
"1. [Search](#search)",
),
Text(
" 1. [Start search](#start-search)",
),
Text(
" 1. [Stop search](#stop-search)",
),
Text(
" 1. [Get search status](#get-search-status)",
),
Text(
" 1. [Get search results](#get-search-results)",
),
Text(
" 1. [Delete search](#delete-search)",
),
Text(
" 1. [Get search plugins](#get-search-plugins)",
),
Text(
" 1. [Install search plugin](#install-search-plugin)",
),
Text(
" 1. [Uninstall search plugin](#uninstall-search-plugin)",
),
Text(
" 1. [Enable search plugin](#enable-search-plugin)",
),
Text(
" 1. [Update search plugins](#update-search-plugins)",
),
Text(
"1. [WebAPI versioning](#webapi-versioning)",
),
Text(
"",
),
Asterisk(
"",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Changes",
),
content: [
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"API v2.0",
),
content: [
Text(
"",
),
Text(
"- New version naming scheme: X.Y.Z (where X - major version, Y - minor version, Z - release version)",
),
Text(
"- New API paths. All API methods are under `api/vX/` (where X is API major version)",
),
Text(
"- API methods are under new scopes",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.0.1",
),
content: [
Text(
"",
),
Text(
"- Add `hashes` field to `/torrents/info` ([#8782](https://github.com/qbittorrent/qBittorrent/pull/8782))",
),
Text(
"- Add `/torrents/setShareLimits/` method ([#8598](https://github.com/qbittorrent/qBittorrent/pull/8598))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.0.2",
),
content: [
Text(
"",
),
Text(
"- Add `/torrents/reannounce` method ([#9229](https://github.com/qbittorrent/qBittorrent/pull/9229))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.1.0",
),
content: [
Text(
"",
),
Text(
"- Change `/sync/maindata` `categories` field from `array` to `object` ([#9228](https://github.com/qbittorrent/qBittorrent/pull/9228))",
),
Text(
"- Add `savePath` field to `/torrents/createCategory` ([#9228](https://github.com/qbittorrent/qBittorrent/pull/9228)). This method now requires the category to already exist and will not create new categories.",
),
Text(
"- Add `/torrents/editCategory` method ([#9228](https://github.com/qbittorrent/qBittorrent/pull/9228))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.1.1",
),
content: [
Text(
"",
),
Text(
"- Add `/torrents/categories` method ([#9586](https://github.com/qbittorrent/qBittorrent/pull/9586))",
),
Text(
"- Add `/search/` methods ([#8584](https://github.com/qbittorrent/qBittorrent/pull/8584))",
),
Text(
"- Add `free_space_on_disk` field to `/sync/maindata` ([#8217](https://github.com/qbittorrent/qBittorrent/pull/8217))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.2.0",
),
content: [
Text(
"",
),
Text(
"- Add `/torrents/editTracker` and `/torrents/removeTracker` methods ([#9375](https://github.com/qbittorrent/qBittorrent/pull/9375))",
),
Text(
"- Add `tier`, `num_seeds`, `num_leeches`, and `num_downloaded` fields to `/torrents/trackers` ([#9375](https://github.com/qbittorrent/qBittorrent/pull/9375))",
),
Text(
"- Change `status` field from translated string to an integer for `/torrents/trackers` ([#9375](https://github.com/qbittorrent/qBittorrent/pull/9375))",
),
Text(
"- Change `/torrents/filePrio` `id` field to accept multiple ids ([#9541](https://github.com/qbittorrent/qBittorrent/pull/9541))",
),
Text(
"- Throw additional errors for failed requests to `/torrents/filePrio` ([#9541](https://github.com/qbittorrent/qBittorrent/pull/9541))",
),
Text(
"- Add `autoTMM` field to `/torrents/add` ([#9752](https://github.com/qbittorrent/qBittorrent/pull/9752))",
),
Text(
"- Add various fields to `/app/getPreferences` and `/app/setPreferences` (`create_subfolder_enabled`, `start_paused_enabled`, `auto_delete_mode`, `preallocate_all`, `incomplete_files_ext`, `auto_tmm_enabled`, `torrent_changed_tmm_enabled`, `save_path_changed_tmm_enabled`, `category_changed_tmm_enabled`, `mail_notification_sender`, `limit_lan_peers`, `slow_torrent_dl_rate_threshold`, `slow_torrent_ul_rate_threshold`, `slow_torrent_inactive_timer`, `alternative_webui_enabled`, `alternative_webui_path`) ([#9752](https://github.com/qbittorrent/qBittorrent/pull/9752))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.2.1",
),
content: [
Text(
"",
),
Text(
"- Add `rss/refreshItem` ([#11067](https://github.com/qbittorrent/qBittorrent/pull/11067))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.3.0",
),
content: [
Text(
"",
),
Text(
"- Remove `web_ui_password` field from `/app/preferences`, this field is still writable in `/app/setPreferences` method ([#9942](https://github.com/qbittorrent/qBittorrent/pull/9942))",
),
Text(
"- Add `/app/buildInfo` method ([#10096](https://github.com/qbittorrent/qBittorrent/pull/10096))",
),
Text(
"- Always use `/` as path separator in `/torrents/files` response ([#10153](https://github.com/qbittorrent/qBittorrent/pull/10153/))",
),
Text(
"- Add `/torrents/addPeers` and `/transfer/banPeers` methods ([#10158](https://github.com/qbittorrent/qBittorrent/pull/10158))",
),
Text(
"- Add `/torrents/addTags`, `/torrents/removeTags`, `/torrents/tags`, `/torrents/createTags`, `/torrents/deleteTags` methods ([#10527](https://github.com/qbittorrent/qBittorrent/pull/10527))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.4.0",
),
content: [
Text(
"",
),
Text(
"- Add `/torrents/renameFile` method ([#11029](https://github.com/qbittorrent/qBittorrent/pull/11029))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.4.1",
),
content: [
Text(
"",
),
Text(
"- Add `stalled`, `stalled_uploading` and `stalled_downloading` as possible values for the `filter` parameter in `/torrents/info` ([#11825](https://github.com/qbittorrent/qBittorrent/pull/11825))",
),
Text(
"- Add various fields to `/app/preferences` and `/app/setPreferences` (`piece_extent_affinity`, `web_ui_secure_cookie_enabled`, `web_ui_max_auth_fail_count`, `web_ui_ban_duration`, `stop_tracker_timeout`) ([#11781](https://github.com/qbittorrent/qBittorrent/pull/11781), [#11726](https://github.com/qbittorrent/qBittorrent/pull/11726), [#12004](https://github.com/qbittorrent/qBittorrent/pull/12004), [#11834](https://github.com/qbittorrent/qBittorrent/pull/11834))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.5.0",
),
content: [
Text(
"- Removes `enable_super_seeding` as fields from `/app/preferences` and `/app/setPreferences` ([#12423](https://github.com/qbittorrent/qBittorrent/pull/12423))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.5.1",
),
content: [
Text(
"- Add `web_ui_use_custom_http_headers_enabled`, `web_ui_custom_http_headers`, `rss_download_repack_proper_episodes` and `rss_smart_episode_filters` as fields to `/app/preferences` and `/app/setPreferences` ([#12579](https://github.com/qbittorrent/qBittorrent/pull/12579), [#12549](https://github.com/qbittorrent/qBittorrent/pull/12549))",
),
Text(
"- Add `/rss/markAsRead` and `/rss/matchingArticles` methods ([#12549](https://github.com/qbittorrent/qBittorrent/pull/12549))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.6.0",
),
content: [
Text(
"- Removed `/search/categories` method and modified `/search/plugins` method's response ([#12705](https://github.com/qbittorrent/qBittorrent/pull/12705))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.6.1",
),
content: [
Text(
"- Exposed `contentPath` via the `content_path` field in the response to `/torrents/info` ([#13625](https://github.com/qbittorrent/qBittorrent/pull/13625))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.6.2",
),
content: [
Text(
"- Added `tags` optional field to `/torrents/add` ([#13882](https://github.com/qbittorrent/qBittorrent/pull/13882))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.8.0",
),
content: [
Text(
"- Added `/torrents/renameFolder` method and modified `/torrents/renameFile` method's parameters ([#13995](https://github.com/qbittorrent/qBittorrent/pull/13995))",
),
Text(
"",
),
Text(
"Note that this change was released in qBittorrent v4.3.3, but the WebAPI version was incorrectly set to v2.7.0 (see [#14275](https://github.com/qbittorrent/qBittorrent/pull/14275#issuecomment-766310862) for details)",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.8.1",
),
content: [
Text(
"- Added `ratioLimit` and `seedingTimeLimit` optional fields to `/torrents/add` ([#14519](https://github.com/qbittorrent/qBittorrent/pull/14519))",
),
Text(
"- Added `seeding_time` field to `/torrents/info` ([#14554](https://github.com/qbittorrent/qBittorrent/pull/14554))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.8.2",
),
content: [
Text(
"- Added `indexes` optional parameter to `/torrents/files` ([#14795](https://github.com/qbittorrent/qBittorrent/pull/14795))",
),
Text(
"- Added `index` field to `/torrents/files` response ([#14795](https://github.com/qbittorrent/qBittorrent/pull/14795))",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"API v2.8.3",
),
content: [
Text(
"- Added `tag` optional parameter to `/torrents/info` ([#15152](https://github.com/qbittorrent/qBittorrent/pull/15152))",
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"General Information",
),
content: [
Text(
"",
),
Text(
"- All API methods are under `/api/v2/APIName/methodName`, where `APIName` is a certain subgroup of API methods whose functionality is related.",
),
Text(
"- Either `GET` or `POST` can be used as the request type for all API methods.",
),
Text(
"- All API methods require [authentication](#authentication) (except the `/api/v2/auth/login` method itself, obviously).",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Authentication",
),
content: [
Text(
"",
),
Text(
"All Authentication API methods are under \"auth\", e.g.: `/api/v2/auth/methodName`.",
),
Text(
"",
),
Text(
"qBittorrent uses cookie-based authentication.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Login",
),
content: [
Text(
"",
),
Text(
"Name: `login`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`username` | string | Username used to access the WebUI",
columns: [
"username",
"string",
"Username used to access the WebUI",
],
},
TableRow {
raw: "`password` | string | Password used to access the WebUI",
columns: [
"password",
"string",
"Password used to access the WebUI",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "403 | User's IP is banned for too many failed login attempts",
columns: [
"403",
"User's IP is banned for too many failed login attempts",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"Upon success, the response will contain a cookie with your SID. You must supply the cookie whenever you want to perform an operation that requires authentication.",
),
Text(
"",
),
Text(
"Example showing how to login and execute a command that requires authentication using `curl`:",
),
Text(
"",
),
Text(
"```sh",
),
Text(
"$ curl -i --header 'Referer: http://localhost:8080' --data 'username=admin&password=adminadmin' http://localhost:8080/api/v2/auth/login",
),
Text(
"HTTP/1.1 200 OK",
),
Text(
"Content-Encoding:",
),
Text(
"Content-Length: 3",
),
Text(
"Content-Type: text/plain; charset=UTF-8",
),
Text(
"Set-Cookie: SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ; path=/",
),
Text(
"$ curl http://localhost:8080/api/v2/torrents/info --cookie \"SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ\"",
),
Text(
"```",
),
Text(
"",
),
Text(
"Note: Set `Referer` or `Origin` header to the exact same domain and port as used in the HTTP query `Host` header.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Logout",
),
content: [
Text(
"",
),
Text(
"Name: `logout`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Application",
),
content: [
Text(
"",
),
Text(
"All Application API methods are under \"app\", e.g.: `/api/v2/app/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Get application version",
),
content: [
Text(
"",
),
Text(
"Name: `version`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a string with the application version, e.g. `v4.1.3`",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get API version",
),
content: [
Text(
"",
),
Text(
"Name: `webapiVersion`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a string with the WebAPI version, e.g. `2.0`",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get build info",
),
content: [
Text(
"",
),
Text(
"Name: `buildInfo`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object containing the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "-------------|---------|------------",
rows: [
TableRow {
raw: "`qt` | string | QT version",
columns: [
"qt",
"string",
"QT version",
],
},
TableRow {
raw: "`libtorrent` | string | libtorrent version",
columns: [
"libtorrent",
"string",
"libtorrent version",
],
},
TableRow {
raw: "`boost` | string | Boost version",
columns: [
"boost",
"string",
"Boost version",
],
},
TableRow {
raw: "`openssl` | string | OpenSSL version",
columns: [
"openssl",
"string",
"OpenSSL version",
],
},
TableRow {
raw: "`bitness` | int | Application bitness (e.g. 64-bit)",
columns: [
"bitness",
"int",
"Application bitness (e.g. 64-bit)",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Shutdown application",
),
content: [
Text(
"",
),
Text(
"Name: `shutdown`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get application preferences",
),
content: [
Text(
"",
),
Text(
"Name: `preferences`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object with several fields (key-value) pairs representing the application's settings. The contents may vary depending on which settings are present in qBittorrent.ini.",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "-----------------------------------------|---------|------------",
rows: [
TableRow {
raw: "`locale` _optional_ | string | Currently selected language (e.g. en_GB for English)",
columns: [
"locale _optional_",
"string",
"Currently selected language (e.g. en_GB for English)",
],
},
TableRow {
raw: "`create_subfolder_enabled` _optional_ | bool | True if a subfolder should be created when adding a torrent",
columns: [
"create_subfolder_enabled _optional_",
"bool",
"True if a subfolder should be created when adding a torrent",
],
},
TableRow {
raw: "`start_paused_enabled` _optional_ | bool | True if torrents should be added in a Paused state",
columns: [
"start_paused_enabled _optional_",
"bool",
"True if torrents should be added in a Paused state",
],
},
TableRow {
raw: "`auto_delete_mode` _optional_ | integer | TODO",
columns: [
"auto_delete_mode _optional_",
"integer",
"TODO",
],
},
TableRow {
raw: "`preallocate_all` _optional_ | bool | True if disk space should be pre-allocated for all files",
columns: [
"preallocate_all _optional_",
"bool",
"True if disk space should be pre-allocated for all files",
],
},
TableRow {
raw: "`incomplete_files_ext` _optional_ | bool | True if \".!qB\" should be appended to incomplete files",
columns: [
"incomplete_files_ext _optional_",
"bool",
"True if \".!qB\" should be appended to incomplete files",
],
},
TableRow {
raw: "`auto_tmm_enabled` _optional_ | bool | True if Automatic Torrent Management is enabled by default",
columns: [
"auto_tmm_enabled _optional_",
"bool",
"True if Automatic Torrent Management is enabled by default",
],
},
TableRow {
raw: "`torrent_changed_tmm_enabled` _optional_ | bool | True if torrent should be relocated when its Category changes",
columns: [
"torrent_changed_tmm_enabled _optional_",
"bool",
"True if torrent should be relocated when its Category changes",
],
},
TableRow {
raw: "`save_path_changed_tmm_enabled` _optional_ | bool | True if torrent should be relocated when the default save path changes",
columns: [
"save_path_changed_tmm_enabled _optional_",
"bool",
"True if torrent should be relocated when the default save path changes",
],
},
TableRow {
raw: "`category_changed_tmm_enabled` _optional_ | bool | True if torrent should be relocated when its Category's save path changes",
columns: [
"category_changed_tmm_enabled _optional_",
"bool",
"True if torrent should be relocated when its Category's save path changes",
],
},
TableRow {
raw: "`save_path` _optional_ | string | Default save path for torrents, separated by slashes",
columns: [
"save_path _optional_",
"string",
"Default save path for torrents, separated by slashes",
],
},
TableRow {
raw: "`temp_path_enabled` _optional_ | bool | True if folder for incomplete torrents is enabled",
columns: [
"temp_path_enabled _optional_",
"bool",
"True if folder for incomplete torrents is enabled",
],
},
TableRow {
raw: "`temp_path` _optional_ | string | Path for incomplete torrents, separated by slashes",
columns: [
"temp_path _optional_",
"string",
"Path for incomplete torrents, separated by slashes",
],
},
TableRow {
raw: "`scan_dirs` _optional_ | object | scan_dirs object see table below. Property: directory to watch for torrent files, value: where torrents loaded from this directory should be downloaded to (see list of possible values below). Slashes are used as path separators; multiple key/value pairs can be specified",
columns: [
"scan_dirs _optional_",
"object",
"scan_dirs object see table below. Property: directory to watch for torrent files, value: where torrents loaded from this directory should be downloaded to (see list of possible values below). Slashes are used as path separators; multiple key/value pairs can be specified",
],
},
TableRow {
raw: "`export_dir` _optional_ | string | Path to directory to copy .torrent files to. Slashes are used as path separators",
columns: [
"export_dir _optional_",
"string",
"Path to directory to copy .torrent files to. Slashes are used as path separators",
],
},
TableRow {
raw: "`export_dir_fin` _optional_ | string | Path to directory to copy .torrent files of completed downloads to. Slashes are used as path separators",
columns: [
"export_dir_fin _optional_",
"string",
"Path to directory to copy .torrent files of completed downloads to. Slashes are used as path separators",
],
},
TableRow {
raw: "`mail_notification_enabled` _optional_ | bool | True if e-mail notification should be enabled",
columns: [
"mail_notification_enabled _optional_",
"bool",
"True if e-mail notification should be enabled",
],
},
TableRow {
raw: "`mail_notification_sender` _optional_ | string | e-mail where notifications should originate from",
columns: [
"mail_notification_sender _optional_",
"string",
"e-mail where notifications should originate from",
],
},
TableRow {
raw: "`mail_notification_email` _optional_ | string | e-mail to send notifications to",
columns: [
"mail_notification_email _optional_",
"string",
"e-mail to send notifications to",
],
},
TableRow {
raw: "`mail_notification_smtp` _optional_ | string | smtp server for e-mail notifications",
columns: [
"mail_notification_smtp _optional_",
"string",
"smtp server for e-mail notifications",
],
},
TableRow {
raw: "`mail_notification_ssl_enabled` _optional_ | bool | True if smtp server requires SSL connection",
columns: [
"mail_notification_ssl_enabled _optional_",
"bool",
"True if smtp server requires SSL connection",
],
},
TableRow {
raw: "`mail_notification_auth_enabled` _optional_ | bool | True if smtp server requires authentication",
columns: [
"mail_notification_auth_enabled _optional_",
"bool",
"True if smtp server requires authentication",
],
},
TableRow {
raw: "`mail_notification_username` _optional_ | string | Username for smtp authentication",
columns: [
"mail_notification_username _optional_",
"string",
"Username for smtp authentication",
],
},
TableRow {
raw: "`mail_notification_password` _optional_ | string | Password for smtp authentication",
columns: [
"mail_notification_password _optional_",
"string",
"Password for smtp authentication",
],
},
TableRow {
raw: "`autorun_enabled` _optional_ | bool | True if external program should be run after torrent has finished downloading",
columns: [
"autorun_enabled _optional_",
"bool",
"True if external program should be run after torrent has finished downloading",
],
},
TableRow {
raw: "`autorun_program` _optional_ | string | Program path/name/arguments to run if `autorun_enabled` is enabled; path is separated by slashes; you can use `%f` and `%n` arguments, which will be expanded by qBittorent as path_to_torrent_file and torrent_name (from the GUI; not the .torrent file name) respectively",
columns: [
"autorun_program _optional_",
"string",
"Program path/name/arguments to run if autorun_enabled is enabled; path is separated by slashes; you can use %f and %n arguments, which will be expanded by qBittorent as path_to_torrent_file and torrent_name (from the GUI; not the .torrent file name) respectively",
],
},
TableRow {
raw: "`queueing_enabled` _optional_ | bool | True if torrent queuing is enabled",
columns: [
"queueing_enabled _optional_",
"bool",
"True if torrent queuing is enabled",
],
},
TableRow {
raw: "`max_active_downloads` _optional_ | integer | Maximum number of active simultaneous downloads",
columns: [
"max_active_downloads _optional_",
"integer",
"Maximum number of active simultaneous downloads",
],
},
TableRow {
raw: "`max_active_torrents` _optional_ | integer | Maximum number of active simultaneous downloads and uploads",
columns: [
"max_active_torrents _optional_",
"integer",
"Maximum number of active simultaneous downloads and uploads",
],
},
TableRow {
raw: "`max_active_uploads` _optional_ | integer | Maximum number of active simultaneous uploads",
columns: [
"max_active_uploads _optional_",
"integer",
"Maximum number of active simultaneous uploads",
],
},
TableRow {
raw: "`dont_count_slow_torrents` _optional_ | bool | If true torrents w/o any activity (stalled ones) will not be counted towards `max_active_*` limits; see [dont_count_slow_torrents](https://www.libtorrent.org/reference-Settings.html#dont_count_slow_torrents) for more information",
columns: [
"dont_count_slow_torrents _optional_",
"bool",
"If true torrents w/o any activity (stalled ones) will not be counted towards max_active_* limits; see [dont_count_slow_torrents](https://www.libtorrent.org/reference-Settings.html#dont_count_slow_torrents) for more information",
],
},
TableRow {
raw: "`slow_torrent_dl_rate_threshold` _optional_ | integer | Download rate in KiB/s for a torrent to be considered \"slow\"",
columns: [
"slow_torrent_dl_rate_threshold _optional_",
"integer",
"Download rate in KiB/s for a torrent to be considered \"slow\"",
],
},
TableRow {
raw: "`slow_torrent_ul_rate_threshold` _optional_ | integer | Upload rate in KiB/s for a torrent to be considered \"slow\"",
columns: [
"slow_torrent_ul_rate_threshold _optional_",
"integer",
"Upload rate in KiB/s for a torrent to be considered \"slow\"",
],
},
TableRow {
raw: "`slow_torrent_inactive_timer` _optional_ | integer | Seconds a torrent should be inactive before considered \"slow\"",
columns: [
"slow_torrent_inactive_timer _optional_",
"integer",
"Seconds a torrent should be inactive before considered \"slow\"",
],
},
TableRow {
raw: "`max_ratio_enabled` _optional_ | bool | True if share ratio limit is enabled",
columns: [
"max_ratio_enabled _optional_",
"bool",
"True if share ratio limit is enabled",
],
},
TableRow {
raw: "`max_ratio` _optional_ | float | Get the global share ratio limit",
columns: [
"max_ratio _optional_",
"float",
"Get the global share ratio limit",
],
},
TableRow {
raw: "`max_ratio_act` _optional_ | object | max_ratio_act object see table below. Action performed when a torrent reaches the maximum share ratio. See list of possible values here below.",
columns: [
"max_ratio_act _optional_",
"object",
"max_ratio_act object see table below. Action performed when a torrent reaches the maximum share ratio. See list of possible values here below.",
],
},
TableRow {
raw: "`listen_port` _optional_ | integer | Port for incoming connections",
columns: [
"listen_port _optional_",
"integer",
"Port for incoming connections",
],
},
TableRow {
raw: "`upnp` _optional_ | bool | True if UPnP/NAT-PMP is enabled",
columns: [
"upnp _optional_",
"bool",
"True if UPnP/NAT-PMP is enabled",
],
},
TableRow {
raw: "`random_port` _optional_ | bool | True if the port is randomly selected",
columns: [
"random_port _optional_",
"bool",
"True if the port is randomly selected",
],
},
TableRow {
raw: "`dl_limit` _optional_ | integer | Global download speed limit in KiB/s; `-1` means no limit is applied",
columns: [
"dl_limit _optional_",
"integer",
"Global download speed limit in KiB/s; -1 means no limit is applied",
],
},
TableRow {
raw: "`up_limit` _optional_ | integer | Global upload speed limit in KiB/s; `-1` means no limit is applied",
columns: [
"up_limit _optional_",
"integer",
"Global upload speed limit in KiB/s; -1 means no limit is applied",
],
},
TableRow {
raw: "`max_connec` _optional_ | integer | Maximum global number of simultaneous connections",
columns: [
"max_connec _optional_",
"integer",
"Maximum global number of simultaneous connections",
],
},
TableRow {
raw: "`max_connec_per_torrent` _optional_ | integer | Maximum number of simultaneous connections per torrent",
columns: [
"max_connec_per_torrent _optional_",
"integer",
"Maximum number of simultaneous connections per torrent",
],
},
TableRow {
raw: "`max_uploads` _optional_ | integer | Maximum number of upload slots",
columns: [
"max_uploads _optional_",
"integer",
"Maximum number of upload slots",
],
},
TableRow {
raw: "`max_uploads_per_torrent` _optional_ | integer | Maximum number of upload slots per torrent",
columns: [
"max_uploads_per_torrent _optional_",
"integer",
"Maximum number of upload slots per torrent",
],
},
TableRow {
raw: "`stop_tracker_timeout` _optional_ | integer | Timeout in seconds for a `stopped` announce request to trackers",
columns: [
"stop_tracker_timeout _optional_",
"integer",
"Timeout in seconds for a stopped announce request to trackers",
],
},
TableRow {
raw: "`enable_piece_extent_affinity` _optional_ | bool | True if the advanced libtorrent option `piece_extent_affinity` is enabled",
columns: [
"enable_piece_extent_affinity _optional_",
"bool",
"True if the advanced libtorrent option piece_extent_affinity is enabled",
],
},
TableRow {
raw: "`bittorrent_protocol` _optional_ | object | bittorrent_protocol object see table below Bittorrent Protocol to use (see list of possible values below)",
columns: [
"bittorrent_protocol _optional_",
"object",
"bittorrent_protocol object see table below Bittorrent Protocol to use (see list of possible values below)",
],
},
TableRow {
raw: "`limit_utp_rate` _optional_ | bool | True if `[du]l_limit` should be applied to uTP connections; this option is only available in qBittorent built against libtorrent version 0.16.X and higher",
columns: [
"limit_utp_rate _optional_",
"bool",
"True if [du]l_limit should be applied to uTP connections; this option is only available in qBittorent built against libtorrent version 0.16.X and higher",
],
},
TableRow {
raw: "`limit_tcp_overhead` _optional_ | bool | True if `[du]l_limit` should be applied to estimated TCP overhead (service data: e.g. packet headers)",
columns: [
"limit_tcp_overhead _optional_",
"bool",
"True if [du]l_limit should be applied to estimated TCP overhead (service data: e.g. packet headers)",
],
},
TableRow {
raw: "`limit_lan_peers` _optional_ | bool | True if `[du]l_limit` should be applied to peers on the LAN",
columns: [
"limit_lan_peers _optional_",
"bool",
"True if [du]l_limit should be applied to peers on the LAN",
],
},
TableRow {
raw: "`alt_dl_limit` _optional_ | integer | Alternative global download speed limit in KiB/s",
columns: [
"alt_dl_limit _optional_",
"integer",
"Alternative global download speed limit in KiB/s",
],
},
TableRow {
raw: "`alt_up_limit` _optional_ | integer | Alternative global upload speed limit in KiB/s",
columns: [
"alt_up_limit _optional_",
"integer",
"Alternative global upload speed limit in KiB/s",
],
},
TableRow {
raw: "`scheduler_enabled` _optional_ | bool | True if alternative limits should be applied according to schedule",
columns: [
"scheduler_enabled _optional_",
"bool",
"True if alternative limits should be applied according to schedule",
],
},
TableRow {
raw: "`schedule_from_hour` _optional_ | integer | Scheduler starting hour",
columns: [
"schedule_from_hour _optional_",
"integer",
"Scheduler starting hour",
],
},
TableRow {
raw: "`schedule_from_min` _optional_ | integer | Scheduler starting minute",
columns: [
"schedule_from_min _optional_",
"integer",
"Scheduler starting minute",
],
},
TableRow {
raw: "`schedule_to_hour` _optional_ | integer | Scheduler ending hour",
columns: [
"schedule_to_hour _optional_",
"integer",
"Scheduler ending hour",
],
},
TableRow {
raw: "`schedule_to_min` _optional_ | integer | Scheduler ending minute",
columns: [
"schedule_to_min _optional_",
"integer",
"Scheduler ending minute",
],
},
TableRow {
raw: "`scheduler_days` _optional_ | object | scheduler_days object see table below. See possible values here below",
columns: [
"scheduler_days _optional_",
"object",
"scheduler_days object see table below. See possible values here below",
],
},
TableRow {
raw: "`dht` _optional_ | bool | True if DHT is enabled",
columns: [
"dht _optional_",
"bool",
"True if DHT is enabled",
],
},
TableRow {
raw: "`pex` _optional_ | bool | True if PeX is enabled",
columns: [
"pex _optional_",
"bool",
"True if PeX is enabled",
],
},
TableRow {
raw: "`lsd` _optional_ | bool | True if LSD is enabled",
columns: [
"lsd _optional_",
"bool",
"True if LSD is enabled",
],
},
TableRow {
raw: "`encryption` _optional_ | object | encryption object see table below. See list of possible values here below",
columns: [
"encryption _optional_",
"object",
"encryption object see table below. See list of possible values here below",
],
},
TableRow {
raw: "`anonymous_mode` _optional_ | bool | If true anonymous mode will be enabled; read more [here](Anonymous-Mode); this option is only available in qBittorent built against libtorrent version 0.16.X and higher",
columns: [
"anonymous_mode _optional_",
"bool",
"If true anonymous mode will be enabled; read more [here](Anonymous-Mode); this option is only available in qBittorent built against libtorrent version 0.16.X and higher",
],
},
TableRow {
raw: "`proxy_type` _optional_ | integer | proxy_type object see table below. See list of possible values here below",
columns: [
"proxy_type _optional_",
"integer",
"proxy_type object see table below. See list of possible values here below",
],
},
TableRow {
raw: "`proxy_ip` _optional_ | string | Proxy IP address or domain name",
columns: [
"proxy_ip _optional_",
"string",
"Proxy IP address or domain name",
],
},
TableRow {
raw: "`proxy_port` _optional_ | integer | Proxy port",
columns: [
"proxy_port _optional_",
"integer",
"Proxy port",
],
},
TableRow {
raw: "`proxy_peer_connections` _optional_ | bool | True if peer and web seed connections should be proxified; this option will have any effect only in qBittorent built against libtorrent version 0.16.X and higher",
columns: [
"proxy_peer_connections _optional_",
"bool",
"True if peer and web seed connections should be proxified; this option will have any effect only in qBittorent built against libtorrent version 0.16.X and higher",
],
},
TableRow {
raw: "`proxy_auth_enabled` _optional_ | bool | True proxy requires authentication; doesn't apply to SOCKS4 proxies",
columns: [
"proxy_auth_enabled _optional_",
"bool",
"True proxy requires authentication; doesn't apply to SOCKS4 proxies",
],
},
TableRow {
raw: "`proxy_username` _optional_ | string | Username for proxy authentication",
columns: [
"proxy_username _optional_",
"string",
"Username for proxy authentication",
],
},
TableRow {
raw: "`proxy_password` _optional_ | string | Password for proxy authentication",
columns: [
"proxy_password _optional_",
"string",
"Password for proxy authentication",
],
},
TableRow {
raw: "`proxy_torrents_only` _optional_ | bool | True if proxy is only used for torrents",
columns: [
"proxy_torrents_only _optional_",
"bool",
"True if proxy is only used for torrents",
],
},
TableRow {
raw: "`ip_filter_enabled` _optional_ | bool | True if external IP filter should be enabled",
columns: [
"ip_filter_enabled _optional_",
"bool",
"True if external IP filter should be enabled",
],
},
TableRow {
raw: "`ip_filter_path` _optional_ | string | Path to IP filter file (.dat, .p2p, .p2b files are supported); path is separated by slashes",
columns: [
"ip_filter_path _optional_",
"string",
"Path to IP filter file (.dat, .p2p, .p2b files are supported); path is separated by slashes",
],
},
TableRow {
raw: "`ip_filter_trackers` _optional_ | bool | True if IP filters are applied to trackers",
columns: [
"ip_filter_trackers _optional_",
"bool",
"True if IP filters are applied to trackers",
],
},
TableRow {
raw: "`web_ui_domain_list` _optional_ | string | Comma-separated list of domains to accept when performing Host header validation",
columns: [
"web_ui_domain_list _optional_",
"string",
"Comma-separated list of domains to accept when performing Host header validation",
],
},
TableRow {
raw: "`web_ui_address` _optional_ | string | IP address to use for the WebUI",
columns: [
"web_ui_address _optional_",
"string",
"IP address to use for the WebUI",
],
},
TableRow {
raw: "`web_ui_port` _optional_ | integer | WebUI port",
columns: [
"web_ui_port _optional_",
"integer",
"WebUI port",
],
},
TableRow {
raw: "`web_ui_upnp` _optional_ | bool | True if UPnP is used for the WebUI port",
columns: [
"web_ui_upnp _optional_",
"bool",
"True if UPnP is used for the WebUI port",
],
},
TableRow {
raw: "`web_ui_username` _optional_ | string | WebUI username",
columns: [
"web_ui_username _optional_",
"string",
"WebUI username",
],
},
TableRow {
raw: "`web_ui_password` _optional_ | string | For API ≥ v2.3.0: Plaintext WebUI password, not readable, write-only. For API < v2.3.0: MD5 hash of WebUI password, hash is generated from the following string: `username:Web UI Access:plain_text_web_ui_password`",
columns: [
"web_ui_password _optional_",
"string",
"For API ≥ v2.3.0: Plaintext WebUI password, not readable, write-only. For API < v2.3.0: MD5 hash of WebUI password, hash is generated from the following string: username:Web UI Access:plain_text_web_ui_password",
],
},
TableRow {
raw: "`web_ui_csrf_protection_enabled` _optional_ | bool | True if WebUI CSRF protection is enabled",
columns: [
"web_ui_csrf_protection_enabled _optional_",
"bool",
"True if WebUI CSRF protection is enabled",
],
},
TableRow {
raw: "`web_ui_clickjacking_protection_enabled` _optional_ | bool | True if WebUI clickjacking protection is enabled",
columns: [
"web_ui_clickjacking_protection_enabled _optional_",
"bool",
"True if WebUI clickjacking protection is enabled",
],
},
TableRow {
raw: "`web_ui_secure_cookie_enabled` _optional_ | bool | True if WebUI cookie `Secure` flag is enabled",
columns: [
"web_ui_secure_cookie_enabled _optional_",
"bool",
"True if WebUI cookie Secure flag is enabled",
],
},
TableRow {
raw: "`web_ui_max_auth_fail_count` _optional_ | integer | Maximum number of authentication failures before WebUI access ban",
columns: [
"web_ui_max_auth_fail_count _optional_",
"integer",
"Maximum number of authentication failures before WebUI access ban",
],
},
TableRow {
raw: "`web_ui_ban_duration` _optional_ | integer | WebUI access ban duration in seconds",
columns: [
"web_ui_ban_duration _optional_",
"integer",
"WebUI access ban duration in seconds",
],
},
TableRow {
raw: "`web_ui_session_timeout` _optional_ | integer | Seconds until WebUI is automatically signed off",
columns: [
"web_ui_session_timeout _optional_",
"integer",
"Seconds until WebUI is automatically signed off",
],
},
TableRow {
raw: "`web_ui_host_header_validation_enabled` _optional_ | bool | True if WebUI host header validation is enabled",
columns: [
"web_ui_host_header_validation_enabled _optional_",
"bool",
"True if WebUI host header validation is enabled",
],
},
TableRow {
raw: "`bypass_local_auth` _optional_ | bool | True if authentication challenge for loopback address (127.0.0.1) should be disabled",
columns: [
"bypass_local_auth _optional_",
"bool",
"True if authentication challenge for loopback address (127.0.0.1) should be disabled",
],
},
TableRow {
raw: "`bypass_auth_subnet_whitelist_enabled` _optional_ | bool | True if webui authentication should be bypassed for clients whose ip resides within (at least) one of the subnets on the whitelist",
columns: [
"bypass_auth_subnet_whitelist_enabled _optional_",
"bool",
"True if webui authentication should be bypassed for clients whose ip resides within (at least) one of the subnets on the whitelist",
],
},
TableRow {
raw: "`bypass_auth_subnet_whitelist` _optional_ | string | (White)list of ipv4/ipv6 subnets for which webui authentication should be bypassed; list entries are separated by commas",
columns: [
"bypass_auth_subnet_whitelist _optional_",
"string",
"(White)list of ipv4/ipv6 subnets for which webui authentication should be bypassed; list entries are separated by commas",
],
},
TableRow {
raw: "`alternative_webui_enabled` _optional_ | bool | True if an alternative WebUI should be used",
columns: [
"alternative_webui_enabled _optional_",
"bool",
"True if an alternative WebUI should be used",
],
},
TableRow {
raw: "`alternative_webui_path` _optional_ | string | File path to the alternative WebUI",
columns: [
"alternative_webui_path _optional_",
"string",
"File path to the alternative WebUI",
],
},
TableRow {
raw: "`use_https` _optional_ | bool | True if WebUI HTTPS access is enabled",
columns: [
"use_https _optional_",
"bool",
"True if WebUI HTTPS access is enabled",
],
},
TableRow {
raw: "`ssl_key` _optional_ | string | For API < v2.0.1: SSL keyfile contents (this is a not a path)",
columns: [
"ssl_key _optional_",
"string",
"For API < v2.0.1: SSL keyfile contents (this is a not a path)",
],
},
TableRow {
raw: "`ssl_cert` _optional_ | string | For API < v2.0.1: SSL certificate contents (this is a not a path)",
columns: [
"ssl_cert _optional_",
"string",
"For API < v2.0.1: SSL certificate contents (this is a not a path)",
],
},
TableRow {
raw: "`web_ui_https_key_path` _optional_ | string | For API ≥ v2.0.1: Path to SSL keyfile",
columns: [
"web_ui_https_key_path _optional_",
"string",
"For API ≥ v2.0.1: Path to SSL keyfile",
],
},
TableRow {
raw: "`web_ui_https_cert_path` _optional_ | string | For API ≥ v2.0.1: Path to SSL certificate",
columns: [
"web_ui_https_cert_path _optional_",
"string",
"For API ≥ v2.0.1: Path to SSL certificate",
],
},
TableRow {
raw: "`dyndns_enabled` _optional_ | bool | True if server DNS should be updated dynamically",
columns: [
"dyndns_enabled _optional_",
"bool",
"True if server DNS should be updated dynamically",
],
},
TableRow {
raw: "`dyndns_service` _optional_ | integer | dyndns_service object see table below. See list of possible values here below",
columns: [
"dyndns_service _optional_",
"integer",
"dyndns_service object see table below. See list of possible values here below",
],
},
TableRow {
raw: "`dyndns_username` _optional_ | string | Username for DDNS service",
columns: [
"dyndns_username _optional_",
"string",
"Username for DDNS service",
],
},
TableRow {
raw: "`dyndns_password` _optional_ | string | Password for DDNS service",
columns: [
"dyndns_password _optional_",
"string",
"Password for DDNS service",
],
},
TableRow {
raw: "`dyndns_domain` _optional_ | string | Your DDNS domain name",
columns: [
"dyndns_domain _optional_",
"string",
"Your DDNS domain name",
],
},
TableRow {
raw: "`rss_refresh_interval` _optional_ | integer | RSS refresh interval",
columns: [
"rss_refresh_interval _optional_",
"integer",
"RSS refresh interval",
],
},
TableRow {
raw: "`rss_max_articles_per_feed` _optional_ | integer | Max stored articles per RSS feed",
columns: [
"rss_max_articles_per_feed _optional_",
"integer",
"Max stored articles per RSS feed",
],
},
TableRow {
raw: "`rss_processing_enabled` _optional_ | bool | Enable processing of RSS feeds",
columns: [
"rss_processing_enabled _optional_",
"bool",
"Enable processing of RSS feeds",
],
},
TableRow {
raw: "`rss_auto_downloading_enabled` _optional_ | bool | Enable auto-downloading of torrents from the RSS feeds",
columns: [
"rss_auto_downloading_enabled _optional_",
"bool",
"Enable auto-downloading of torrents from the RSS feeds",
],
},
TableRow {
raw: "`rss_download_repack_proper_episodes` _optional_ | bool | For API ≥ v2.5.1: Enable downloading of repack/proper Episodes",
columns: [
"rss_download_repack_proper_episodes _optional_",
"bool",
"For API ≥ v2.5.1: Enable downloading of repack/proper Episodes",
],
},
TableRow {
raw: "`rss_smart_episode_filters` _optional_ | string | For API ≥ v2.5.1: List of RSS Smart Episode Filters",
columns: [
"rss_smart_episode_filters _optional_",
"string",
"For API ≥ v2.5.1: List of RSS Smart Episode Filters",
],
},
TableRow {
raw: "`add_trackers_enabled` _optional_ | bool | Enable automatic adding of trackers to new torrents",
columns: [
"add_trackers_enabled _optional_",
"bool",
"Enable automatic adding of trackers to new torrents",
],
},
TableRow {
raw: "`add_trackers` _optional_ | string | List of trackers to add to new torrent",
columns: [
"add_trackers _optional_",
"string",
"List of trackers to add to new torrent",
],
},
TableRow {
raw: "`web_ui_use_custom_http_headers_enabled` _optional_ | bool | For API ≥ v2.5.1: Enable custom http headers",
columns: [
"web_ui_use_custom_http_headers_enabled _optional_",
"bool",
"For API ≥ v2.5.1: Enable custom http headers",
],
},
TableRow {
raw: "`web_ui_custom_http_headers` _optional_ | string | For API ≥ v2.5.1: List of custom http headers",
columns: [
"web_ui_custom_http_headers _optional_",
"string",
"For API ≥ v2.5.1: List of custom http headers",
],
},
TableRow {
raw: "`max_seeding_time_enabled` _optional_ | bool | True enables max seeding time ",
columns: [
"max_seeding_time_enabled _optional_",
"bool",
"True enables max seeding time",
],
},
TableRow {
raw: "`max_seeding_time` _optional_ | integer | Number of minutes to seed a torrent",
columns: [
"max_seeding_time _optional_",
"integer",
"Number of minutes to seed a torrent",
],
},
TableRow {
raw: "`announce_ip` _optional_ | string | TODO",
columns: [
"announce_ip _optional_",
"string",
"TODO",
],
},
TableRow {
raw: "`announce_to_all_tiers` _optional_ | bool | True always announce to all tiers",
columns: [
"announce_to_all_tiers _optional_",
"bool",
"True always announce to all tiers",
],
},
TableRow {
raw: "`announce_to_all_trackers` _optional_ | bool | True always announce to all trackers in a tier",
columns: [
"announce_to_all_trackers _optional_",
"bool",
"True always announce to all trackers in a tier",
],
},
TableRow {
raw: "`async_io_threads` _optional_ | integer | Number of asynchronous I/O threads",
columns: [
"async_io_threads _optional_",
"integer",
"Number of asynchronous I/O threads",
],
},
TableRow {
raw: "`banned_IPs` _optional_ | string | List of banned IPs",
columns: [
"banned_IPs _optional_",
"string",
"List of banned IPs",
],
},
TableRow {
raw: "`checking_memory_use` _optional_ | integer | Outstanding memory when checking torrents in MiB",
columns: [
"checking_memory_use _optional_",
"integer",
"Outstanding memory when checking torrents in MiB",
],
},
TableRow {
raw: "`current_interface_address` _optional_ | string | IP Address to bind to. Empty String means All addresses",
columns: [
"current_interface_address _optional_",
"string",
"IP Address to bind to. Empty String means All addresses",
],
},
TableRow {
raw: "`current_network_interface` _optional_ | string | Network Interface used",
columns: [
"current_network_interface _optional_",
"string",
"Network Interface used",
],
},
TableRow {
raw: "`disk_cache` _optional_ | integer | Disk cache used in MiB",
columns: [
"disk_cache _optional_",
"integer",
"Disk cache used in MiB",
],
},
TableRow {
raw: "`disk_cache_ttl` _optional_ | integer | Disk cache expiry interval in seconds",
columns: [
"disk_cache_ttl _optional_",
"integer",
"Disk cache expiry interval in seconds",
],
},
TableRow {
raw: "`embedded_tracker_port` _optional_ | integer | Port used for embedded tracker",
columns: [
"embedded_tracker_port _optional_",
"integer",
"Port used for embedded tracker",
],
},
TableRow {
raw: "`enable_coalesce_read_write` _optional_ | bool | True enables coalesce reads & writes",
columns: [
"enable_coalesce_read_write _optional_",
"bool",
"True enables coalesce reads & writes",
],
},
TableRow {
raw: "`enable_embedded_tracker` _optional_ | bool | True enables embedded tracker",
columns: [
"enable_embedded_tracker _optional_",
"bool",
"True enables embedded tracker",
],
},
TableRow {
raw: "`enable_multi_connections_from_same_ip` _optional_ | bool | True allows multiple connections from the same IP address",
columns: [
"enable_multi_connections_from_same_ip _optional_",
"bool",
"True allows multiple connections from the same IP address",
],
},
TableRow {
raw: "`enable_os_cache` _optional_ | bool | True enables os cache",
columns: [
"enable_os_cache _optional_",
"bool",
"True enables os cache",
],
},
TableRow {
raw: "`enable_upload_suggestions` _optional_ | bool | True enables sending of upload piece suggestions",
columns: [
"enable_upload_suggestions _optional_",
"bool",
"True enables sending of upload piece suggestions",
],
},
TableRow {
raw: "`file_pool_size` _optional_ | integer | File pool size",
columns: [
"file_pool_size _optional_",
"integer",
"File pool size",
],
},
TableRow {
raw: "`outgoing_ports_max` _optional_ | integer | Maximal outgoing port (0: Disabled)",
columns: [
"outgoing_ports_max _optional_",
"integer",
"Maximal outgoing port (0: Disabled)",
],
},
TableRow {
raw: "`outgoing_ports_min` _optional_ | integer | Minimal outgoing port (0: Disabled)",
columns: [
"outgoing_ports_min _optional_",
"integer",
"Minimal outgoing port (0: Disabled)",
],
},
TableRow {
raw: "`recheck_completed_torrents` _optional_ | bool | True rechecks torrents on completion",
columns: [
"recheck_completed_torrents _optional_",
"bool",
"True rechecks torrents on completion",
],
},
TableRow {
raw: "`resolve_peer_countries` _optional_ | bool | True resolves peer countries",
columns: [
"resolve_peer_countries _optional_",
"bool",
"True resolves peer countries",
],
},
TableRow {
raw: "`save_resume_data_interval` _optional_ | integer | Save resume data interval in min",
columns: [
"save_resume_data_interval _optional_",
"integer",
"Save resume data interval in min",
],
},
TableRow {
raw: "`send_buffer_low_watermark` _optional_ | integer | Send buffer low watermark in KiB",
columns: [
"send_buffer_low_watermark _optional_",
"integer",
"Send buffer low watermark in KiB",
],
},
TableRow {
raw: "`send_buffer_watermark` _optional_ | integer | Send buffer watermark in KiB",
columns: [
"send_buffer_watermark _optional_",
"integer",
"Send buffer watermark in KiB",
],
},
TableRow {
raw: "`send_buffer_watermark_factor` _optional_ | integer | Send buffer watermark factor in percent",
columns: [
"send_buffer_watermark_factor _optional_",
"integer",
"Send buffer watermark factor in percent",
],
},
TableRow {
raw: "`socket_backlog_size` _optional_ | integer | Socket backlog size",
columns: [
"socket_backlog_size _optional_",
"integer",
"Socket backlog size",
],
},
TableRow {
raw: "`upload_choking_algorithm` _optional_ | object | upload_choking_algorithm object see table below. Upload choking algorithm used (see list of possible values below)",
columns: [
"upload_choking_algorithm _optional_",
"object",
"upload_choking_algorithm object see table below. Upload choking algorithm used (see list of possible values below)",
],
},
TableRow {
raw: "`upload_slots_behavior` _optional_ | object | upload_slots_behavior object see table below. Upload slots behavior used (see list of possible values below)",
columns: [
"upload_slots_behavior _optional_",
"object",
"upload_slots_behavior object see table below. Upload slots behavior used (see list of possible values below)",
],
},
TableRow {
raw: "`upnp_lease_duration` _optional_ | integer | UPnP lease duration (0: Permanent lease)",
columns: [
"upnp_lease_duration _optional_",
"integer",
"UPnP lease duration (0: Permanent lease)",
],
},
TableRow {
raw: "`utp_tcp_mixed_mode` _optional_ | object | utp_tcp_mixed_mode object see table below. μTP-TCP mixed mode algorithm (see list of possible values below)",
columns: [
"utp_tcp_mixed_mode _optional_",
"object",
"utp_tcp_mixed_mode object see table below. μTP-TCP mixed mode algorithm (see list of possible values below)",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `scan_dirs`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "----------------------------|------------",
rows: [
TableRow {
raw: "`0` | Download to the monitored folder",
columns: [
"0",
"Download to the monitored folder",
],
},
TableRow {
raw: "`1` | Download to the default save path",
columns: [
"1",
"Download to the default save path",
],
},
TableRow {
raw: "`\"/path/to/download/to\"` | Download to this path",
columns: [
"\"/path/to/download/to\"",
"Download to this path",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `scheduler_days`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Every day",
columns: [
"0",
"Every day",
],
},
TableRow {
raw: "`1` | Every weekday",
columns: [
"1",
"Every weekday",
],
},
TableRow {
raw: "`2` | Every weekend",
columns: [
"2",
"Every weekend",
],
},
TableRow {
raw: "`3` | Every Monday",
columns: [
"3",
"Every Monday",
],
},
TableRow {
raw: "`4` | Every Tuesday",
columns: [
"4",
"Every Tuesday",
],
},
TableRow {
raw: "`5` | Every Wednesday",
columns: [
"5",
"Every Wednesday",
],
},
TableRow {
raw: "`6` | Every Thursday",
columns: [
"6",
"Every Thursday",
],
},
TableRow {
raw: "`7` | Every Friday",
columns: [
"7",
"Every Friday",
],
},
TableRow {
raw: "`8` | Every Saturday",
columns: [
"8",
"Every Saturday",
],
},
TableRow {
raw: "`9` | Every Sunday",
columns: [
"9",
"Every Sunday",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `encryption`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Prefer encryption",
columns: [
"0",
"Prefer encryption",
],
},
TableRow {
raw: "`1` | Force encryption on",
columns: [
"1",
"Force encryption on",
],
},
TableRow {
raw: "`2` | Force encryption off",
columns: [
"2",
"Force encryption off",
],
},
],
},
),
Text(
"",
),
Text(
"NB: the first options allows you to use both encrypted and unencrypted connections (this is the default); other options are mutually exclusive: e.g. by forcing encryption on you won't be able to use unencrypted connections and vice versa.",
),
Text(
"",
),
Text(
"Possible values of `proxy_type`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "------|------------",
rows: [
TableRow {
raw: "`-1` | Proxy is disabled",
columns: [
"-1",
"Proxy is disabled",
],
},
TableRow {
raw: "`1` | HTTP proxy without authentication",
columns: [
"1",
"HTTP proxy without authentication",
],
},
TableRow {
raw: "`2` | SOCKS5 proxy without authentication",
columns: [
"2",
"SOCKS5 proxy without authentication",
],
},
TableRow {
raw: "`3` | HTTP proxy with authentication",
columns: [
"3",
"HTTP proxy with authentication",
],
},
TableRow {
raw: "`4` | SOCKS5 proxy with authentication",
columns: [
"4",
"SOCKS5 proxy with authentication",
],
},
TableRow {
raw: "`5` | SOCKS4 proxy without authentication",
columns: [
"5",
"SOCKS4 proxy without authentication",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `dyndns_service`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Use DyDNS",
columns: [
"0",
"Use DyDNS",
],
},
TableRow {
raw: "`1` | Use NOIP",
columns: [
"1",
"Use NOIP",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `max_ratio_act`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "------|------------",
rows: [
TableRow {
raw: "`0` | Pause torrent",
columns: [
"0",
"Pause torrent",
],
},
TableRow {
raw: "`1` | Remove torrent",
columns: [
"1",
"Remove torrent",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `bittorrent_protocol`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | TCP and μTP",
columns: [
"0",
"TCP and μTP",
],
},
TableRow {
raw: "`1` | TCP",
columns: [
"1",
"TCP",
],
},
TableRow {
raw: "`2` | μTP",
columns: [
"2",
"μTP",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `upload_choking_algorithm`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Round-robin",
columns: [
"0",
"Round-robin",
],
},
TableRow {
raw: "`1` | Fastest upload",
columns: [
"1",
"Fastest upload",
],
},
TableRow {
raw: "`2` | Anti-leech",
columns: [
"2",
"Anti-leech",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `upload_slots_behavior`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Fixed slots",
columns: [
"0",
"Fixed slots",
],
},
TableRow {
raw: "`1` | Upload rate based",
columns: [
"1",
"Upload rate based",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `utp_tcp_mixed_mode`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "`0` | Prefer TCP",
columns: [
"0",
"Prefer TCP",
],
},
TableRow {
raw: "`1` | Peer proportional",
columns: [
"1",
"Peer proportional",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"add_trackers\": \"\",",
),
Text(
" \"add_trackers_enabled\": false,",
),
Text(
" \"alt_dl_limit\": 10240,",
),
Text(
" \"alt_up_limit\": 10240,",
),
Text(
" \"alternative_webui_enabled\": false,",
),
Text(
" \"alternative_webui_path\": \"/home/user/Documents/qbit-webui\",",
),
Text(
" \"announce_ip\": \"\",",
),
Text(
" \"announce_to_all_tiers\": true,",
),
Text(
" \"announce_to_all_trackers\": false,",
),
Text(
" \"anonymous_mode\": false,",
),
Text(
" \"async_io_threads\": 4,",
),
Text(
" \"auto_delete_mode\": 0,",
),
Text(
" \"auto_tmm_enabled\": false,",
),
Text(
" \"autorun_enabled\": false,",
),
Text(
" \"autorun_program\": \"\",",
),
Text(
" \"banned_IPs\": \"\",",
),
Text(
" \"bittorrent_protocol\": 0,",
),
Text(
" \"bypass_auth_subnet_whitelist\": \"\",",
),
Text(
" \"bypass_auth_subnet_whitelist_enabled\": false,",
),
Text(
" \"bypass_local_auth\": false,",
),
Text(
" \"category_changed_tmm_enabled\": false,",
),
Text(
" \"checking_memory_use\": 32,",
),
Text(
" \"create_subfolder_enabled\": true,",
),
Text(
" \"current_interface_address\": \"\",",
),
Text(
" \"current_network_interface\": \"\",",
),
Text(
" \"dht\": true,",
),
Text(
" \"disk_cache\": -1,",
),
Text(
" \"disk_cache_ttl\": 60,",
),
Text(
" \"dl_limit\": 0,",
),
Text(
" \"dont_count_slow_torrents\": false,",
),
Text(
" \"dyndns_domain\": \"changeme.dyndns.org\",",
),
Text(
" \"dyndns_enabled\": false,",
),
Text(
" \"dyndns_password\": \"\",",
),
Text(
" \"dyndns_service\": 0,",
),
Text(
" \"dyndns_username\": \"\",",
),
Text(
" \"embedded_tracker_port\": 9000,",
),
Text(
" \"enable_coalesce_read_write\": false,",
),
Text(
" \"enable_embedded_tracker\": false,",
),
Text(
" \"enable_multi_connections_from_same_ip\": false,",
),
Text(
" \"enable_os_cache\": true,",
),
Text(
" \"enable_piece_extent_affinity\": false,",
),
Text(
" \"enable_upload_suggestions\": false,",
),
Text(
" \"encryption\": 0,",
),
Text(
" \"export_dir\": \"/home/user/Downloads/all\",",
),
Text(
" \"export_dir_fin\": \"/home/user/Downloads/completed\",",
),
Text(
" \"file_pool_size\": 40,",
),
Text(
" \"incomplete_files_ext\": false,",
),
Text(
" \"ip_filter_enabled\": false,",
),
Text(
" \"ip_filter_path\": \"\",",
),
Text(
" \"ip_filter_trackers\": false,",
),
Text(
" \"limit_lan_peers\": true,",
),
Text(
" \"limit_tcp_overhead\": false,",
),
Text(
" \"limit_utp_rate\": true,",
),
Text(
" \"listen_port\": 58925,",
),
Text(
" \"locale\": \"en\",",
),
Text(
" \"lsd\": true,",
),
Text(
" \"mail_notification_auth_enabled\": false,",
),
Text(
" \"mail_notification_email\": \"\",",
),
Text(
" \"mail_notification_enabled\": false,",
),
Text(
" \"mail_notification_password\": \"\",",
),
Text(
" \"mail_notification_sender\": \"qBittorrent_notification@example.com\",",
),
Text(
" \"mail_notification_smtp\": \"smtp.changeme.com\",",
),
Text(
" \"mail_notification_ssl_enabled\": false,",
),
Text(
" \"mail_notification_username\": \"\",",
),
Text(
" \"max_active_downloads\": 3,",
),
Text(
" \"max_active_torrents\": 5,",
),
Text(
" \"max_active_uploads\": 3,",
),
Text(
" \"max_connec\": 500,",
),
Text(
" \"max_connec_per_torrent\": 100,",
),
Text(
" \"max_ratio\": -1,",
),
Text(
" \"max_ratio_act\": 0,",
),
Text(
" \"max_ratio_enabled\": false,",
),
Text(
" \"max_seeding_time\": -1,",
),
Text(
" \"max_seeding_time_enabled\": false,",
),
Text(
" \"max_uploads\": -1,",
),
Text(
" \"max_uploads_per_torrent\": -1,",
),
Text(
" \"outgoing_ports_max\": 0,",
),
Text(
" \"outgoing_ports_min\": 0,",
),
Text(
" \"pex\": true,",
),
Text(
" \"preallocate_all\": false,",
),
Text(
" \"proxy_auth_enabled\": false,",
),
Text(
" \"proxy_ip\": \"0.0.0.0\",",
),
Text(
" \"proxy_password\": \"\",",
),
Text(
" \"proxy_peer_connections\": false,",
),
Text(
" \"proxy_port\": 8080,",
),
Text(
" \"proxy_torrents_only\": false,",
),
Text(
" \"proxy_type\": 0,",
),
Text(
" \"proxy_username\": \"\",",
),
Text(
" \"queueing_enabled\": false,",
),
Text(
" \"random_port\": false,",
),
Text(
" \"recheck_completed_torrents\": false,",
),
Text(
" \"resolve_peer_countries\": true,",
),
Text(
" \"rss_auto_downloading_enabled\":true,",
),
Text(
" \"rss_download_repack_proper_episodes\":true,",
),
Text(
" \"rss_max_articles_per_feed\":50,",
),
Text(
" \"rss_processing_enabled\":true,",
),
Text(
" \"rss_refresh_interval\":30,",
),
Text(
" \"rss_smart_episode_filters\":\"s(\\\\d+)e(\\\\d+)\\n(\\\\d+)x(\\\\d+)\\n(\\\\d{4}[.\\\\-]\\\\d{1,2}[.\\\\-]\\\\d{1,2})\",",
),
Text(
" \"save_path\": \"/home/user/Downloads/\",",
),
Text(
" \"save_path_changed_tmm_enabled\": false,",
),
Text(
" \"save_resume_data_interval\": 60,",
),
Text(
" \"scan_dirs\":",
),
Text(
" {",
),
Text(
" \"/home/user/Downloads/incoming/games\": 0,",
),
Text(
" \"/home/user/Downloads/incoming/movies\": 1,",
),
Text(
" },",
),
Text(
" \"schedule_from_hour\": 8,",
),
Text(
" \"schedule_from_min\": 0,",
),
Text(
" \"schedule_to_hour\": 20,",
),
Text(
" \"schedule_to_min\": 0,",
),
Text(
" \"scheduler_days\": 0,",
),
Text(
" \"scheduler_enabled\": false,",
),
Text(
" \"send_buffer_low_watermark\": 10,",
),
Text(
" \"send_buffer_watermark\": 500,",
),
Text(
" \"send_buffer_watermark_factor\": 50,",
),
Text(
" \"slow_torrent_dl_rate_threshold\": 2,",
),
Text(
" \"slow_torrent_inactive_timer\": 60,",
),
Text(
" \"slow_torrent_ul_rate_threshold\": 2,",
),
Text(
" \"socket_backlog_size\": 30,",
),
Text(
" \"start_paused_enabled\": false,",
),
Text(
" \"stop_tracker_timeout\": 1,",
),
Text(
" \"temp_path\": \"/home/user/Downloads/temp\",",
),
Text(
" \"temp_path_enabled\": false,",
),
Text(
" \"torrent_changed_tmm_enabled\": true,",
),
Text(
" \"up_limit\": 0,",
),
Text(
" \"upload_choking_algorithm\": 1,",
),
Text(
" \"upload_slots_behavior\": 0,",
),
Text(
" \"upnp\": true,",
),
Text(
" \"use_https\": false,",
),
Text(
" \"utp_tcp_mixed_mode\": 0,",
),
Text(
" \"web_ui_address\": \"*\",",
),
Text(
" \"web_ui_ban_duration\": 3600,",
),
Text(
" \"web_ui_clickjacking_protection_enabled\": true,",
),
Text(
" \"web_ui_csrf_protection_enabled\": true,",
),
Text(
" \"web_ui_custom_http_headers\": \"\",",
),
Text(
" \"web_ui_domain_list\": \"*\",",
),
Text(
" \"web_ui_host_header_validation_enabled\": true,",
),
Text(
" \"web_ui_https_cert_path\": \"\",",
),
Text(
" \"web_ui_https_key_path\": \"\",",
),
Text(
" \"web_ui_max_auth_fail_count\": 5,",
),
Text(
" \"web_ui_port\": 8080,",
),
Text(
" \"web_ui_secure_cookie_enabled\": true,",
),
Text(
" \"web_ui_session_timeout\": 3600,",
),
Text(
" \"web_ui_upnp\": false,",
),
Text(
" \"web_ui_use_custom_http_headers_enabled\": false,",
),
Text(
" \"web_ui_username\": \"admin\"",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set application preferences",
),
content: [
Text(
"",
),
Text(
"Name: `setPreferences`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"A json object with key-value pairs of the settings you want to change and their new values.",
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"json={\"save_path\":\"C:/Users/Dayman/Downloads\",\"queueing_enabled\":false,\"scan_dirs\":{\"C:/Games\": 0,\"D:/Downloads\": 1}}",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Notes**:",
),
Text(
"",
),
Text(
" 1. There is no need to pass all possible preferences' `token:value` pairs if you only want to change one option",
),
Text(
" 1. Paths in `scan_dirs` must exist, otherwise this option will have no effect",
),
Text(
" 1. String values must be quoted; integer and boolean values must never be quoted",
),
Text(
"",
),
Text(
"For a list of possible preference options see [Get application preferences](#get-application-preferences)",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get default save path",
),
content: [
Text(
"",
),
Text(
"Name: `defaultSavePath`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a string with the default save path, e.g. `C:/Users/Dayman/Downloads`.",
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Log",
),
content: [
Text(
"",
),
Text(
"All Log API methods are under \"log\", e.g.: `/api/v2/log/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Get log",
),
content: [
Text(
"",
),
Text(
"Name: `main`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------|---------|------------",
rows: [
TableRow {
raw: "`normal` | bool | Include normal messages (default: `true`)",
columns: [
"normal",
"bool",
"Include normal messages (default: true)",
],
},
TableRow {
raw: "`info` | bool | Include info messages (default: `true`)",
columns: [
"info",
"bool",
"Include info messages (default: true)",
],
},
TableRow {
raw: "`warning` | bool | Include warning messages (default: `true`)",
columns: [
"warning",
"bool",
"Include warning messages (default: true)",
],
},
TableRow {
raw: "`critical` | bool | Include critical messages (default: `true`)",
columns: [
"critical",
"bool",
"Include critical messages (default: true)",
],
},
TableRow {
raw: "`last_known_id` | integer | Exclude messages with \"message id\" <= `last_known_id` (default: `-1`)",
columns: [
"last_known_id",
"integer",
"Exclude messages with \"message id\" <= last_known_id (default: -1)",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/log/main?normal=true&info=true&warning=true&critical=true&last_known_id=-1",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array in which each element is an entry of the log.",
),
Text(
"",
),
Text(
"Each element of the array has the following properties:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "------------|---------|------------",
rows: [
TableRow {
raw: "`id` | integer | ID of the message",
columns: [
"id",
"integer",
"ID of the message",
],
},
TableRow {
raw: "`message` | string | Text of the message",
columns: [
"message",
"string",
"Text of the message",
],
},
TableRow {
raw: "`timestamp` | integer | Milliseconds since epoch",
columns: [
"timestamp",
"integer",
"Milliseconds since epoch",
],
},
TableRow {
raw: "`type` | integer | Type of the message: Log::NORMAL: `1`, Log::INFO: `2`, Log::WARNING: `4`, Log::CRITICAL: `8`",
columns: [
"type",
"integer",
"Type of the message: Log::NORMAL: 1, Log::INFO: 2, Log::WARNING: 4, Log::CRITICAL: 8",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"id\":0,",
),
Text(
" \"message\":\"qBittorrent v3.4.0 started\",",
),
Text(
" \"timestamp\":1507969127860,",
),
Text(
" \"type\":1",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":1,",
),
Text(
" \"message\":\"qBittorrent is trying to listen on any interface port: 19036\",",
),
Text(
" \"timestamp\":1507969127869,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":2,",
),
Text(
" \"message\":\"Peer ID: -qB3400-\",",
),
Text(
" \"timestamp\":1507969127870,",
),
Text(
" \"type\":1",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":3,",
),
Text(
" \"message\":\"HTTP User-Agent is 'qBittorrent/3.4.0'\",",
),
Text(
" \"timestamp\":1507969127870,",
),
Text(
" \"type\":1",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":4,",
),
Text(
" \"message\":\"DHT support [ON]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":5,",
),
Text(
" \"message\":\"Local Peer Discovery support [ON]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":6,",
),
Text(
" \"message\":\"PeX support [ON]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":7,",
),
Text(
" \"message\":\"Anonymous mode [OFF]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":8,",
),
Text(
" \"message\":\"Encryption support [ON]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":9,",
),
Text(
" \"message\":\"Embedded Tracker [OFF]\",",
),
Text(
" \"timestamp\":1507969127871,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":10,",
),
Text(
" \"message\":\"UPnP / NAT-PMP support [ON]\",",
),
Text(
" \"timestamp\":1507969127873,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":11,",
),
Text(
" \"message\":\"Web UI: Now listening on port 8080\",",
),
Text(
" \"timestamp\":1507969127883,",
),
Text(
" \"type\":1",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":12,",
),
Text(
" \"message\":\"Options were saved successfully.\",",
),
Text(
" \"timestamp\":1507969128055,",
),
Text(
" \"type\":1",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":13,",
),
Text(
" \"message\":\"qBittorrent is successfully listening on interface :: port: TCP/19036\",",
),
Text(
" \"timestamp\":1507969128270,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":14,",
),
Text(
" \"message\":\"qBittorrent is successfully listening on interface 0.0.0.0 port: TCP/19036\",",
),
Text(
" \"timestamp\":1507969128271,",
),
Text(
" \"type\":2",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"id\":15,",
),
Text(
" \"message\":\"qBittorrent is successfully listening on interface 0.0.0.0 port: UDP/19036\",",
),
Text(
" \"timestamp\":1507969128272,",
),
Text(
" \"type\":2",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get peer log",
),
content: [
Text(
"",
),
Text(
"Name: `peers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------|---------|------------",
rows: [
TableRow {
raw: "`last_known_id` | integer | Exclude messages with \"message id\" <= `last_known_id` (default: `-1`)",
columns: [
"last_known_id",
"integer",
"Exclude messages with \"message id\" <= last_known_id (default: -1)",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response a JSON array. Each element of the array of objects (each object is the information relative to a peer) containing the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "------------|---------|------------",
rows: [
TableRow {
raw: "`id` | integer | ID of the peer",
columns: [
"id",
"integer",
"ID of the peer",
],
},
TableRow {
raw: "`ip` | string | IP of the peer",
columns: [
"ip",
"string",
"IP of the peer",
],
},
TableRow {
raw: "`timestamp` | integer | Milliseconds since epoch",
columns: [
"timestamp",
"integer",
"Milliseconds since epoch",
],
},
TableRow {
raw: "`blocked` | boolean | Whether or not the peer was blocked",
columns: [
"blocked",
"boolean",
"Whether or not the peer was blocked",
],
},
TableRow {
raw: "`reason` | string | Reason of the block",
columns: [
"reason",
"string",
"Reason of the block",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Sync",
),
content: [
Text(
"",
),
Text(
"Sync API implements requests for obtaining changes since the last request.",
),
Text(
"All Sync API methods are under \"sync\", e.g.: `/api/v2/sync/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Get main data",
),
content: [
Text(
"",
),
Text(
"Name: `maindata`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|---------|------------",
rows: [
TableRow {
raw: "`rid` | integer | Response ID. If not provided, `rid=0` will be assumed. If the given `rid` is different from the one of last server reply, `full_update` will be `true` (see the server reply details for more info)",
columns: [
"rid",
"integer",
"Response ID. If not provided, rid=0 will be assumed. If the given rid is different from the one of last server reply, full_update will be true (see the server reply details for more info)",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/sync/maindata?rid=14",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object with the following possible fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------------------------|-----------|------------",
rows: [
TableRow {
raw: "`rid` | integer | Response ID",
columns: [
"rid",
"integer",
"Response ID",
],
},
TableRow {
raw: "`full_update` _optional_ | bool | Whether the response contains all the data or partial data",
columns: [
"full_update _optional_",
"bool",
"Whether the response contains all the data or partial data",
],
},
TableRow {
raw: "`torrents` _optional_ | object | Property: torrent hash, value: same as [torrent list](#get-torrent-list), map from string to torrents object",
columns: [
"torrents _optional_",
"object",
"Property: torrent hash, value: same as [torrent list](#get-torrent-list), map from string to torrents object",
],
},
TableRow {
raw: "`torrents_removed` _optional_ | array | List of hashes of torrents removed since last request",
columns: [
"torrents_removed _optional_",
"array",
"List of hashes of torrents removed since last request",
],
},
TableRow {
raw: "`categories` _optional_ | object | Info for categories added since last request, map from string to categories object",
columns: [
"categories _optional_",
"object",
"Info for categories added since last request, map from string to categories object",
],
},
TableRow {
raw: "`categories_removed` _optional_ | array | List of categories removed since last request",
columns: [
"categories_removed _optional_",
"array",
"List of categories removed since last request",
],
},
TableRow {
raw: "`tags` _optional_ | array | List of tags added since last request",
columns: [
"tags _optional_",
"array",
"List of tags added since last request",
],
},
TableRow {
raw: "`tags_removed` _optional_ | array | List of tags removed since last request",
columns: [
"tags_removed _optional_",
"array",
"List of tags removed since last request",
],
},
TableRow {
raw: "`server_state` _optional_ | object | `server_state` object see table below",
columns: [
"server_state _optional_",
"object",
"server_state object see table below",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"rid\":15,",
),
Text(
" \"torrents\":",
),
Text(
" {",
),
Text(
" \"8c212779b4abde7c6bc608063a0d008b7e40ce32\":",
),
Text(
" {",
),
Text(
" \"state\":\"pausedUP\"",
),
Text(
" }",
),
Text(
" }",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"ServerState object:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "------------------------------|---------|------------",
rows: [
TableRow {
raw: "`average_time_queue` | integer | Average time queue",
columns: [
"average_time_queue",
"integer",
"Average time queue",
],
},
TableRow {
raw: "`dl_info_data` | number | Download info data",
columns: [
"dl_info_data",
"number",
"Download info data",
],
},
TableRow {
raw: "`dl_info_speed` | number | Download info speed",
columns: [
"dl_info_speed",
"number",
"Download info speed",
],
},
TableRow {
raw: "`queued_io_jobs` | integer | Queued io jobs",
columns: [
"queued_io_jobs",
"integer",
"Queued io jobs",
],
},
TableRow {
raw: "`total_buffers_size` | number | Total buffers size",
columns: [
"total_buffers_size",
"number",
"Total buffers size",
],
},
TableRow {
raw: "`total_peer_connections` | integer | Total peer connections",
columns: [
"total_peer_connections",
"integer",
"Total peer connections",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Categories object:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "------------------------------|---------|------------",
rows: [
TableRow {
raw: "`name` | string | Category name",
columns: [
"name",
"string",
"Category name",
],
},
TableRow {
raw: "`savePath` | string | Save path",
columns: [
"savePath",
"string",
"Save path",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Torrents object:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------------------------|-----------|------------",
rows: [
TableRow {
raw: "`added_on`_optional_ | integer | Time (Unix Epoch) when the torrent was added to the client",
columns: [
"added_on_optional_",
"integer",
"Time (Unix Epoch) when the torrent was added to the client",
],
},
TableRow {
raw: "`amount_left`_optional_ | integer | Amount of data left to download (bytes)",
columns: [
"amount_left_optional_",
"integer",
"Amount of data left to download (bytes)",
],
},
TableRow {
raw: "`auto_tmm`_optional_ | bool | Whether this torrent is managed by Automatic Torrent Management",
columns: [
"auto_tmm_optional_",
"bool",
"Whether this torrent is managed by Automatic Torrent Management",
],
},
TableRow {
raw: "`availability`_optional_ | float | Percentage of file pieces currently available",
columns: [
"availability_optional_",
"float",
"Percentage of file pieces currently available",
],
},
TableRow {
raw: "`category`_optional_ | string | Category of the torrent",
columns: [
"category_optional_",
"string",
"Category of the torrent",
],
},
TableRow {
raw: "`completed`_optional_ | integer | Amount of transfer data completed (bytes)",
columns: [
"completed_optional_",
"integer",
"Amount of transfer data completed (bytes)",
],
},
TableRow {
raw: "`completion_on`_optional_ | integer | Time (Unix Epoch) when the torrent completed",
columns: [
"completion_on_optional_",
"integer",
"Time (Unix Epoch) when the torrent completed",
],
},
TableRow {
raw: "`content_path`_optional_ | string | Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
columns: [
"content_path_optional_",
"string",
"Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
],
},
TableRow {
raw: "`dl_limit`_optional_ | integer | Torrent download speed limit (bytes/s). `-1` if ulimited.",
columns: [
"dl_limit_optional_",
"integer",
"Torrent download speed limit (bytes/s). -1 if ulimited.",
],
},
TableRow {
raw: "`dlspeed`_optional_ | integer | Torrent download speed (bytes/s)",
columns: [
"dlspeed_optional_",
"integer",
"Torrent download speed (bytes/s)",
],
},
TableRow {
raw: "`downloaded`_optional_ | integer | Amount of data downloaded",
columns: [
"downloaded_optional_",
"integer",
"Amount of data downloaded",
],
},
TableRow {
raw: "`downloaded_session`_optional_ | integer | Amount of data downloaded this session",
columns: [
"downloaded_session_optional_",
"integer",
"Amount of data downloaded this session",
],
},
TableRow {
raw: "`eta`_optional_ | integer | Torrent ETA (seconds)",
columns: [
"eta_optional_",
"integer",
"Torrent ETA (seconds)",
],
},
TableRow {
raw: "`f_l_piece_prio`_optional_ | bool | True if first last piece are prioritized",
columns: [
"f_l_piece_prio_optional_",
"bool",
"True if first last piece are prioritized",
],
},
TableRow {
raw: "`force_start`_optional_ | bool | True if force start is enabled for this torrent",
columns: [
"force_start_optional_",
"bool",
"True if force start is enabled for this torrent",
],
},
TableRow {
raw: "`hash`_optional_ | string | Torrent hash",
columns: [
"hash_optional_",
"string",
"Torrent hash",
],
},
TableRow {
raw: "`last_activity`_optional_ | integer | Last time (Unix Epoch) when a chunk was downloaded/uploaded",
columns: [
"last_activity_optional_",
"integer",
"Last time (Unix Epoch) when a chunk was downloaded/uploaded",
],
},
TableRow {
raw: "`magnet_uri`_optional_ | string | Magnet URI corresponding to this torrent",
columns: [
"magnet_uri_optional_",
"string",
"Magnet URI corresponding to this torrent",
],
},
TableRow {
raw: "`max_ratio`_optional_ | float | Maximum share ratio until torrent is stopped from seeding/uploading",
columns: [
"max_ratio_optional_",
"float",
"Maximum share ratio until torrent is stopped from seeding/uploading",
],
},
TableRow {
raw: "`max_seeding_time`_optional_ | integer | Maximum seeding time (seconds) until torrent is stopped from seeding",
columns: [
"max_seeding_time_optional_",
"integer",
"Maximum seeding time (seconds) until torrent is stopped from seeding",
],
},
TableRow {
raw: "`name`_optional_ | string | Torrent name",
columns: [
"name_optional_",
"string",
"Torrent name",
],
},
TableRow {
raw: "`num_complete`_optional_ | integer | Number of seeds in the swarm",
columns: [
"num_complete_optional_",
"integer",
"Number of seeds in the swarm",
],
},
TableRow {
raw: "`num_incomplete`_optional_ | integer | Number of leechers in the swarm",
columns: [
"num_incomplete_optional_",
"integer",
"Number of leechers in the swarm",
],
},
TableRow {
raw: "`num_leechs`_optional_ | integer | Number of leechers connected to",
columns: [
"num_leechs_optional_",
"integer",
"Number of leechers connected to",
],
},
TableRow {
raw: "`num_seeds`_optional_ | integer | Number of seeds connected to",
columns: [
"num_seeds_optional_",
"integer",
"Number of seeds connected to",
],
},
TableRow {
raw: "`priority`_optional_ | integer | Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
columns: [
"priority_optional_",
"integer",
"Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
],
},
TableRow {
raw: "`progress`_optional_ | float | Torrent progress (percentage/100)",
columns: [
"progress_optional_",
"float",
"Torrent progress (percentage/100)",
],
},
TableRow {
raw: "`ratio`_optional_ | float | Torrent share ratio. Max ratio value: 9999.",
columns: [
"ratio_optional_",
"float",
"Torrent share ratio. Max ratio value: 9999.",
],
},
TableRow {
raw: "`ratio_limit`_optional_ | float | TODO (what is different from `max_ratio`?)",
columns: [
"ratio_limit_optional_",
"float",
"TODO (what is different from max_ratio?)",
],
},
TableRow {
raw: "`save_path`_optional_ | string | Path where this torrent's data is stored",
columns: [
"save_path_optional_",
"string",
"Path where this torrent's data is stored",
],
},
TableRow {
raw: "`seeding_time`_optional_ | integer | Torrent elapsed time while complete (seconds)",
columns: [
"seeding_time_optional_",
"integer",
"Torrent elapsed time while complete (seconds)",
],
},
TableRow {
raw: "`seeding_time_limit`_optional_ | integer | TODO (what is different from `max_seeding_time`?) seeding_time_limit is a per torrent setting, when Automatic Torrent Management is disabled, furthermore then max_seeding_time is set to seeding_time_limit for this torrent. If Automatic Torrent Management is enabled, the value is -2. And if max_seeding_time is unset it have a default value -1.",
columns: [
"seeding_time_limit_optional_",
"integer",
"TODO (what is different from max_seeding_time?) seeding_time_limit is a per torrent setting, when Automatic Torrent Management is disabled, furthermore then max_seeding_time is set to seeding_time_limit for this torrent. If Automatic Torrent Management is enabled, the value is -2. And if max_seeding_time is unset it have a default value -1.",
],
},
TableRow {
raw: "`seen_complete`_optional_ | integer | Time (Unix Epoch) when this torrent was last seen complete",
columns: [
"seen_complete_optional_",
"integer",
"Time (Unix Epoch) when this torrent was last seen complete",
],
},
TableRow {
raw: "`seq_dl`_optional_ | bool | True if sequential download is enabled",
columns: [
"seq_dl_optional_",
"bool",
"True if sequential download is enabled",
],
},
TableRow {
raw: "`size`_optional_ | integer | Total size (bytes) of files selected for download",
columns: [
"size_optional_",
"integer",
"Total size (bytes) of files selected for download",
],
},
TableRow {
raw: "`state`_optional_ | string | Torrent state. See table here below for the possible values",
columns: [
"state_optional_",
"string",
"Torrent state. See table here below for the possible values",
],
},
TableRow {
raw: "`super_seeding`_optional_ | bool | True if super seeding is enabled",
columns: [
"super_seeding_optional_",
"bool",
"True if super seeding is enabled",
],
},
TableRow {
raw: "`tags`_optional_ | string | Comma-concatenated tag list of the torrent",
columns: [
"tags_optional_",
"string",
"Comma-concatenated tag list of the torrent",
],
},
TableRow {
raw: "`time_active`_optional_ | integer | Total active time (seconds)",
columns: [
"time_active_optional_",
"integer",
"Total active time (seconds)",
],
},
TableRow {
raw: "`total_size`_optional_ | integer | Total size (bytes) of all file in this torrent (including unselected ones)",
columns: [
"total_size_optional_",
"integer",
"Total size (bytes) of all file in this torrent (including unselected ones)",
],
},
TableRow {
raw: "`tracker`_optional_ | string | The first tracker with working status. Returns empty string if no tracker is working.",
columns: [
"tracker_optional_",
"string",
"The first tracker with working status. Returns empty string if no tracker is working.",
],
},
TableRow {
raw: "`up_limit`_optional_ | integer | Torrent upload speed limit (bytes/s). `-1` if ulimited.",
columns: [
"up_limit_optional_",
"integer",
"Torrent upload speed limit (bytes/s). -1 if ulimited.",
],
},
TableRow {
raw: "`uploaded`_optional_ | integer | Amount of data uploaded",
columns: [
"uploaded_optional_",
"integer",
"Amount of data uploaded",
],
},
TableRow {
raw: "`uploaded_session`_optional_ | integer | Amount of data uploaded this session",
columns: [
"uploaded_session_optional_",
"integer",
"Amount of data uploaded this session",
],
},
TableRow {
raw: "`upspeed`_optional_ | integer | Torrent upload speed (bytes/s)",
columns: [
"upspeed_optional_",
"integer",
"Torrent upload speed (bytes/s)",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent peers data",
),
content: [
Text(
"",
),
Text(
"Name: `torrentPeers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|---------|------------",
rows: [
TableRow {
raw: "`hash` | string | Torrent hash",
columns: [
"hash",
"string",
"Torrent hash",
],
},
TableRow {
raw: "`rid` | integer | Response ID. If not provided, `rid=0` will be assumed. If the given `rid` is different from the one of last server reply, `full_update` will be `true` (see the server reply details for more info)",
columns: [
"rid",
"integer",
"Response ID. If not provided, rid=0 will be assumed. If the given rid is different from the one of last server reply, full_update will be true (see the server reply details for more info)",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/sync/torrentPeers?hash=8c212779b4abde7c6bc608063a0d008b7e40ce32?rid=14",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is TODO",
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Transfer info",
),
content: [
Text(
"",
),
Text(
"All Transfer info API methods are under \"transfer\", e.g.: `/api/v2/transfer/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Get global transfer info",
),
content: [
Text(
"",
),
Text(
"This method returns info you usually see in qBt status bar.",
),
Text(
"",
),
Text(
"Name: `info`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------------|---------|------------",
rows: [
TableRow {
raw: "`dl_info_speed` | integer | Global download rate (bytes/s)",
columns: [
"dl_info_speed",
"integer",
"Global download rate (bytes/s)",
],
},
TableRow {
raw: "`dl_info_data` | integer | Data downloaded this session (bytes)",
columns: [
"dl_info_data",
"integer",
"Data downloaded this session (bytes)",
],
},
TableRow {
raw: "`up_info_speed` | integer | Global upload rate (bytes/s)",
columns: [
"up_info_speed",
"integer",
"Global upload rate (bytes/s)",
],
},
TableRow {
raw: "`up_info_data` | integer | Data uploaded this session (bytes)",
columns: [
"up_info_data",
"integer",
"Data uploaded this session (bytes)",
],
},
TableRow {
raw: "`dl_rate_limit` | integer | Download rate limit (bytes/s)",
columns: [
"dl_rate_limit",
"integer",
"Download rate limit (bytes/s)",
],
},
TableRow {
raw: "`up_rate_limit` | integer | Upload rate limit (bytes/s)",
columns: [
"up_rate_limit",
"integer",
"Upload rate limit (bytes/s)",
],
},
TableRow {
raw: "`dht_nodes` | integer | DHT nodes connected to",
columns: [
"dht_nodes",
"integer",
"DHT nodes connected to",
],
},
TableRow {
raw: "`connection_status` | string | Connection status. See possible values here below",
columns: [
"connection_status",
"string",
"Connection status. See possible values here below",
],
},
],
},
),
Text(
"",
),
Text(
"In addition to the above in partial data requests (see [Get partial data](#get-partial-data) for more info):",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "-----------------------|---------|------------",
rows: [
TableRow {
raw: "`queueing` | bool | True if torrent queueing is enabled",
columns: [
"queueing",
"bool",
"True if torrent queueing is enabled",
],
},
TableRow {
raw: "`use_alt_speed_limits` | bool | True if alternative speed limits are enabled",
columns: [
"use_alt_speed_limits",
"bool",
"True if alternative speed limits are enabled",
],
},
TableRow {
raw: "`refresh_interval` | integer | Transfer list refresh interval (milliseconds)",
columns: [
"refresh_interval",
"integer",
"Transfer list refresh interval (milliseconds)",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `connection_status`:",
),
Text(
"",
),
Text(
"Value |",
),
Table(
Table {
header: TableRow {
raw: "--------------------|",
columns: [
"--------------------",
"",
],
},
split: "`connected` |",
rows: [
TableRow {
raw: "`firewalled` |",
columns: [
"firewalled",
"",
],
},
TableRow {
raw: "`disconnected` |",
columns: [
"disconnected",
"",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"connection_status\":\"connected\",",
),
Text(
" \"dht_nodes\":386,",
),
Text(
" \"dl_info_data\":681521119,",
),
Text(
" \"dl_info_speed\":0,",
),
Text(
" \"dl_rate_limit\":0,",
),
Text(
" \"up_info_data\":10747904,",
),
Text(
" \"up_info_speed\":0,",
),
Text(
" \"up_rate_limit\":1048576",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get alternative speed limits state",
),
content: [
Text(
"",
),
Text(
"Name: `speedLimitsMode`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is `1` if alternative speed limits are enabled, `0` otherwise.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Toggle alternative speed limits",
),
content: [
Text(
"",
),
Text(
"Name: `toggleSpeedLimitsMode`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get global download limit",
),
content: [
Text(
"",
),
Text(
"Name: `downloadLimit`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is the value of current global download speed limit in bytes/second; this value will be zero if no limit is applied.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set global download limit",
),
content: [
Text(
"",
),
Text(
"Name: `setDownloadLimit`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`limit` | integer | The global download speed limit to set in bytes/second",
columns: [
"limit",
"integer",
"The global download speed limit to set in bytes/second",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get global upload limit",
),
content: [
Text(
"",
),
Text(
"Name: `uploadLimit`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"The response is the value of current global upload speed limit in bytes/second; this value will be zero if no limit is applied.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set global upload limit",
),
content: [
Text(
"",
),
Text(
"Name: `setUploadLimit`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`limit` | integer | The global upload speed limit to set in bytes/second",
columns: [
"limit",
"integer",
"The global upload speed limit to set in bytes/second",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Ban peers",
),
content: [
Text(
"",
),
Text(
"Name: `banPeers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`peers` | string | The peer to ban, or multiple peers separated by a pipe. Each peer is a colon-separated `host:port`",
columns: [
"peers",
"string",
"The peer to ban, or multiple peers separated by a pipe. Each peer is a colon-separated host:port",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Torrent management",
),
content: [
Text(
"",
),
Text(
"All Torrent management API methods are under \"torrents\", e.g.: `/api/v2/torrents/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Get torrent list",
),
content: [
Text(
"",
),
Text(
"Name: `info`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------|---------|------------",
rows: [
TableRow {
raw: "`filter` _optional_ | string | Filter torrent list by state. Allowed state filters: `all`, `downloading`, `seeding`, `completed`, `paused`, `active`, `inactive`, `resumed`, `stalled`, `stalled_uploading`, `stalled_downloading`, `errored`",
columns: [
"filter _optional_",
"string",
"Filter torrent list by state. Allowed state filters: all, downloading, seeding, completed, paused, active, inactive, resumed, stalled, stalled_uploading, stalled_downloading, errored",
],
},
TableRow {
raw: "`category` _optional_ | string | Get torrents with the given category (empty string means \"without category\"; no \"category\" parameter means \"any category\" <- broken until [#11748](https://github.com/qbittorrent/qBittorrent/issues/11748) is resolved). Remember to URL-encode the category name. For example, `My category` becomes `My%20category`",
columns: [
"category _optional_",
"string",
"Get torrents with the given category (empty string means \"without category\"; no \"category\" parameter means \"any category\" <- broken until [#11748](https://github.com/qbittorrent/qBittorrent/issues/11748) is resolved). Remember to URL-encode the category name. For example, My category becomes My%20category",
],
},
TableRow {
raw: "`tag` _optional_ | string | Get torrents with the given tag (empty string means \"without tag\"; no \"tag\" parameter means \"any tag\". Remember to URL-encode the category name. For example, `My tag` becomes `My%20tag`",
columns: [
"tag _optional_",
"string",
"Get torrents with the given tag (empty string means \"without tag\"; no \"tag\" parameter means \"any tag\". Remember to URL-encode the category name. For example, My tag becomes My%20tag",
],
},
TableRow {
raw: "`sort` _optional_ | string | Sort torrents by given key. They can be sorted using any field of the response (which are documented below) as the sort key.",
columns: [
"sort _optional_",
"string",
"Sort torrents by given key. They can be sorted using any field of the response (which are documented below) as the sort key.",
],
},
TableRow {
raw: "`reverse` _optional_ | bool | Enable reverse sorting. Defaults to `false`",
columns: [
"reverse _optional_",
"bool",
"Enable reverse sorting. Defaults to false",
],
},
TableRow {
raw: "`limit` _optional_ | integer | Limit the number of torrents returned",
columns: [
"limit _optional_",
"integer",
"Limit the number of torrents returned",
],
},
TableRow {
raw: "`offset` _optional_ | integer | Set offset (if less than 0, offset from end)",
columns: [
"offset _optional_",
"integer",
"Set offset (if less than 0, offset from end)",
],
},
TableRow {
raw: "`hashes` _optional_ | string | Filter by hashes. Can contain multiple hashes separated by a pipe",
columns: [
"hashes _optional_",
"string",
"Filter by hashes. Can contain multiple hashes separated by a pipe",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/info?filter=downloading&category=sample%20category&sort=ratio",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "---------------------|---------|------------",
rows: [
TableRow {
raw: "`added_on` | integer | Time (Unix Epoch) when the torrent was added to the client",
columns: [
"added_on",
"integer",
"Time (Unix Epoch) when the torrent was added to the client",
],
},
TableRow {
raw: "`amount_left` | integer | Amount of data left to download (bytes)",
columns: [
"amount_left",
"integer",
"Amount of data left to download (bytes)",
],
},
TableRow {
raw: "`auto_tmm` | bool | Whether this torrent is managed by Automatic Torrent Management",
columns: [
"auto_tmm",
"bool",
"Whether this torrent is managed by Automatic Torrent Management",
],
},
TableRow {
raw: "`availability` | float | Percentage of file pieces currently available",
columns: [
"availability",
"float",
"Percentage of file pieces currently available",
],
},
TableRow {
raw: "`category` | string | Category of the torrent",
columns: [
"category",
"string",
"Category of the torrent",
],
},
TableRow {
raw: "`completed` | integer | Amount of transfer data completed (bytes)",
columns: [
"completed",
"integer",
"Amount of transfer data completed (bytes)",
],
},
TableRow {
raw: "`completion_on` | integer | Time (Unix Epoch) when the torrent completed",
columns: [
"completion_on",
"integer",
"Time (Unix Epoch) when the torrent completed",
],
},
TableRow {
raw: "`content_path` | string | Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
columns: [
"content_path",
"string",
"Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
],
},
TableRow {
raw: "`dl_limit` | integer | Torrent download speed limit (bytes/s). `-1` if ulimited.",
columns: [
"dl_limit",
"integer",
"Torrent download speed limit (bytes/s). -1 if ulimited.",
],
},
TableRow {
raw: "`dlspeed` | integer | Torrent download speed (bytes/s)",
columns: [
"dlspeed",
"integer",
"Torrent download speed (bytes/s)",
],
},
TableRow {
raw: "`downloaded` | integer | Amount of data downloaded",
columns: [
"downloaded",
"integer",
"Amount of data downloaded",
],
},
TableRow {
raw: "`downloaded_session` | integer | Amount of data downloaded this session",
columns: [
"downloaded_session",
"integer",
"Amount of data downloaded this session",
],
},
TableRow {
raw: "`eta` | integer | Torrent ETA (seconds)",
columns: [
"eta",
"integer",
"Torrent ETA (seconds)",
],
},
TableRow {
raw: "`f_l_piece_prio` | bool | True if first last piece are prioritized",
columns: [
"f_l_piece_prio",
"bool",
"True if first last piece are prioritized",
],
},
TableRow {
raw: "`force_start` | bool | True if force start is enabled for this torrent",
columns: [
"force_start",
"bool",
"True if force start is enabled for this torrent",
],
},
TableRow {
raw: "`hash` | string | Torrent hash",
columns: [
"hash",
"string",
"Torrent hash",
],
},
TableRow {
raw: "`last_activity` | integer | Last time (Unix Epoch) when a chunk was downloaded/uploaded",
columns: [
"last_activity",
"integer",
"Last time (Unix Epoch) when a chunk was downloaded/uploaded",
],
},
TableRow {
raw: "`magnet_uri` | string | Magnet URI corresponding to this torrent",
columns: [
"magnet_uri",
"string",
"Magnet URI corresponding to this torrent",
],
},
TableRow {
raw: "`max_ratio` | float | Maximum share ratio until torrent is stopped from seeding/uploading",
columns: [
"max_ratio",
"float",
"Maximum share ratio until torrent is stopped from seeding/uploading",
],
},
TableRow {
raw: "`max_seeding_time` | integer | Maximum seeding time (seconds) until torrent is stopped from seeding",
columns: [
"max_seeding_time",
"integer",
"Maximum seeding time (seconds) until torrent is stopped from seeding",
],
},
TableRow {
raw: "`name` | string | Torrent name",
columns: [
"name",
"string",
"Torrent name",
],
},
TableRow {
raw: "`num_complete` | integer | Number of seeds in the swarm",
columns: [
"num_complete",
"integer",
"Number of seeds in the swarm",
],
},
TableRow {
raw: "`num_incomplete` | integer | Number of leechers in the swarm",
columns: [
"num_incomplete",
"integer",
"Number of leechers in the swarm",
],
},
TableRow {
raw: "`num_leechs` | integer | Number of leechers connected to",
columns: [
"num_leechs",
"integer",
"Number of leechers connected to",
],
},
TableRow {
raw: "`num_seeds` | integer | Number of seeds connected to",
columns: [
"num_seeds",
"integer",
"Number of seeds connected to",
],
},
TableRow {
raw: "`priority` | integer | Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
columns: [
"priority",
"integer",
"Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
],
},
TableRow {
raw: "`progress` | float | Torrent progress (percentage/100)",
columns: [
"progress",
"float",
"Torrent progress (percentage/100)",
],
},
TableRow {
raw: "`ratio` | float | Torrent share ratio. Max ratio value: 9999.",
columns: [
"ratio",
"float",
"Torrent share ratio. Max ratio value: 9999.",
],
},
TableRow {
raw: "`ratio_limit` | float | TODO (what is different from `max_ratio`?)",
columns: [
"ratio_limit",
"float",
"TODO (what is different from max_ratio?)",
],
},
TableRow {
raw: "`save_path` | string | Path where this torrent's data is stored",
columns: [
"save_path",
"string",
"Path where this torrent's data is stored",
],
},
TableRow {
raw: "`seeding_time` | integer | Torrent elapsed time while complete (seconds)",
columns: [
"seeding_time",
"integer",
"Torrent elapsed time while complete (seconds)",
],
},
TableRow {
raw: "`seeding_time_limit` | integer | TODO (what is different from `max_seeding_time`?) seeding_time_limit is a per torrent setting, when Automatic Torrent Management is disabled, furthermore then max_seeding_time is set to seeding_time_limit for this torrent. If Automatic Torrent Management is enabled, the value is -2. And if max_seeding_time is unset it have a default value -1.",
columns: [
"seeding_time_limit",
"integer",
"TODO (what is different from max_seeding_time?) seeding_time_limit is a per torrent setting, when Automatic Torrent Management is disabled, furthermore then max_seeding_time is set to seeding_time_limit for this torrent. If Automatic Torrent Management is enabled, the value is -2. And if max_seeding_time is unset it have a default value -1.",
],
},
TableRow {
raw: "`seen_complete` | integer | Time (Unix Epoch) when this torrent was last seen complete",
columns: [
"seen_complete",
"integer",
"Time (Unix Epoch) when this torrent was last seen complete",
],
},
TableRow {
raw: "`seq_dl` | bool | True if sequential download is enabled",
columns: [
"seq_dl",
"bool",
"True if sequential download is enabled",
],
},
TableRow {
raw: "`size` | integer | Total size (bytes) of files selected for download",
columns: [
"size",
"integer",
"Total size (bytes) of files selected for download",
],
},
TableRow {
raw: "`state` | object | state object see table below.",
columns: [
"state",
"object",
"state object see table below.",
],
},
TableRow {
raw: "`super_seeding` | bool | True if super seeding is enabled",
columns: [
"super_seeding",
"bool",
"True if super seeding is enabled",
],
},
TableRow {
raw: "`tags` | string | Comma-concatenated tag list of the torrent",
columns: [
"tags",
"string",
"Comma-concatenated tag list of the torrent",
],
},
TableRow {
raw: "`time_active` | integer | Total active time (seconds)",
columns: [
"time_active",
"integer",
"Total active time (seconds)",
],
},
TableRow {
raw: "`total_size` | integer | Total size (bytes) of all file in this torrent (including unselected ones)",
columns: [
"total_size",
"integer",
"Total size (bytes) of all file in this torrent (including unselected ones)",
],
},
TableRow {
raw: "`tracker` | string | The first tracker with working status. Returns empty string if no tracker is working.",
columns: [
"tracker",
"string",
"The first tracker with working status. Returns empty string if no tracker is working.",
],
},
TableRow {
raw: "`up_limit` | integer | Torrent upload speed limit (bytes/s). `-1` if ulimited.",
columns: [
"up_limit",
"integer",
"Torrent upload speed limit (bytes/s). -1 if ulimited.",
],
},
TableRow {
raw: "`uploaded` | integer | Amount of data uploaded",
columns: [
"uploaded",
"integer",
"Amount of data uploaded",
],
},
TableRow {
raw: "`uploaded_session` | integer | Amount of data uploaded this session",
columns: [
"uploaded_session",
"integer",
"Amount of data uploaded this session",
],
},
TableRow {
raw: "`upspeed` | integer | Torrent upload speed (bytes/s)",
columns: [
"upspeed",
"integer",
"Torrent upload speed (bytes/s)",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `state`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "--------------|------------",
rows: [
TableRow {
raw: "`error` | Some error occurred, applies to paused torrents",
columns: [
"error",
"Some error occurred, applies to paused torrents",
],
},
TableRow {
raw: "`missingFiles`| Torrent data files is missing",
columns: [
"missingFiles",
"Torrent data files is missing",
],
},
TableRow {
raw: "`uploading` | Torrent is being seeded and data is being transferred",
columns: [
"uploading",
"Torrent is being seeded and data is being transferred",
],
},
TableRow {
raw: "`pausedUP` | Torrent is paused and has finished downloading",
columns: [
"pausedUP",
"Torrent is paused and has finished downloading",
],
},
TableRow {
raw: "`queuedUP` | Queuing is enabled and torrent is queued for upload",
columns: [
"queuedUP",
"Queuing is enabled and torrent is queued for upload",
],
},
TableRow {
raw: "`stalledUP` | Torrent is being seeded, but no connection were made",
columns: [
"stalledUP",
"Torrent is being seeded, but no connection were made",
],
},
TableRow {
raw: "`checkingUP` | Torrent has finished downloading and is being checked",
columns: [
"checkingUP",
"Torrent has finished downloading and is being checked",
],
},
TableRow {
raw: "`forcedUP` | Torrent is forced to uploading and ignore queue limit",
columns: [
"forcedUP",
"Torrent is forced to uploading and ignore queue limit",
],
},
TableRow {
raw: "`allocating` | Torrent is allocating disk space for download",
columns: [
"allocating",
"Torrent is allocating disk space for download",
],
},
TableRow {
raw: "`downloading` | Torrent is being downloaded and data is being transferred",
columns: [
"downloading",
"Torrent is being downloaded and data is being transferred",
],
},
TableRow {
raw: "`metaDL` | Torrent has just started downloading and is fetching metadata",
columns: [
"metaDL",
"Torrent has just started downloading and is fetching metadata",
],
},
TableRow {
raw: "`pausedDL` | Torrent is paused and has NOT finished downloading",
columns: [
"pausedDL",
"Torrent is paused and has NOT finished downloading",
],
},
TableRow {
raw: "`queuedDL` | Queuing is enabled and torrent is queued for download",
columns: [
"queuedDL",
"Queuing is enabled and torrent is queued for download",
],
},
TableRow {
raw: "`stalledDL` | Torrent is being downloaded, but no connection were made",
columns: [
"stalledDL",
"Torrent is being downloaded, but no connection were made",
],
},
TableRow {
raw: "`checkingDL` | Same as checkingUP, but torrent has NOT finished downloading",
columns: [
"checkingDL",
"Same as checkingUP, but torrent has NOT finished downloading",
],
},
TableRow {
raw: "`forcedDL` | Torrent is forced to downloading to ignore queue limit",
columns: [
"forcedDL",
"Torrent is forced to downloading to ignore queue limit",
],
},
TableRow {
raw: "`checkingResumeData`| Checking resume data on qBt startup",
columns: [
"checkingResumeData",
"Checking resume data on qBt startup",
],
},
TableRow {
raw: "`moving` | Torrent is moving to another location",
columns: [
"moving",
"Torrent is moving to another location",
],
},
TableRow {
raw: "`unknown` | Unknown status",
columns: [
"unknown",
"Unknown status",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"dlspeed\":9681262,",
),
Text(
" \"eta\":87,",
),
Text(
" \"f_l_piece_prio\":false,",
),
Text(
" \"force_start\":false,",
),
Text(
" \"hash\":\"8c212779b4abde7c6bc608063a0d008b7e40ce32\",",
),
Text(
" \"category\":\"\",",
),
Text(
" \"tags\": \"\",",
),
Text(
" \"name\":\"debian-8.1.0-amd64-CD-1.iso\",",
),
Text(
" \"num_complete\":-1,",
),
Text(
" \"num_incomplete\":-1,",
),
Text(
" \"num_leechs\":2,",
),
Text(
" \"num_seeds\":54,",
),
Text(
" \"priority\":1,",
),
Text(
" \"progress\":0.16108787059783936,",
),
Text(
" \"ratio\":0,",
),
Text(
" \"seq_dl\":false,",
),
Text(
" \"size\":657457152,",
),
Text(
" \"state\":\"downloading\",",
),
Text(
" \"super_seeding\":false,",
),
Text(
" \"upspeed\":0",
),
Text(
" },",
),
Text(
" {",
),
Text(
" another_torrent_info",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent generic properties",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `properties`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the generic properties of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the generic properties of",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON of objects containing the following fields:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------------------|---------|------------",
rows: [
TableRow {
raw: "`save_path` | string | Torrent save path",
columns: [
"save_path",
"string",
"Torrent save path",
],
},
TableRow {
raw: "`creation_date` | integer | Torrent creation date (Unix timestamp)",
columns: [
"creation_date",
"integer",
"Torrent creation date (Unix timestamp)",
],
},
TableRow {
raw: "`piece_size` | integer | Torrent piece size (bytes)",
columns: [
"piece_size",
"integer",
"Torrent piece size (bytes)",
],
},
TableRow {
raw: "`comment` | string | Torrent comment",
columns: [
"comment",
"string",
"Torrent comment",
],
},
TableRow {
raw: "`total_wasted` | integer | Total data wasted for torrent (bytes)",
columns: [
"total_wasted",
"integer",
"Total data wasted for torrent (bytes)",
],
},
TableRow {
raw: "`total_uploaded` | integer | Total data uploaded for torrent (bytes)",
columns: [
"total_uploaded",
"integer",
"Total data uploaded for torrent (bytes)",
],
},
TableRow {
raw: "`total_uploaded_session` | integer | Total data uploaded this session (bytes)",
columns: [
"total_uploaded_session",
"integer",
"Total data uploaded this session (bytes)",
],
},
TableRow {
raw: "`total_downloaded` | integer | Total data downloaded for torrent (bytes)",
columns: [
"total_downloaded",
"integer",
"Total data downloaded for torrent (bytes)",
],
},
TableRow {
raw: "`total_downloaded_session`| integer | Total data downloaded this session (bytes)",
columns: [
"total_downloaded_session",
"integer",
"Total data downloaded this session (bytes)",
],
},
TableRow {
raw: "`up_limit` | integer | Torrent upload limit (bytes/s)",
columns: [
"up_limit",
"integer",
"Torrent upload limit (bytes/s)",
],
},
TableRow {
raw: "`dl_limit` | integer | Torrent download limit (bytes/s)",
columns: [
"dl_limit",
"integer",
"Torrent download limit (bytes/s)",
],
},
TableRow {
raw: "`time_elapsed` | integer | Torrent elapsed time (seconds)",
columns: [
"time_elapsed",
"integer",
"Torrent elapsed time (seconds)",
],
},
TableRow {
raw: "`seeding_time` | integer | Torrent elapsed time while complete (seconds)",
columns: [
"seeding_time",
"integer",
"Torrent elapsed time while complete (seconds)",
],
},
TableRow {
raw: "`nb_connections` | integer | Torrent connection count",
columns: [
"nb_connections",
"integer",
"Torrent connection count",
],
},
TableRow {
raw: "`nb_connections_limit` | integer | Torrent connection count limit",
columns: [
"nb_connections_limit",
"integer",
"Torrent connection count limit",
],
},
TableRow {
raw: "`share_ratio` | float | Torrent share ratio",
columns: [
"share_ratio",
"float",
"Torrent share ratio",
],
},
TableRow {
raw: "`addition_date` | integer | When this torrent was added (unix timestamp)",
columns: [
"addition_date",
"integer",
"When this torrent was added (unix timestamp)",
],
},
TableRow {
raw: "`completion_date` | integer | Torrent completion date (unix timestamp)",
columns: [
"completion_date",
"integer",
"Torrent completion date (unix timestamp)",
],
},
TableRow {
raw: "`created_by` | string | Torrent creator",
columns: [
"created_by",
"string",
"Torrent creator",
],
},
TableRow {
raw: "`dl_speed_avg` | integer | Torrent average download speed (bytes/second)",
columns: [
"dl_speed_avg",
"integer",
"Torrent average download speed (bytes/second)",
],
},
TableRow {
raw: "`dl_speed` | integer | Torrent download speed (bytes/second)",
columns: [
"dl_speed",
"integer",
"Torrent download speed (bytes/second)",
],
},
TableRow {
raw: "`eta` | integer | Torrent ETA (seconds)",
columns: [
"eta",
"integer",
"Torrent ETA (seconds)",
],
},
TableRow {
raw: "`last_seen` | integer | Last seen complete date (unix timestamp)",
columns: [
"last_seen",
"integer",
"Last seen complete date (unix timestamp)",
],
},
TableRow {
raw: "`peers` | integer | Number of peers connected to",
columns: [
"peers",
"integer",
"Number of peers connected to",
],
},
TableRow {
raw: "`peers_total` | integer | Number of peers in the swarm",
columns: [
"peers_total",
"integer",
"Number of peers in the swarm",
],
},
TableRow {
raw: "`pieces_have` | integer | Number of pieces owned",
columns: [
"pieces_have",
"integer",
"Number of pieces owned",
],
},
TableRow {
raw: "`pieces_num` | integer | Number of pieces of the torrent",
columns: [
"pieces_num",
"integer",
"Number of pieces of the torrent",
],
},
TableRow {
raw: "`reannounce` | integer | Number of seconds until the next announce",
columns: [
"reannounce",
"integer",
"Number of seconds until the next announce",
],
},
TableRow {
raw: "`seeds` | integer | Number of seeds connected to",
columns: [
"seeds",
"integer",
"Number of seeds connected to",
],
},
TableRow {
raw: "`seeds_total` | integer | Number of seeds in the swarm",
columns: [
"seeds_total",
"integer",
"Number of seeds in the swarm",
],
},
TableRow {
raw: "`total_size` | integer | Torrent total size (bytes)",
columns: [
"total_size",
"integer",
"Torrent total size (bytes)",
],
},
TableRow {
raw: "`up_speed_avg` | integer | Torrent average upload speed (bytes/second)",
columns: [
"up_speed_avg",
"integer",
"Torrent average upload speed (bytes/second)",
],
},
TableRow {
raw: "`up_speed` | integer | Torrent upload speed (bytes/second)",
columns: [
"up_speed",
"integer",
"Torrent upload speed (bytes/second)",
],
},
],
},
),
Text(
"",
),
Text(
"NB: `-1` is returned if the type of the property is integer but its value is not known.",
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"addition_date\":1438429165,",
),
Text(
" \"comment\":\"\\\"Debian CD from cdimage.debian.org\\\"\",",
),
Text(
" \"completion_date\":1438429234,",
),
Text(
" \"created_by\":\"\",",
),
Text(
" \"creation_date\":1433605214,",
),
Text(
" \"dl_limit\":-1,",
),
Text(
" \"dl_speed\":0,",
),
Text(
" \"dl_speed_avg\":9736015,",
),
Text(
" \"eta\":8640000,",
),
Text(
" \"last_seen\":1438430354,",
),
Text(
" \"nb_connections\":3,",
),
Text(
" \"nb_connections_limit\":250,",
),
Text(
" \"peers\":1,",
),
Text(
" \"peers_total\":89,",
),
Text(
" \"piece_size\":524288,",
),
Text(
" \"pieces_have\":1254,",
),
Text(
" \"pieces_num\":1254,",
),
Text(
" \"reannounce\":672,",
),
Text(
" \"save_path\":\"/Downloads/debian-8.1.0-amd64-CD-1.iso\",",
),
Text(
" \"seeding_time\":1128,",
),
Text(
" \"seeds\":1,",
),
Text(
" \"seeds_total\":254,",
),
Text(
" \"share_ratio\":0.00072121022562178299,",
),
Text(
" \"time_elapsed\":1197,",
),
Text(
" \"total_downloaded\":681521119,",
),
Text(
" \"total_downloaded_session\":681521119,",
),
Text(
" \"total_size\":657457152,",
),
Text(
" \"total_uploaded\":491520,",
),
Text(
" \"total_uploaded_session\":491520,",
),
Text(
" \"total_wasted\":23481724,",
),
Text(
" \"up_limit\":-1,",
),
Text(
" \"up_speed\":0,",
),
Text(
" \"up_speed_avg\":410",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent trackers",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `trackers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the trackers of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the trackers of",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array, where each element contains info about one tracker, with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "-----------------|----------|-------------",
rows: [
TableRow {
raw: "`url` | string | Tracker url",
columns: [
"url",
"string",
"Tracker url",
],
},
TableRow {
raw: "`status` | integer | Tracker status. See the table below for possible values",
columns: [
"status",
"integer",
"Tracker status. See the table below for possible values",
],
},
TableRow {
raw: "`tier` | integer | Tracker priority tier. Lower tier trackers are tried before higher tiers. Tier numbers are valid when `>= 0`, `< 0` is used as placeholder when `tier` does not exist for special entries (such as DHT).",
columns: [
"tier",
"integer",
"Tracker priority tier. Lower tier trackers are tried before higher tiers. Tier numbers are valid when >= 0, < 0 is used as placeholder when tier does not exist for special entries (such as DHT).",
],
},
TableRow {
raw: "`num_peers` | integer | Number of peers for current torrent, as reported by the tracker",
columns: [
"num_peers",
"integer",
"Number of peers for current torrent, as reported by the tracker",
],
},
TableRow {
raw: "`num_seeds` | integer | Number of seeds for current torrent, asreported by the tracker",
columns: [
"num_seeds",
"integer",
"Number of seeds for current torrent, asreported by the tracker",
],
},
TableRow {
raw: "`num_leeches` | integer | Number of leeches for current torrent, as reported by the tracker",
columns: [
"num_leeches",
"integer",
"Number of leeches for current torrent, as reported by the tracker",
],
},
TableRow {
raw: "`num_downloaded` | integer | Number of completed downlods for current torrent, as reported by the tracker",
columns: [
"num_downloaded",
"integer",
"Number of completed downlods for current torrent, as reported by the tracker",
],
},
TableRow {
raw: "`msg` | string | Tracker message (there is no way of knowing what this message is - it's up to tracker admins)",
columns: [
"msg",
"string",
"Tracker message (there is no way of knowing what this message is - it's up to tracker admins)",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `status`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-------|------------",
rows: [
TableRow {
raw: "0 | Tracker is disabled (used for DHT, PeX, and LSD)",
columns: [
"0",
"Tracker is disabled (used for DHT, PeX, and LSD)",
],
},
TableRow {
raw: "1 | Tracker has not been contacted yet",
columns: [
"1",
"Tracker has not been contacted yet",
],
},
TableRow {
raw: "2 | Tracker has been contacted and is working",
columns: [
"2",
"Tracker has been contacted and is working",
],
},
TableRow {
raw: "3 | Tracker is updating",
columns: [
"3",
"Tracker is updating",
],
},
TableRow {
raw: "4 | Tracker has been contacted, but it is not working (or doesn't send proper replies)",
columns: [
"4",
"Tracker has been contacted, but it is not working (or doesn't send proper replies)",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"msg\":\"\",",
),
Text(
" \"num_peers\":100,",
),
Text(
" \"status\":2,",
),
Text(
" \"url\":\"http://bttracker.debian.org:6969/announce\"",
),
Text(
" },",
),
Text(
" {",
),
Text(
" another_tracker_info",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent web seeds",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `webseeds`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the webseeds of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the webseeds of",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array, where each element is information about one webseed, with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------|----------|------------",
rows: [
TableRow {
raw: "`url` | string | URL of the web seed",
columns: [
"url",
"string",
"URL of the web seed",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"url\":\"http://some_url/\"",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"url\":\"http://some_other_url/\"",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent contents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `files`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the contents of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the contents of",
],
},
TableRow {
raw: "`indexes` _optional_ | string | The indexes of the files you want to retrieve. `indexes` can contain multiple values separated by a pipe.",
columns: [
"indexes _optional_",
"string",
"The indexes of the files you want to retrieve. indexes can contain multiple values separated by a pipe.",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array of objects containing the following fields:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "---------------|---------------|-------------",
rows: [
TableRow {
raw: "`index` | integer | File index",
columns: [
"index",
"integer",
"File index",
],
},
TableRow {
raw: "`name` | string | File name (including relative path)",
columns: [
"name",
"string",
"File name (including relative path)",
],
},
TableRow {
raw: "`size` | integer | File size (bytes)",
columns: [
"size",
"integer",
"File size (bytes)",
],
},
TableRow {
raw: "`progress` | float | File progress (percentage/100)",
columns: [
"progress",
"float",
"File progress (percentage/100)",
],
},
TableRow {
raw: "`priority` | object | priority object see table below. File priority. See possible values here below",
columns: [
"priority",
"object",
"priority object see table below. File priority. See possible values here below",
],
},
TableRow {
raw: "`is_seed` _optional_ | bool | True if file is seeding/complete",
columns: [
"is_seed _optional_",
"bool",
"True if file is seeding/complete",
],
},
TableRow {
raw: "`piece_range` | integer array | The first number is the starting piece index and the second number is the ending piece index (inclusive)",
columns: [
"piece_range",
"integer array",
"The first number is the starting piece index and the second number is the ending piece index (inclusive)",
],
},
TableRow {
raw: "`availability` | float | Percentage of file pieces currently available (percentage/100)",
columns: [
"availability",
"float",
"Percentage of file pieces currently available (percentage/100)",
],
},
],
},
),
Text(
"",
),
Text(
"Possible values of `priority`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-----------|------------",
rows: [
TableRow {
raw: "`0` | Do not download",
columns: [
"0",
"Do not download",
],
},
TableRow {
raw: "`1` | Normal priority",
columns: [
"1",
"Normal priority",
],
},
TableRow {
raw: "`4` | Default Normal priority",
columns: [
"4",
"Default Normal priority",
],
},
TableRow {
raw: "`6` | High priority",
columns: [
"6",
"High priority",
],
},
TableRow {
raw: "`7` | Maximal priority",
columns: [
"7",
"Maximal priority",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"index\":0,",
),
Text(
" \"is_seed\":false,",
),
Text(
" \"name\":\"debian-8.1.0-amd64-CD-1.iso\",",
),
Text(
" \"piece_range\":[0,1253],",
),
Text(
" \"priority\":1,",
),
Text(
" \"progress\":0,",
),
Text(
" \"size\":657457152,",
),
Text(
" \"availability\":0.5,",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent pieces' states",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `pieceStates`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the pieces' states of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the pieces' states of",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array of `return_objects`;",
),
Text(
"",
),
Text(
"Possible values of `return_objects`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-----------|------------",
rows: [
TableRow {
raw: "`0` | Not downloaded yet",
columns: [
"0",
"Not downloaded yet",
],
},
TableRow {
raw: "`1` | Now downloading",
columns: [
"1",
"Now downloading",
],
},
TableRow {
raw: "`2` | Already downloaded",
columns: [
"2",
"Already downloaded",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[0,0,2,1,0,0,2,1]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent pieces' hashes",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `pieceHashes`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------|--------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent you want to get the pieces' hashes of",
columns: [
"hash",
"string",
"The hash of the torrent you want to get the pieces' hashes of",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array of hashes (strings).",
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[\"54eddd830a5b58480a6143d616a97e3a6c23c439\",\"f8a99d225aa4241db100f88407fc3bdaead583ab\",\"928fb615b9bd4dd8f9e9022552c8f8f37ef76f58\"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Pause torrents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hashes. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `pause`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to pause. `hashes` can contain multiple hashes separated by a pipe, to pause multiple torrents, or set to `all`, to pause all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to pause. hashes can contain multiple hashes separated by a pipe, to pause multiple torrents, or set to all, to pause all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/pause?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Resume torrents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hashes. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `resume`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to resume. `hashes` can contain multiple hashes separated by a pipe, to resume multiple torrents, or set to `all`, to resume all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to resume. hashes can contain multiple hashes separated by a pipe, to resume multiple torrents, or set to all, to resume all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/resume?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Delete torrents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hashes. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `delete`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to delete. `hashes` can contain multiple hashes separated by a pipe, to delete multiple torrents, or set to `all`, to delete all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to delete. hashes can contain multiple hashes separated by a pipe, to delete multiple torrents, or set to all, to delete all torrents.",
],
},
TableRow {
raw: "`deleteFiles` | bool | If set to `true`, the downloaded data will also be deleted, otherwise has no effect.",
columns: [
"deleteFiles",
"bool",
"If set to true, the downloaded data will also be deleted, otherwise has no effect.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/delete?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32&deleteFiles=false",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Recheck torrents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hashes. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `recheck`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to recheck. `hashes` can contain multiple hashes separated by a pipe, to recheck multiple torrents, or set to `all`, to recheck all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to recheck. hashes can contain multiple hashes separated by a pipe, to recheck multiple torrents, or set to all, to recheck all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/recheck?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Reannounce torrents",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hashes. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `reannounce`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to reannounce. `hashes` can contain multiple hashes separated by a pipe, to reannounce multiple torrents, or set to `all`, to reannounce all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to reannounce. hashes can contain multiple hashes separated by a pipe, to reannounce multiple torrents, or set to all, to reannounce all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/reannounce?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add new torrent",
),
content: [
Text(
"",
),
Text(
"This method can add torrents from server local file or from URLs. `http://`, `https://`, `magnet:` and `bc://bt/` links are supported.",
),
Text(
"",
),
Text(
"Name: `add`",
),
Text(
"",
),
Text(
"Add torrent from URLs example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/add HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: multipart/form-data; boundary=---------------------------6688794727912",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"urls\"",
),
Text(
"",
),
Text(
"https://torcache.net/torrent/3B1A1469C180F447B77021074DBBCCAEF62611E7.torrent",
),
Text(
"https://torcache.net/torrent/3B1A1469C180F447B77021074DBBCCAEF62611E8.torrent",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"savepath\"",
),
Text(
"",
),
Text(
"C:/Users/qBit/Downloads",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"cookie\"",
),
Text(
"",
),
Text(
"ui=28979218048197",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"category\"",
),
Text(
"",
),
Text(
"movies",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"skip_checking\"",
),
Text(
"",
),
Text(
"true",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"paused\"",
),
Text(
"",
),
Text(
"true",
),
Text(
"-----------------------------6688794727912",
),
Text(
"Content-Disposition: form-data; name=\"root_folder\"",
),
Text(
"",
),
Text(
"true",
),
Text(
"-----------------------------6688794727912--",
),
Text(
"```",
),
Text(
"",
),
Text(
"Add torrents from files example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/add HTTP/1.1",
),
Text(
"Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"---------------------------acebdf13572468",
),
Text(
"Content-Disposition: form-data; name=\"torrents\"; filename=\"8f18036b7a205c9347cb84a253975e12f7adddf2.torrent\"",
),
Text(
"Content-Type: application/x-bittorrent",
),
Text(
"",
),
Text(
"file_binary_data_goes_here",
),
Text(
"---------------------------acebdf13572468",
),
Text(
"Content-Disposition: form-data; name=\"torrents\"; filename=\"UFS.torrent\"",
),
Text(
"Content-Type: application/x-bittorrent",
),
Text(
"",
),
Text(
"file_binary_data_goes_here",
),
Text(
"---------------------------acebdf13572468--",
),
Text(
"",
),
Text(
"```",
),
Text(
"",
),
Text(
"The above example will add two torrent files. `file_binary_data_goes_here` represents raw data of torrent file (basically a byte array).",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Property | Type | Description",
columns: [
"Property",
"Type",
"Description",
],
},
split: "--------------------------------|---------|------------",
rows: [
TableRow {
raw: "`urls` | string | URLs separated with newlines",
columns: [
"urls",
"string",
"URLs separated with newlines",
],
},
TableRow {
raw: "`torrents` | raw | Raw data of torrent file. `torrents` can be presented multiple times.",
columns: [
"torrents",
"raw",
"Raw data of torrent file. torrents can be presented multiple times.",
],
},
TableRow {
raw: "`savepath` _optional_ | string | Download folder",
columns: [
"savepath _optional_",
"string",
"Download folder",
],
},
TableRow {
raw: "`cookie` _optional_ | string | Cookie sent to download the .torrent file",
columns: [
"cookie _optional_",
"string",
"Cookie sent to download the .torrent file",
],
},
TableRow {
raw: "`category` _optional_ | string | Category for the torrent",
columns: [
"category _optional_",
"string",
"Category for the torrent",
],
},
TableRow {
raw: "`tags` _optional_ | string | Tags for the torrent, split by ','",
columns: [
"tags _optional_",
"string",
"Tags for the torrent, split by ','",
],
},
TableRow {
raw: "`skip_checking` _optional_ | string | Skip hash checking. Possible values are `true`, `false` (default)",
columns: [
"skip_checking _optional_",
"string",
"Skip hash checking. Possible values are true, false (default)",
],
},
TableRow {
raw: "`paused` _optional_ | string | Add torrents in the paused state. Possible values are `true`, `false` (default)",
columns: [
"paused _optional_",
"string",
"Add torrents in the paused state. Possible values are true, false (default)",
],
},
TableRow {
raw: "`root_folder` _optional_ | string | Create the root folder. Possible values are `true`, `false`, unset (default)",
columns: [
"root_folder _optional_",
"string",
"Create the root folder. Possible values are true, false, unset (default)",
],
},
TableRow {
raw: "`rename` _optional_ | string | Rename torrent",
columns: [
"rename _optional_",
"string",
"Rename torrent",
],
},
TableRow {
raw: "`upLimit` _optional_ | integer | Set torrent upload speed limit. Unit in bytes/second",
columns: [
"upLimit _optional_",
"integer",
"Set torrent upload speed limit. Unit in bytes/second",
],
},
TableRow {
raw: "`dlLimit` _optional_ | integer | Set torrent download speed limit. Unit in bytes/second",
columns: [
"dlLimit _optional_",
"integer",
"Set torrent download speed limit. Unit in bytes/second",
],
},
TableRow {
raw: "`ratioLimit` _optional_ | float | Set torrent share ratio limit",
columns: [
"ratioLimit _optional_",
"float",
"Set torrent share ratio limit",
],
},
TableRow {
raw: "`seedingTimeLimit` _optional_ | integer | Set torrent seeding time limit. Unit in seconds",
columns: [
"seedingTimeLimit _optional_",
"integer",
"Set torrent seeding time limit. Unit in seconds",
],
},
TableRow {
raw: "`autoTMM` _optional_ | bool | Whether Automatic Torrent Management should be used",
columns: [
"autoTMM _optional_",
"bool",
"Whether Automatic Torrent Management should be used",
],
},
TableRow {
raw: "`sequentialDownload` _optional_ | string | Enable sequential download. Possible values are `true`, `false` (default)",
columns: [
"sequentialDownload _optional_",
"string",
"Enable sequential download. Possible values are true, false (default)",
],
},
TableRow {
raw: "`firstLastPiecePrio` _optional_ | string | Prioritize download first last piece. Possible values are `true`, `false` (default)",
columns: [
"firstLastPiecePrio _optional_",
"string",
"Prioritize download first last piece. Possible values are true, false (default)",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "415 | Torrent file is not valid",
columns: [
"415",
"Torrent file is not valid",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add trackers to torrent",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `addTrackers`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/addTrackers HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hash=8c212779b4abde7c6bc608063a0d008b7e40ce32&urls=http://192.168.0.1/announce%0Audp://192.168.0.1:3333/dummyAnnounce",
),
Text(
"```",
),
Text(
"",
),
Text(
"This adds two trackers to torrent with hash `8c212779b4abde7c6bc608063a0d008b7e40ce32`. Note `%0A` (aka LF newline) between trackers. Ampersand in tracker urls **MUST** be escaped.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Edit trackers",
),
content: [
Text(
"",
),
Text(
"Name: `editTracker`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent",
columns: [
"hash",
"string",
"The hash of the torrent",
],
},
TableRow {
raw: "`origUrl` | string | The tracker URL you want to edit",
columns: [
"origUrl",
"string",
"The tracker URL you want to edit",
],
},
TableRow {
raw: "`newUrl` | string | The new URL to replace the `origUrl`",
columns: [
"newUrl",
"string",
"The new URL to replace the origUrl",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | `newUrl` is not a valid URL",
columns: [
"400",
"newUrl is not a valid URL",
],
},
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "409 | `newUrl` already exists for the torrent",
columns: [
"409",
"newUrl already exists for the torrent",
],
},
TableRow {
raw: "409 | `origUrl` was not found",
columns: [
"409",
"origUrl was not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Remove trackers",
),
content: [
Text(
"",
),
Text(
"Name: `removeTrackers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent",
columns: [
"hash",
"string",
"The hash of the torrent",
],
},
TableRow {
raw: "`urls` | string | URLs to remove, separated by a pipe",
columns: [
"urls",
"string",
"URLs to remove, separated by a pipe",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "409 | All `urls` were not found",
columns: [
"409",
"All urls were not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add peers",
),
content: [
Text(
"",
),
Text(
"Name: `addPeers`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hash of the torrent, or multiple hashes separated by a pipe",
columns: [
"hashes",
"string",
"The hash of the torrent, or multiple hashes separated by a pipe",
],
},
TableRow {
raw: "`peers` | string | The peer to add, or multiple peers separated by a pipe. Each peer is a colon-separated `host:port`",
columns: [
"peers",
"string",
"The peer to add, or multiple peers separated by a pipe. Each peer is a colon-separated host:port",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | None of the supplied peers are valid",
columns: [
"400",
"None of the supplied peers are valid",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Increase torrent priority",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `increasePrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to increase the priority of. `hashes` can contain multiple hashes separated by a pipe, to increase the priority of multiple torrents, or set to `all`, to increase the priority of all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to increase the priority of. hashes can contain multiple hashes separated by a pipe, to increase the priority of multiple torrents, or set to all, to increase the priority of all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/increasePrio?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Torrent queueing is not enabled",
columns: [
"409",
"Torrent queueing is not enabled",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Decrease torrent priority",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `decreasePrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to decrease the priority of. `hashes` can contain multiple hashes separated by a pipe, to decrease the priority of multiple torrents, or set to `all`, to decrease the priority of all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to decrease the priority of. hashes can contain multiple hashes separated by a pipe, to decrease the priority of multiple torrents, or set to all, to decrease the priority of all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/decreasePrio?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Torrent queueing is not enabled",
columns: [
"409",
"Torrent queueing is not enabled",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Maximal torrent priority",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `topPrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to set to the maximum priority. `hashes` can contain multiple hashes separated by a pipe, to set multiple torrents to the maximum priority, or set to `all`, to set all torrents to the maximum priority.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to set to the maximum priority. hashes can contain multiple hashes separated by a pipe, to set multiple torrents to the maximum priority, or set to all, to set all torrents to the maximum priority.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/topPrio?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Torrent queueing is not enabled",
columns: [
"409",
"Torrent queueing is not enabled",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Minimal torrent priority",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `bottomPrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to set to the minimum priority. `hashes` can contain multiple hashes separated by a pipe, to set multiple torrents to the minimum priority, or set to `all`, to set all torrents to the minimum priority.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to set to the minimum priority. hashes can contain multiple hashes separated by a pipe, to set multiple torrents to the minimum priority, or set to all, to set all torrents to the minimum priority.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/bottomPrio?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Torrent queueing is not enabled",
columns: [
"409",
"Torrent queueing is not enabled",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set file priority",
),
content: [
Text(
"",
),
Text(
"Name: `filePrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent",
columns: [
"hash",
"string",
"The hash of the torrent",
],
},
TableRow {
raw: "`id` | string | File ids, separated by a pipe",
columns: [
"id",
"string",
"File ids, separated by a pipe",
],
},
TableRow {
raw: "`priority` | object | priority object see table below. File priority to set (consult [torrent contents API](#get-torrent-contents) for possible values)",
columns: [
"priority",
"object",
"priority object see table below. File priority to set (consult [torrent contents API](#get-torrent-contents) for possible values)",
],
},
],
},
),
Text(
"",
),
Text(
"`id` values correspond to file position inside the array returned by [torrent contents API](#get-torrent-contents), e.g. `id=0` for first file, `id=1` for second file, etc.",
),
Text(
"",
),
Text(
"Since 2.8.2 it is reccomended to use `index` field returned by [torrent contents API](#get-torrent-contents) (since the files can be filtered and the `index` value may differ from the position inside the response array).",
),
Text(
"",
),
Text(
"Possible values of `priority`:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Value | Description",
columns: [
"Value",
"Description",
],
},
split: "-----------|------------",
rows: [
TableRow {
raw: "`0` | Do not download",
columns: [
"0",
"Do not download",
],
},
TableRow {
raw: "`4` | Normal priority",
columns: [
"4",
"Normal priority",
],
},
TableRow {
raw: "`6` | High priority",
columns: [
"6",
"High priority",
],
},
TableRow {
raw: "`7` | Maximal priority",
columns: [
"7",
"Maximal priority",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Priority is invalid",
columns: [
"400",
"Priority is invalid",
],
},
TableRow {
raw: "400 | At least one file `id` is not a valid integer",
columns: [
"400",
"At least one file id is not a valid integer",
],
},
TableRow {
raw: "404 | Torrent hash was not found",
columns: [
"404",
"Torrent hash was not found",
],
},
TableRow {
raw: "409 | Torrent metadata hasn't downloaded yet",
columns: [
"409",
"Torrent metadata hasn't downloaded yet",
],
},
TableRow {
raw: "409 | At least one file `id` was not found",
columns: [
"409",
"At least one file id was not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent download limit",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `downloadLimit`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/downloadLimit HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"",
),
Text(
"Server reply (example):",
),
Text(
"",
),
Text(
"```http",
),
Text(
"HTTP/1.1 200 OK",
),
Text(
"content-type: application/json",
),
Text(
"content-length: length",
),
Text(
"",
),
Text(
"{\"8c212779b4abde7c6bc608063a0d008b7e40ce32\":338944,\"284b83c9c7935002391129fd97f43db5d7cc2ba0\":123}",
),
Text(
"```",
),
Text(
"",
),
Text(
"`8c212779b4abde7c6bc608063a0d008b7e40ce32` is the hash of the torrent and `338944` its download speed limit in bytes per second; this value will be zero if no limit is applied.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent download limit",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setDownloadLimit HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&limit=131072",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`limit` is the download speed limit in bytes per second you want to set.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent share limit",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setShareLimits`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setShareLimits HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&ratioLimit=1.0&seedingTimeLimit=60",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`ratioLimit` is the max ratio the torrent should be seeded until. `-2` means the global limit should be used, `-1` means no limit.",
),
Text(
"`seedingTimeLimit` is the max amount of time the torrent should be seeded. `-2` means the global limit should be used, `-1` means no limit.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get torrent upload limit",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `uploadLimit`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/uploadLimit HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"",
),
Text(
"Server reply (example):",
),
Text(
"",
),
Text(
"```http",
),
Text(
"HTTP/1.1 200 OK",
),
Text(
"content-type: application/json",
),
Text(
"content-length: length",
),
Text(
"",
),
Text(
"{\"8c212779b4abde7c6bc608063a0d008b7e40ce32\":338944,\"284b83c9c7935002391129fd97f43db5d7cc2ba0\":123}",
),
Text(
"```",
),
Text(
"",
),
Text(
"`8c212779b4abde7c6bc608063a0d008b7e40ce32` is the hash of the torrent in the request and `338944` its upload speed limit in bytes per second; this value will be zero if no limit is applied.",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent upload limit",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setUploadLimit`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setUploadLimit HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&limit=131072",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`limit` is the upload speed limit in bytes per second you want to set.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent location",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setLocation`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setLocation HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&location=/mnt/nfs/media",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`location` is the location to download the torrent to. If the location doesn't exist, the torrent's location is unchanged.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Save path is empty",
columns: [
"400",
"Save path is empty",
],
},
TableRow {
raw: "403 | User does not have write access to directory",
columns: [
"403",
"User does not have write access to directory",
],
},
TableRow {
raw: "409 | Unable to create save path directory",
columns: [
"409",
"Unable to create save path directory",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent name",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `rename`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/rename HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hash=8c212779b4abde7c6bc608063a0d008b7e40ce32&name=This%20is%20a%20test",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Torrent hash is invalid",
columns: [
"404",
"Torrent hash is invalid",
],
},
TableRow {
raw: "409 | Torrent name is empty",
columns: [
"409",
"Torrent name is empty",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set torrent category",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setCategory`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setCategory HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&category=CategoryName",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"",
),
Text(
"`category` is the torrent category you want to set.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Category name does not exist",
columns: [
"409",
"Category name does not exist",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get all categories",
),
content: [
Text(
"",
),
Text(
"Name: `categories`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Text(
"Returns all categories in JSON format, e.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"Video\": {",
),
Text(
" \"name\": \"Video\",",
),
Text(
" \"savePath\": \"/home/user/torrents/video/\"",
),
Text(
" },",
),
Text(
" \"eBooks\": {",
),
Text(
" \"name\": \"eBooks\",",
),
Text(
" \"savePath\": \"/home/user/torrents/eBooks/\"",
),
Text(
" }",
),
Text(
"}",
),
Text(
"```",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add new category",
),
content: [
Text(
"",
),
Text(
"Name: `createCategory`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/createCategory HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"category=CategoryName&savePath=/path/to/dir",
),
Text(
"```",
),
Text(
"",
),
Text(
"`category` is the category you want to create.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Category name is empty",
columns: [
"400",
"Category name is empty",
],
},
TableRow {
raw: "409 | Category name is invalid",
columns: [
"409",
"Category name is invalid",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Edit category",
),
content: [
Text(
"",
),
Text(
"Name: `editCategory`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/editCategory HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"category=CategoryName&savePath=/path/to/save/torrents/to",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Category name is empty",
columns: [
"400",
"Category name is empty",
],
},
TableRow {
raw: "409 | Category editing failed",
columns: [
"409",
"Category editing failed",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Remove categories",
),
content: [
Text(
"",
),
Text(
"Name: `removeCategories`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/removeCategories HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"categories=Category1%0ACategory2",
),
Text(
"```",
),
Text(
"",
),
Text(
"`categories` can contain multiple cateogies separated by `\\n` (%0A urlencoded)",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add torrent tags",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `addTags`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/addTags HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&tags=TagName1,TagName2",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"",
),
Text(
"`tags` is the list of tags you want to add to passed torrents.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Remove torrent tags",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `removeTags`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/removeTags HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&tags=TagName1,TagName2",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"",
),
Text(
"`tags` is the list of tags you want to remove from passed torrents.",
),
Text(
"Empty list removes all tags from relevant torrents.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get all tags",
),
content: [
Text(
"",
),
Text(
"Name: `tags`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Text(
"Returns all tags in JSON format, e.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" \"Tag 1\",",
),
Text(
" \"Tag 2\"",
),
Text(
"]",
),
Text(
"```",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Create tags",
),
content: [
Text(
"",
),
Text(
"Name: `createTags`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/createTags HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"tags=TagName1,TagName2",
),
Text(
"```",
),
Text(
"`tags` is a list of tags you want to create.",
),
Text(
"Can contain multiple tags separated by `,`.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Delete tags",
),
content: [
Text(
"",
),
Text(
"Name: `deleteTags`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/deleteTags HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"tags=TagName1,TagName2",
),
Text(
"```",
),
Text(
"",
),
Text(
"`tags` is a list of tags you want to delete.",
),
Text(
"Can contain multiple tags separated by `,`.",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set automatic torrent management",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setAutoManagement`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setAutoManagement HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&enable=true",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`enable` is a boolean, affects the torrents listed in `hashes`, default is `false`",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Toggle sequential download",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `toggleSequentialDownload`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to toggle sequential download for. `hashes` can contain multiple hashes separated by a pipe, to toggle sequential download for multiple torrents, or set to `all`, to toggle sequential download for all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to toggle sequential download for. hashes can contain multiple hashes separated by a pipe, to toggle sequential download for multiple torrents, or set to all, to toggle sequential download for all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/toggleSequentialDownload?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set first/last piece priority",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `toggleFirstLastPiecePrio`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "------------|----------|------------",
rows: [
TableRow {
raw: "`hashes` | string | The hashes of the torrents you want to toggle the first/last piece priority for. `hashes` can contain multiple hashes separated by a pipe, to toggle the first/last piece priority for multiple torrents, or set to `all`, to toggle the first/last piece priority for all torrents.",
columns: [
"hashes",
"string",
"The hashes of the torrents you want to toggle the first/last piece priority for. hashes can contain multiple hashes separated by a pipe, to toggle the first/last piece priority for multiple torrents, or set to all, to toggle the first/last piece priority for all torrents.",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```http",
),
Text(
"/api/v2/torrents/toggleFirstLastPiecePrio?hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|54eddd830a5b58480a6143d616a97e3a6c23c439",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set force start",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setForceStart`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setForceStart HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32?value=true",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`value` is a boolean, affects the torrents listed in `hashes`, default is `false`",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set super seeding",
),
content: [
Text(
"",
),
Text(
"Requires knowing the torrent hash. You can get it from [torrent list](#get-torrent-list).",
),
Text(
"",
),
Text(
"Name: `setSuperSeeding`",
),
Text(
"",
),
Text(
"```http",
),
Text(
"POST /api/v2/torrents/setSuperSeeding HTTP/1.1",
),
Text(
"User-Agent: Fiddler",
),
Text(
"Host: 127.0.0.1",
),
Text(
"Cookie: SID=your_sid",
),
Text(
"Content-Type: application/x-www-form-urlencoded",
),
Text(
"Content-Length: length",
),
Text(
"",
),
Text(
"hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32?value=true",
),
Text(
"```",
),
Text(
"",
),
Text(
"`hashes` can contain multiple hashes separated by `|` or set to `all`",
),
Text(
"`value` is a boolean, affects the torrents listed in `hashes`, default is `false`",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Rename file",
),
content: [
Text(
"",
),
Text(
"Name: `renameFile`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|----------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent",
columns: [
"hash",
"string",
"The hash of the torrent",
],
},
TableRow {
raw: "`oldPath` | string | The old path of the torrent",
columns: [
"oldPath",
"string",
"The old path of the torrent",
],
},
TableRow {
raw: "`newPath` | string | The new path to use for the file",
columns: [
"newPath",
"string",
"The new path to use for the file",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Missing `newPath` parameter",
columns: [
"400",
"Missing newPath parameter",
],
},
TableRow {
raw: "409 | Invalid `newPath` or `oldPath`, or `newPath` already in use",
columns: [
"409",
"Invalid newPath or oldPath, or newPath already in use",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Rename folder",
),
content: [
Text(
"",
),
Text(
"Name: `renameFolder`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|----------|------------",
rows: [
TableRow {
raw: "`hash` | string | The hash of the torrent",
columns: [
"hash",
"string",
"The hash of the torrent",
],
},
TableRow {
raw: "`oldPath` | string | The old path of the torrent",
columns: [
"oldPath",
"string",
"The old path of the torrent",
],
},
TableRow {
raw: "`newPath` | string | The new path to use for the file",
columns: [
"newPath",
"string",
"The new path to use for the file",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "400 | Missing `newPath` parameter",
columns: [
"400",
"Missing newPath parameter",
],
},
TableRow {
raw: "409 | Invalid `newPath` or `oldPath`, or `newPath` already in use",
columns: [
"409",
"Invalid newPath or oldPath, or newPath already in use",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"RSS (experimental)",
),
content: [
Text(
"",
),
Text(
"All RSS API methods are under \"rss\", e.g.: `/api/v2/rss/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Add folder",
),
content: [
Text(
"",
),
Text(
"Name: `addFolder`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`path` | string | Full path of added folder (e.g. \"The Pirate Bay\\Top100\")",
columns: [
"path",
"string",
"Full path of added folder (e.g. \"The Pirate Bay\\Top100\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Failure to add folder",
columns: [
"409",
"Failure to add folder",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Add feed",
),
content: [
Text(
"",
),
Text(
"Name: `addFeed`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`url` | string | URL of RSS feed (e.g. \"[http://thepiratebay.org/rss//top100/200](http://thepiratebay.org/rss//top100/200)\")",
columns: [
"url",
"string",
"URL of RSS feed (e.g. \"[http://thepiratebay.org/rss//top100/200](http://thepiratebay.org/rss//top100/200)\")",
],
},
TableRow {
raw: "`path` _optional_ | string | Full path of added folder (e.g. \"The Pirate Bay\\Top100\\Video\")",
columns: [
"path _optional_",
"string",
"Full path of added folder (e.g. \"The Pirate Bay\\Top100\\Video\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Failure to add feed",
columns: [
"409",
"Failure to add feed",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Remove item",
),
content: [
Text(
"",
),
Text(
"Removes folder or feed.",
),
Text(
"",
),
Text(
"Name: `removeItem`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`path` | string | Full path of removed item (e.g. \"The Pirate Bay\\Top100\")",
columns: [
"path",
"string",
"Full path of removed item (e.g. \"The Pirate Bay\\Top100\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Failure to remove item",
columns: [
"409",
"Failure to remove item",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Move item",
),
content: [
Text(
"",
),
Text(
"Moves/renames folder or feed.",
),
Text(
"",
),
Text(
"Name: `moveItem`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`itemPath` | string | Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
columns: [
"itemPath",
"string",
"Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
],
},
TableRow {
raw: "`destPath` | string | New full path of item (e.g. \"The Pirate Bay\")",
columns: [
"destPath",
"string",
"New full path of item (e.g. \"The Pirate Bay\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | Failure to move item",
columns: [
"409",
"Failure to move item",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get all items",
),
content: [
Text(
"",
),
Text(
"Name: `items`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`withData` _optional_ | bool | True if you need current feed articles",
columns: [
"withData _optional_",
"bool",
"True if you need current feed articles",
],
},
],
},
),
Text(
"",
),
Text(
"Returns all RSS items in JSON format, e.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"HD-Torrents.org\": \"https://hd-torrents.org/rss.php\",",
),
Text(
" \"PowerfulJRE\": \"https://www.youtube.com/feeds/videos.xml?channel_id=UCzQUP1qoWDoEbmsQxvdjxgQ\",",
),
Text(
" \"The Pirate Bay\": {",
),
Text(
" \"Audio\": \"https://thepiratebay.org/rss//top100/100\",",
),
Text(
" \"Video\": \"https://thepiratebay.org/rss//top100/200\"",
),
Text(
" }",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Mark as read",
),
content: [
Text(
"",
),
Text(
"If `articleId` is provided only the article is marked as read otherwise the whole feed is going to be marked as read.",
),
Text(
"",
),
Text(
"Name: `markAsRead`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`itemPath` | string | Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
columns: [
"itemPath",
"string",
"Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
],
},
TableRow {
raw: "`articleId` _optional_ | string | ID of article",
columns: [
"articleId _optional_",
"string",
"ID of article",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Refresh item",
),
content: [
Text(
"",
),
Text(
"Refreshes folder or feed.",
),
Text(
"",
),
Text(
"Name: `refreshItem`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`itemPath` | string | Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
columns: [
"itemPath",
"string",
"Current full path of item (e.g. \"The Pirate Bay\\Top100\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Set auto-downloading rule",
),
content: [
Text(
"",
),
Text(
"Name: `setRule`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`ruleName` | string | Rule name (e.g. \"Punisher\")",
columns: [
"ruleName",
"string",
"Rule name (e.g. \"Punisher\")",
],
},
TableRow {
raw: "`ruleDef` | string | JSON encoded rule definition",
columns: [
"ruleDef",
"string",
"JSON encoded rule definition",
],
},
],
},
),
Text(
"",
),
Text(
"Rule definition is JSON encoded dictionary with the following fields:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`enabled` | bool | Whether the rule is enabled",
columns: [
"enabled",
"bool",
"Whether the rule is enabled",
],
},
TableRow {
raw: "`mustContain` | string | The substring that the torrent name must contain",
columns: [
"mustContain",
"string",
"The substring that the torrent name must contain",
],
},
TableRow {
raw: "`mustNotContain` | string | The substring that the torrent name must not contain",
columns: [
"mustNotContain",
"string",
"The substring that the torrent name must not contain",
],
},
TableRow {
raw: "`useRegex` | bool | Enable regex mode in \"mustContain\" and \"mustNotContain\"",
columns: [
"useRegex",
"bool",
"Enable regex mode in \"mustContain\" and \"mustNotContain\"",
],
},
TableRow {
raw: "`episodeFilter` | string | Episode filter definition",
columns: [
"episodeFilter",
"string",
"Episode filter definition",
],
},
TableRow {
raw: "`smartFilter` | bool | Enable smart episode filter",
columns: [
"smartFilter",
"bool",
"Enable smart episode filter",
],
},
TableRow {
raw: "`previouslyMatchedEpisodes` | list | The list of episode IDs already matched by smart filter",
columns: [
"previouslyMatchedEpisodes",
"list",
"The list of episode IDs already matched by smart filter",
],
},
TableRow {
raw: "`affectedFeeds` | list | The feed URLs the rule applied to",
columns: [
"affectedFeeds",
"list",
"The feed URLs the rule applied to",
],
},
TableRow {
raw: "`ignoreDays` | number | Ignore sunsequent rule matches",
columns: [
"ignoreDays",
"number",
"Ignore sunsequent rule matches",
],
},
TableRow {
raw: "`lastMatch` | string | The rule last match time",
columns: [
"lastMatch",
"string",
"The rule last match time",
],
},
TableRow {
raw: "`addPaused` | bool | Add matched torrent in paused mode",
columns: [
"addPaused",
"bool",
"Add matched torrent in paused mode",
],
},
TableRow {
raw: "`assignedCategory` | string | Assign category to the torrent",
columns: [
"assignedCategory",
"string",
"Assign category to the torrent",
],
},
TableRow {
raw: "`savePath` | string | Save torrent to the given directory",
columns: [
"savePath",
"string",
"Save torrent to the given directory",
],
},
],
},
),
Text(
"",
),
Text(
"E.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"enabled\": false,",
),
Text(
" \"mustContain\": \"The *Punisher*\",",
),
Text(
" \"mustNotContain\": \"\",",
),
Text(
" \"useRegex\": false,",
),
Text(
" \"episodeFilter\": \"1x01-;\",",
),
Text(
" \"smartFilter\": false,",
),
Text(
" \"previouslyMatchedEpisodes\": [",
),
Text(
" ],",
),
Text(
" \"affectedFeeds\": [",
),
Text(
" \"http://showrss.info/user/134567.rss?magnets=true\"",
),
Text(
" ],",
),
Text(
" \"ignoreDays\": 0,",
),
Text(
" \"lastMatch\": \"20 Nov 2017 09:05:11\",",
),
Text(
" \"addPaused\": true,",
),
Text(
" \"assignedCategory\": \"\",",
),
Text(
" \"savePath\": \"C:/Users/JohnDoe/Downloads/Punisher\"",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Rename auto-downloading rule",
),
content: [
Text(
"",
),
Text(
"Name: `renameRule`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`ruleName` | string | Rule name (e.g. \"Punisher\")",
columns: [
"ruleName",
"string",
"Rule name (e.g. \"Punisher\")",
],
},
TableRow {
raw: "`newRuleName` | string | New rule name (e.g. \"The Punisher\")",
columns: [
"newRuleName",
"string",
"New rule name (e.g. \"The Punisher\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Remove auto-downloading rule",
),
content: [
Text(
"",
),
Text(
"Name: `removeRule`",
),
Text(
"",
),
Text(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`ruleName` | string | Rule name (e.g. \"Punisher\")",
columns: [
"ruleName",
"string",
"Rule name (e.g. \"Punisher\")",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get all auto-downloading rules",
),
content: [
Text(
"",
),
Text(
"Name: `rules`",
),
Text(
"",
),
Text(
"Returns all auto-downloading rules in JSON format, e.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"The Punisher\": {",
),
Text(
" \"enabled\": false,",
),
Text(
" \"mustContain\": \"The *Punisher*\",",
),
Text(
" \"mustNotContain\": \"\",",
),
Text(
" \"useRegex\": false,",
),
Text(
" \"episodeFilter\": \"1x01-;\",",
),
Text(
" \"smartFilter\": false,",
),
Text(
" \"previouslyMatchedEpisodes\": [",
),
Text(
" ],",
),
Text(
" \"affectedFeeds\": [",
),
Text(
" \"http://showrss.info/user/134567.rss?magnets=true\"",
),
Text(
" ],",
),
Text(
" \"ignoreDays\": 0,",
),
Text(
" \"lastMatch\": \"20 Nov 2017 09:05:11\",",
),
Text(
" \"addPaused\": true,",
),
Text(
" \"assignedCategory\": \"\",",
),
Text(
" \"savePath\": \"C:/Users/JohnDoe/Downloads/Punisher\"",
),
Text(
" }",
),
Text(
"}",
),
Text(
"```",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get all articles matching a rule",
),
content: [
Text(
"",
),
Text(
"Name: `matchingArticles`",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`ruleName` | string | Rule name (e.g. \"Linux\")",
columns: [
"ruleName",
"string",
"Rule name (e.g. \"Linux\")",
],
},
],
},
),
Text(
"",
),
Text(
"",
),
Text(
"Returns all articles that match a rule by feed name in JSON format, e.g.:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"DistroWatch\":[",
),
Text(
" \"sparkylinux-5.11-i686-minimalgui.iso.torrent\",",
),
Text(
" \"sparkylinux-5.11-x86_64-minimalgui.iso.torrent\",",
),
Text(
" \"sparkylinux-5.11-i686-xfce.iso.torrent\",",
),
Text(
" \"bluestar-linux-5.6.3-2020.04.09-x86_64.iso.torrent\",",
),
Text(
" \"robolinux64-mate3d-v10.10.iso.torrent\",",
),
Text(
" ],",
),
Text(
" \"Linuxtracker\":[",
),
Text(
" \"[Alpine Linux] alpine-extended-3.11.6\",",
),
Text(
" \"[Alpine Linux] alpine-standard-3.11.6\",",
),
Text(
" \"[Linuxfx] linuxfx10-wxs-lts-beta5.iso\",",
),
Text(
" \"[Linux Lite] linux-lite-5.0-rc1-64bit.iso (MULTI)\",",
),
Text(
" \"[Scientific Linux] SL-7.8-x86_64-Pack\",",
),
Text(
" \"[NixOS] nixos-plasma5-20.03.1418.5272327b81e-x86_64-linux.iso\"",
),
Text(
" ]",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"Search",
),
content: [
Text(
"",
),
Text(
"All Search API methods are under \"search\", e.g.: `/api/v2/search/methodName`.",
),
Text(
"",
),
],
children: [
TokenTree {
title: Some(
"Start search",
),
content: [
Text(
"",
),
Text(
"Name: `start`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`pattern` | string | Pattern to search for (e.g. \"Ubuntu 18.04\")",
columns: [
"pattern",
"string",
"Pattern to search for (e.g. \"Ubuntu 18.04\")",
],
},
TableRow {
raw: "`plugins` | string | Plugins to use for searching (e.g. \"legittorrents\"). Supports multiple plugins separated by a pipe. Also supports `all` and `enabled`",
columns: [
"plugins",
"string",
"Plugins to use for searching (e.g. \"legittorrents\"). Supports multiple plugins separated by a pipe. Also supports all and enabled",
],
},
TableRow {
raw: "`category` | string | Categories to limit your search to (e.g. \"legittorrents\"). Available categories depend on the specified `plugins`. Also supports `all`",
columns: [
"category",
"string",
"Categories to limit your search to (e.g. \"legittorrents\"). Available categories depend on the specified plugins. Also supports all",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "409 | User has reached the limit of max `Running` searches (currently set to 5)",
columns: [
"409",
"User has reached the limit of max Running searches (currently set to 5)",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | number | ID of the search job",
columns: [
"id",
"number",
"ID of the search job",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"id\": 12345",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Stop search",
),
content: [
Text(
"",
),
Text(
"Name: `stop`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | number | ID of the search job",
columns: [
"id",
"number",
"ID of the search job",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Search job was not found",
columns: [
"404",
"Search job was not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get search status",
),
content: [
Text(
"",
),
Text(
"Name: `status`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` _optional_ | number | ID of the search job. If not specified, all search jobs are returned",
columns: [
"id _optional_",
"number",
"ID of the search job. If not specified, all search jobs are returned",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Search job was not found",
columns: [
"404",
"Search job was not found",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array of objects containing the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | number | ID of the search job",
columns: [
"id",
"number",
"ID of the search job",
],
},
TableRow {
raw: "`status` | string | Current status of the search job (either `Running` or `Stopped`)",
columns: [
"status",
"string",
"Current status of the search job (either Running or Stopped)",
],
},
TableRow {
raw: "`total` | number | Total number of results. If the status is `Running` this number may contineu to increase",
columns: [
"total",
"number",
"Total number of results. If the status is Running this number may contineu to increase",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"id\": 12345,",
),
Text(
" \"status\": \"Running\",",
),
Text(
" \"total\": 170",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get search results",
),
content: [
Text(
"",
),
Text(
"Name: `results`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | number | ID of the search job",
columns: [
"id",
"number",
"ID of the search job",
],
},
TableRow {
raw: "`limit` _optional_ | number | max number of results to return. 0 or negative means no limit",
columns: [
"limit _optional_",
"number",
"max number of results to return. 0 or negative means no limit",
],
},
TableRow {
raw: "`offset` _optional_ | number | result to start at. A negative number means count backwards (e.g. `-2` returns the 2 most recent results)",
columns: [
"offset _optional_",
"number",
"result to start at. A negative number means count backwards (e.g. -2 returns the 2 most recent results)",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Search job was not found",
columns: [
"404",
"Search job was not found",
],
},
TableRow {
raw: "409 | Offset is too large, or too small (e.g. absolute value of negative number is greater than # results)",
columns: [
"409",
"Offset is too large, or too small (e.g. absolute value of negative number is greater than # results)",
],
},
TableRow {
raw: "200 | All other scenarios- see JSON below",
columns: [
"200",
"All other scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON object with the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`results` | array | Array of `result` objects- see table below",
columns: [
"results",
"array",
"Array of result objects- see table below",
],
},
TableRow {
raw: "`status` | string | Current status of the search job (either `Running` or `Stopped`)",
columns: [
"status",
"string",
"Current status of the search job (either Running or Stopped)",
],
},
TableRow {
raw: "`total` | number | Total number of results. If the status is `Running` this number may continue to increase",
columns: [
"total",
"number",
"Total number of results. If the status is Running this number may continue to increase",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Result object:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`descrLink` | string | URL of the torrent's description page",
columns: [
"descrLink",
"string",
"URL of the torrent's description page",
],
},
TableRow {
raw: "`fileName` | string | Name of the file",
columns: [
"fileName",
"string",
"Name of the file",
],
},
TableRow {
raw: "`fileSize` | number | Size of the file in Bytes",
columns: [
"fileSize",
"number",
"Size of the file in Bytes",
],
},
TableRow {
raw: "`fileUrl` | string | Torrent download link (usually either .torrent file or magnet link)",
columns: [
"fileUrl",
"string",
"Torrent download link (usually either .torrent file or magnet link)",
],
},
TableRow {
raw: "`nbLeechers` | number | Number of leechers",
columns: [
"nbLeechers",
"number",
"Number of leechers",
],
},
TableRow {
raw: "`nbSeeders` | number | Number of seeders",
columns: [
"nbSeeders",
"number",
"Number of seeders",
],
},
TableRow {
raw: "`siteUrl` | string | URL of the torrent site",
columns: [
"siteUrl",
"string",
"URL of the torrent site",
],
},
],
},
),
Text(
"",
),
Text(
"Example:",
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"{",
),
Text(
" \"results\": [",
),
Text(
" {",
),
Text(
" \"descrLink\": \"http://www.legittorrents.info/index.php?page=torrent-details&id=8d5f512e1acb687029b8d7cc6c5a84dce51d7a41\",",
),
Text(
" \"fileName\": \"Ubuntu-10.04-32bit-NeTV.ova\",",
),
Text(
" \"fileSize\": -1,",
),
Text(
" \"fileUrl\": \"http://www.legittorrents.info/download.php?id=8d5f512e1acb687029b8d7cc6c5a84dce51d7a41&f=Ubuntu-10.04-32bit-NeTV.ova.torrent\",",
),
Text(
" \"nbLeechers\": 1,",
),
Text(
" \"nbSeeders\": 0,",
),
Text(
" \"siteUrl\": \"http://www.legittorrents.info\"",
),
Text(
" },",
),
Text(
" {",
),
Text(
" \"descrLink\": \"http://www.legittorrents.info/index.php?page=torrent-details&id=d5179f53e105dc2c2401bcfaa0c2c4936a6aa475\",",
),
Text(
" \"fileName\": \"mangOH-Legato-17_06-Ubuntu-16_04.ova\",",
),
Text(
" \"fileSize\": -1,",
),
Text(
" \"fileUrl\": \"http://www.legittorrents.info/download.php?id=d5179f53e105dc2c2401bcfaa0c2c4936a6aa475&f=mangOH-Legato-17_06-Ubuntu-16_04.ova.torrent\",",
),
Text(
" \"nbLeechers\": 0,",
),
Text(
" \"nbSeeders\": 59,",
),
Text(
" \"siteUrl\": \"http://www.legittorrents.info\"",
),
Text(
" }",
),
Text(
" ],",
),
Text(
" \"status\": \"Running\",",
),
Text(
" \"total\": 2",
),
Text(
"}",
),
Text(
"```",
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Delete search",
),
content: [
Text(
"",
),
Text(
"Name: `delete`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | number | ID of the search job",
columns: [
"id",
"number",
"ID of the search job",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "404 | Search job was not found",
columns: [
"404",
"Search job was not found",
],
},
TableRow {
raw: "200 | All other scenarios",
columns: [
"200",
"All other scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Get search plugins",
),
content: [
Text(
"",
),
Text(
"Name: `plugins`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios- see JSON below",
columns: [
"200",
"All scenarios- see JSON below",
],
},
],
},
),
Text(
"",
),
Text(
"The response is a JSON array of objects containing the following fields",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`enabled` | bool | Whether the plugin is enabled",
columns: [
"enabled",
"bool",
"Whether the plugin is enabled",
],
},
TableRow {
raw: "`fullName` | string | Full name of the plugin",
columns: [
"fullName",
"string",
"Full name of the plugin",
],
},
TableRow {
raw: "`name` | string | Short name of the plugin",
columns: [
"name",
"string",
"Short name of the plugin",
],
},
TableRow {
raw: "`supportedCategories` | array | List of category objects",
columns: [
"supportedCategories",
"array",
"List of category objects",
],
},
TableRow {
raw: "`url` | string | URL of the torrent site",
columns: [
"url",
"string",
"URL of the torrent site",
],
},
TableRow {
raw: "`version` | string | Installed version of the plugin",
columns: [
"version",
"string",
"Installed version of the plugin",
],
},
],
},
),
Text(
"",
),
Text(
"```JSON",
),
Text(
"[",
),
Text(
" {",
),
Text(
" \"enabled\": true,",
),
Text(
" \"fullName\": \"Legit Torrents\",",
),
Text(
" \"name\": \"legittorrents\",",
),
Text(
" \"supportedCategories\": [{",
),
Text(
" \"id\": \"all\",",
),
Text(
" \"name\": \"All categories\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"anime\",",
),
Text(
" \"name\": \"Anime\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"books\",",
),
Text(
" \"name\": \"Books\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"games\",",
),
Text(
" \"name\": \"Games\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"movies\",",
),
Text(
" \"name\": \"Movies\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"music\",",
),
Text(
" \"name\": \"Music\"",
),
Text(
" }, {",
),
Text(
" \"id\": \"tv\",",
),
Text(
" \"name\": \"TV shows\"",
),
Text(
" }],",
),
Text(
" \"url\": \"http://www.legittorrents.info\",",
),
Text(
" \"version\": \"2.3\"",
),
Text(
" }",
),
Text(
"]",
),
Text(
"```",
),
Text(
"",
),
Asterisk(
"Category object:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Field | Type | Description",
columns: [
"Field",
"Type",
"Description",
],
},
split: "---------------------------|---------|------------",
rows: [
TableRow {
raw: "`id` | string | Id",
columns: [
"id",
"string",
"Id",
],
},
TableRow {
raw: "`name` | string | Name",
columns: [
"name",
"string",
"Name",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Install search plugin",
),
content: [
Text(
"",
),
Text(
"Name: `installPlugin`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`sources` | string | Url or file path of the plugin to install (e.g. \"[https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/legittorrents.py](https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/legittorrents.py)\"). Supports multiple sources separated by a pipe",
columns: [
"sources",
"string",
"Url or file path of the plugin to install (e.g. \"[https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/legittorrents.py](https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/legittorrents.py)\"). Supports multiple sources separated by a pipe",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Uninstall search plugin",
),
content: [
Text(
"",
),
Text(
"Name: `uninstallPlugin`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`names` | string | Name of the plugin to uninstall (e.g. \"legittorrents\"). Supports multiple names separated by a pipe",
columns: [
"names",
"string",
"Name of the plugin to uninstall (e.g. \"legittorrents\"). Supports multiple names separated by a pipe",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Enable search plugin",
),
content: [
Text(
"",
),
Text(
"Name: `enablePlugin`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "Parameter | Type | Description",
columns: [
"Parameter",
"Type",
"Description",
],
},
split: "----------------------------------|---------|------------",
rows: [
TableRow {
raw: "`names` | string | Name of the plugin to enable/disable (e.g. \"legittorrents\"). Supports multiple names separated by a pipe",
columns: [
"names",
"string",
"Name of the plugin to enable/disable (e.g. \"legittorrents\"). Supports multiple names separated by a pipe",
],
},
TableRow {
raw: "`enable` | bool | Whether the plugins should be enabled",
columns: [
"enable",
"bool",
"Whether the plugins should be enabled",
],
},
],
},
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
TokenTree {
title: Some(
"Update search plugins",
),
content: [
Text(
"",
),
Text(
"Name: `updatePlugins`",
),
Text(
"",
),
Asterisk(
"Parameters:",
),
Text(
"",
),
Text(
"None",
),
Text(
"",
),
Asterisk(
"Returns:",
),
Text(
"",
),
Table(
Table {
header: TableRow {
raw: "HTTP Status Code | Scenario",
columns: [
"HTTP Status Code",
"Scenario",
],
},
split: "----------------------------------|---------------------",
rows: [
TableRow {
raw: "200 | All scenarios",
columns: [
"200",
"All scenarios",
],
},
],
},
),
Text(
"",
),
],
children: [],
},
],
},
TokenTree {
title: Some(
"WebAPI versioning",
),
content: [
Text(
"WebAPI uses the following versioning: `1.2.3`:",
),
Text(
"1. Main version. Should be changed only on some global changes (e.g. total redesign/relayout)",
),
Text(
"2. Changed on incompatible API changes (i.e. if it breaks outdated clients). E.g. if you change/remove something",
),
Text(
"3. Changed on compatible API changes (i.e. if it doesn't break outdated clients). E.g. if you add something new outdated clients still can access old subset of API.",
),
],
children: [],
},
],
}