"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.\n\nExample showing how to login and execute a command that requires authentication using `curl`:\n\n```sh\n$ curl -i --header 'Referer: http://localhost:8080' --data 'username=admin&password=adminadmin' http://localhost:8080/api/v2/auth/login\nHTTP/1.1 200 OK\nContent-Encoding:\nContent-Length: 3\nContent-Type: text/plain; charset=UTF-8\nSet-Cookie: SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ; path=/\n$ curl http://localhost:8080/api/v2/torrents/info --cookie \"SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ\"\n```\n\nNote: Set `Referer` or `Origin` header to the exact same domain and port as used in the HTTP query `Host` header.",
description: "Currently selected language (e.g. en_GB for English)",
return_type: String(
TypeInfo {
name: "locale",
is_optional: false,
is_list: false,
description: Some(
"Currently selected language (e.g. en_GB for English)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "create_subfolder_enabled",
description: "True if a subfolder should be created when adding a torrent",
return_type: Bool(
TypeInfo {
name: "create_subfolder_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if a subfolder should be created when adding a torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "start_paused_enabled",
description: "True if torrents should be added in a Paused state",
return_type: Bool(
TypeInfo {
name: "start_paused_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if torrents should be added in a Paused state",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "auto_delete_mode",
description: "TODO",
return_type: Number(
TypeInfo {
name: "auto_delete_mode",
is_optional: false,
is_list: false,
description: Some(
"TODO",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "preallocate_all",
description: "True if disk space should be pre-allocated for all files",
return_type: Bool(
TypeInfo {
name: "preallocate_all",
is_optional: false,
is_list: false,
description: Some(
"True if disk space should be pre-allocated for all files",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "incomplete_files_ext",
description: "True if \".!qB\" should be appended to incomplete files",
return_type: Bool(
TypeInfo {
name: "incomplete_files_ext",
is_optional: false,
is_list: false,
description: Some(
"True if \".!qB\" should be appended to incomplete files",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "auto_tmm_enabled",
description: "True if Automatic Torrent Management is enabled by default",
return_type: Bool(
TypeInfo {
name: "auto_tmm_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if Automatic Torrent Management is enabled by default",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "torrent_changed_tmm_enabled",
description: "True if torrent should be relocated when its Category changes",
return_type: Bool(
TypeInfo {
name: "torrent_changed_tmm_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if torrent should be relocated when its Category changes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "save_path_changed_tmm_enabled",
description: "True if torrent should be relocated when the default save path changes",
return_type: Bool(
TypeInfo {
name: "save_path_changed_tmm_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if torrent should be relocated when the default save path changes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "category_changed_tmm_enabled",
description: "True if torrent should be relocated when its Category's save path changes",
return_type: Bool(
TypeInfo {
name: "category_changed_tmm_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if torrent should be relocated when its Category's save path changes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "save_path",
description: "Default save path for torrents, separated by slashes",
return_type: String(
TypeInfo {
name: "save_path",
is_optional: false,
is_list: false,
description: Some(
"Default save path for torrents, separated by slashes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "temp_path_enabled",
description: "True if folder for incomplete torrents is enabled",
return_type: Bool(
TypeInfo {
name: "temp_path_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if folder for incomplete torrents is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "temp_path",
description: "Path for incomplete torrents, separated by slashes",
return_type: String(
TypeInfo {
name: "temp_path",
is_optional: false,
is_list: false,
description: Some(
"Path for incomplete torrents, separated by slashes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "scan_dirs",
description: "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",
return_type: Object(
TypeInfo {
name: "scan_dirs",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Download to the monitored folder",
},
TypeDescriptions {
value: "1",
description: "Download to the default save path",
},
TypeDescriptions {
value: "\"/path/to/download/to\"",
description: "Download to this path",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "export_dir",
description: "Path to directory to copy .torrent files to. Slashes are used as path separators",
return_type: String(
TypeInfo {
name: "export_dir",
is_optional: false,
is_list: false,
description: Some(
"Path to directory to copy .torrent files to. Slashes are used as path separators",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "export_dir_fin",
description: "Path to directory to copy .torrent files of completed downloads to. Slashes are used as path separators",
return_type: String(
TypeInfo {
name: "export_dir_fin",
is_optional: false,
is_list: false,
description: Some(
"Path to directory to copy .torrent files of completed downloads to. Slashes are used as path separators",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_enabled",
description: "True if e-mail notification should be enabled",
return_type: Bool(
TypeInfo {
name: "mail_notification_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if e-mail notification should be enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_sender",
description: "e-mail where notifications should originate from",
return_type: String(
TypeInfo {
name: "mail_notification_sender",
is_optional: false,
is_list: false,
description: Some(
"e-mail where notifications should originate from",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_email",
description: "e-mail to send notifications to",
return_type: String(
TypeInfo {
name: "mail_notification_email",
is_optional: false,
is_list: false,
description: Some(
"e-mail to send notifications to",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_smtp",
description: "smtp server for e-mail notifications",
return_type: String(
TypeInfo {
name: "mail_notification_smtp",
is_optional: false,
is_list: false,
description: Some(
"smtp server for e-mail notifications",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_ssl_enabled",
description: "True if smtp server requires SSL connection",
return_type: Bool(
TypeInfo {
name: "mail_notification_ssl_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if smtp server requires SSL connection",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_auth_enabled",
description: "True if smtp server requires authentication",
return_type: Bool(
TypeInfo {
name: "mail_notification_auth_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if smtp server requires authentication",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_username",
description: "Username for smtp authentication",
return_type: String(
TypeInfo {
name: "mail_notification_username",
is_optional: false,
is_list: false,
description: Some(
"Username for smtp authentication",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "mail_notification_password",
description: "Password for smtp authentication",
return_type: String(
TypeInfo {
name: "mail_notification_password",
is_optional: false,
is_list: false,
description: Some(
"Password for smtp authentication",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "autorun_enabled",
description: "True if external program should be run after torrent has finished downloading",
return_type: Bool(
TypeInfo {
name: "autorun_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if external program should be run after torrent has finished downloading",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "autorun_program",
description: "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",
return_type: String(
TypeInfo {
name: "autorun_program",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "queueing_enabled",
description: "True if torrent queuing is enabled",
return_type: Bool(
TypeInfo {
name: "queueing_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if torrent queuing is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_active_downloads",
description: "Maximum number of active simultaneous downloads",
return_type: Number(
TypeInfo {
name: "max_active_downloads",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of active simultaneous downloads",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_active_torrents",
description: "Maximum number of active simultaneous downloads and uploads",
return_type: Number(
TypeInfo {
name: "max_active_torrents",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of active simultaneous downloads and uploads",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_active_uploads",
description: "Maximum number of active simultaneous uploads",
return_type: Number(
TypeInfo {
name: "max_active_uploads",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of active simultaneous uploads",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dont_count_slow_torrents",
description: "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",
return_type: Bool(
TypeInfo {
name: "dont_count_slow_torrents",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "slow_torrent_dl_rate_threshold",
description: "Download rate in KiB/s for a torrent to be considered \"slow\"",
return_type: Number(
TypeInfo {
name: "slow_torrent_dl_rate_threshold",
is_optional: false,
is_list: false,
description: Some(
"Download rate in KiB/s for a torrent to be considered \"slow\"",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "slow_torrent_ul_rate_threshold",
description: "Upload rate in KiB/s for a torrent to be considered \"slow\"",
return_type: Number(
TypeInfo {
name: "slow_torrent_ul_rate_threshold",
is_optional: false,
is_list: false,
description: Some(
"Upload rate in KiB/s for a torrent to be considered \"slow\"",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "slow_torrent_inactive_timer",
description: "Seconds a torrent should be inactive before considered \"slow\"",
return_type: Number(
TypeInfo {
name: "slow_torrent_inactive_timer",
is_optional: false,
is_list: false,
description: Some(
"Seconds a torrent should be inactive before considered \"slow\"",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_ratio_enabled",
description: "True if share ratio limit is enabled",
return_type: Bool(
TypeInfo {
name: "max_ratio_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if share ratio limit is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_ratio",
description: "Get the global share ratio limit",
return_type: Float(
TypeInfo {
name: "max_ratio",
is_optional: false,
is_list: false,
description: Some(
"Get the global share ratio limit",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_ratio_act",
description: "Action performed when a torrent reaches the maximum share ratio. See list of possible values here below.",
return_type: Number(
TypeInfo {
name: "max_ratio_act",
is_optional: false,
is_list: false,
description: Some(
"Action performed when a torrent reaches the maximum share ratio. See list of possible values here below.",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Pause torrent",
},
TypeDescriptions {
value: "1",
description: "Remove torrent",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "listen_port",
description: "Port for incoming connections",
return_type: Number(
TypeInfo {
name: "listen_port",
is_optional: false,
is_list: false,
description: Some(
"Port for incoming connections",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "upnp",
description: "True if UPnP/NAT-PMP is enabled",
return_type: Bool(
TypeInfo {
name: "upnp",
is_optional: false,
is_list: false,
description: Some(
"True if UPnP/NAT-PMP is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "random_port",
description: "True if the port is randomly selected",
return_type: Bool(
TypeInfo {
name: "random_port",
is_optional: false,
is_list: false,
description: Some(
"True if the port is randomly selected",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dl_limit",
description: "Global download speed limit in KiB/s; -1 means no limit is applied",
return_type: Number(
TypeInfo {
name: "dl_limit",
is_optional: false,
is_list: false,
description: Some(
"Global download speed limit in KiB/s; -1 means no limit is applied",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "up_limit",
description: "Global upload speed limit in KiB/s; -1 means no limit is applied",
return_type: Number(
TypeInfo {
name: "up_limit",
is_optional: false,
is_list: false,
description: Some(
"Global upload speed limit in KiB/s; -1 means no limit is applied",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_connec",
description: "Maximum global number of simultaneous connections",
return_type: Number(
TypeInfo {
name: "max_connec",
is_optional: false,
is_list: false,
description: Some(
"Maximum global number of simultaneous connections",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_connec_per_torrent",
description: "Maximum number of simultaneous connections per torrent",
return_type: Number(
TypeInfo {
name: "max_connec_per_torrent",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of simultaneous connections per torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_uploads",
description: "Maximum number of upload slots",
return_type: Number(
TypeInfo {
name: "max_uploads",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of upload slots",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_uploads_per_torrent",
description: "Maximum number of upload slots per torrent",
return_type: Number(
TypeInfo {
name: "max_uploads_per_torrent",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of upload slots per torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "stop_tracker_timeout",
description: "Timeout in seconds for a stopped announce request to trackers",
return_type: Number(
TypeInfo {
name: "stop_tracker_timeout",
is_optional: false,
is_list: false,
description: Some(
"Timeout in seconds for a stopped announce request to trackers",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "enable_piece_extent_affinity",
description: "True if the advanced libtorrent option piece_extent_affinity is enabled",
return_type: Bool(
TypeInfo {
name: "enable_piece_extent_affinity",
is_optional: false,
is_list: false,
description: Some(
"True if the advanced libtorrent option piece_extent_affinity is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "bittorrent_protocol",
description: "Bittorrent Protocol to use (see list of possible values below)",
return_type: Number(
TypeInfo {
name: "bittorrent_protocol",
is_optional: false,
is_list: false,
description: Some(
"Bittorrent Protocol to use (see list of possible values below)",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "TCP and μTP",
},
TypeDescriptions {
value: "1",
description: "TCP",
},
TypeDescriptions {
value: "2",
description: "μTP",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "limit_utp_rate",
description: "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",
return_type: Bool(
TypeInfo {
name: "limit_utp_rate",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "limit_tcp_overhead",
description: "True if [du]l_limit should be applied to estimated TCP overhead (service data: e.g. packet headers)",
return_type: Bool(
TypeInfo {
name: "limit_tcp_overhead",
is_optional: false,
is_list: false,
description: Some(
"True if [du]l_limit should be applied to estimated TCP overhead (service data: e.g. packet headers)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "limit_lan_peers",
description: "True if [du]l_limit should be applied to peers on the LAN",
return_type: Bool(
TypeInfo {
name: "limit_lan_peers",
is_optional: false,
is_list: false,
description: Some(
"True if [du]l_limit should be applied to peers on the LAN",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "alt_dl_limit",
description: "Alternative global download speed limit in KiB/s",
return_type: Number(
TypeInfo {
name: "alt_dl_limit",
is_optional: false,
is_list: false,
description: Some(
"Alternative global download speed limit in KiB/s",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "alt_up_limit",
description: "Alternative global upload speed limit in KiB/s",
return_type: Number(
TypeInfo {
name: "alt_up_limit",
is_optional: false,
is_list: false,
description: Some(
"Alternative global upload speed limit in KiB/s",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "scheduler_enabled",
description: "True if alternative limits should be applied according to schedule",
return_type: Bool(
TypeInfo {
name: "scheduler_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if alternative limits should be applied according to schedule",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "schedule_from_hour",
description: "Scheduler starting hour",
return_type: Number(
TypeInfo {
name: "schedule_from_hour",
is_optional: false,
is_list: false,
description: Some(
"Scheduler starting hour",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "schedule_from_min",
description: "Scheduler starting minute",
return_type: Number(
TypeInfo {
name: "schedule_from_min",
is_optional: false,
is_list: false,
description: Some(
"Scheduler starting minute",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "schedule_to_hour",
description: "Scheduler ending hour",
return_type: Number(
TypeInfo {
name: "schedule_to_hour",
is_optional: false,
is_list: false,
description: Some(
"Scheduler ending hour",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "schedule_to_min",
description: "Scheduler ending minute",
return_type: Number(
TypeInfo {
name: "schedule_to_min",
is_optional: false,
is_list: false,
description: Some(
"Scheduler ending minute",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "scheduler_days",
description: "Scheduler days. See possible values here below",
return_type: Number(
TypeInfo {
name: "scheduler_days",
is_optional: false,
is_list: false,
description: Some(
"Scheduler days. See possible values here below",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Every day",
},
TypeDescriptions {
value: "1",
description: "Every weekday",
},
TypeDescriptions {
value: "2",
description: "Every weekend",
},
TypeDescriptions {
value: "3",
description: "Every Monday",
},
TypeDescriptions {
value: "4",
description: "Every Tuesday",
},
TypeDescriptions {
value: "5",
description: "Every Wednesday",
},
TypeDescriptions {
value: "6",
description: "Every Thursday",
},
TypeDescriptions {
value: "7",
description: "Every Friday",
},
TypeDescriptions {
value: "8",
description: "Every Saturday",
},
TypeDescriptions {
value: "9",
description: "Every Sunday",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "dht",
description: "True if DHT is enabled",
return_type: Bool(
TypeInfo {
name: "dht",
is_optional: false,
is_list: false,
description: Some(
"True if DHT is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "pex",
description: "True if PeX is enabled",
return_type: Bool(
TypeInfo {
name: "pex",
is_optional: false,
is_list: false,
description: Some(
"True if PeX is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "lsd",
description: "True if LSD is enabled",
return_type: Bool(
TypeInfo {
name: "lsd",
is_optional: false,
is_list: false,
description: Some(
"True if LSD is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "encryption",
description: "See list of possible values here below",
return_type: Number(
TypeInfo {
name: "encryption",
is_optional: false,
is_list: false,
description: Some(
"See list of possible values here below",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Prefer encryption",
},
TypeDescriptions {
value: "1",
description: "Force encryption on",
},
TypeDescriptions {
value: "2",
description: "Force encryption off",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "anonymous_mode",
description: "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",
return_type: Bool(
TypeInfo {
name: "anonymous_mode",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_type",
description: "See list of possible values here below",
return_type: Number(
TypeInfo {
name: "proxy_type",
is_optional: false,
is_list: false,
description: Some(
"See list of possible values here below",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "-1",
description: "Proxy is disabled",
},
TypeDescriptions {
value: "1",
description: "HTTP proxy without authentication",
},
TypeDescriptions {
value: "2",
description: "SOCKS5 proxy without authentication",
},
TypeDescriptions {
value: "3",
description: "HTTP proxy with authentication",
},
TypeDescriptions {
value: "4",
description: "SOCKS5 proxy with authentication",
},
TypeDescriptions {
value: "5",
description: "SOCKS4 proxy without authentication",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "proxy_ip",
description: "Proxy IP address or domain name",
return_type: String(
TypeInfo {
name: "proxy_ip",
is_optional: false,
is_list: false,
description: Some(
"Proxy IP address or domain name",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_port",
description: "Proxy port",
return_type: Number(
TypeInfo {
name: "proxy_port",
is_optional: false,
is_list: false,
description: Some(
"Proxy port",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_peer_connections",
description: "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",
return_type: Bool(
TypeInfo {
name: "proxy_peer_connections",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_auth_enabled",
description: "True proxy requires authentication; doesn't apply to SOCKS4 proxies",
return_type: Bool(
TypeInfo {
name: "proxy_auth_enabled",
is_optional: false,
is_list: false,
description: Some(
"True proxy requires authentication; doesn't apply to SOCKS4 proxies",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_username",
description: "Username for proxy authentication",
return_type: String(
TypeInfo {
name: "proxy_username",
is_optional: false,
is_list: false,
description: Some(
"Username for proxy authentication",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_password",
description: "Password for proxy authentication",
return_type: String(
TypeInfo {
name: "proxy_password",
is_optional: false,
is_list: false,
description: Some(
"Password for proxy authentication",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "proxy_torrents_only",
description: "True if proxy is only used for torrents",
return_type: Bool(
TypeInfo {
name: "proxy_torrents_only",
is_optional: false,
is_list: false,
description: Some(
"True if proxy is only used for torrents",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ip_filter_enabled",
description: "True if external IP filter should be enabled",
return_type: Bool(
TypeInfo {
name: "ip_filter_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if external IP filter should be enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ip_filter_path",
description: "Path to IP filter file (.dat, .p2p, .p2b files are supported); path is separated by slashes",
return_type: String(
TypeInfo {
name: "ip_filter_path",
is_optional: false,
is_list: false,
description: Some(
"Path to IP filter file (.dat, .p2p, .p2b files are supported); path is separated by slashes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ip_filter_trackers",
description: "True if IP filters are applied to trackers",
return_type: Bool(
TypeInfo {
name: "ip_filter_trackers",
is_optional: false,
is_list: false,
description: Some(
"True if IP filters are applied to trackers",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_domain_list",
description: "Comma-separated list of domains to accept when performing Host header validation",
return_type: String(
TypeInfo {
name: "web_ui_domain_list",
is_optional: false,
is_list: false,
description: Some(
"Comma-separated list of domains to accept when performing Host header validation",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_address",
description: "IP address to use for the WebUI",
return_type: String(
TypeInfo {
name: "web_ui_address",
is_optional: false,
is_list: false,
description: Some(
"IP address to use for the WebUI",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_port",
description: "WebUI port",
return_type: Number(
TypeInfo {
name: "web_ui_port",
is_optional: false,
is_list: false,
description: Some(
"WebUI port",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_upnp",
description: "True if UPnP is used for the WebUI port",
return_type: Bool(
TypeInfo {
name: "web_ui_upnp",
is_optional: false,
is_list: false,
description: Some(
"True if UPnP is used for the WebUI port",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_username",
description: "WebUI username",
return_type: String(
TypeInfo {
name: "web_ui_username",
is_optional: false,
is_list: false,
description: Some(
"WebUI username",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_password",
description: "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",
return_type: String(
TypeInfo {
name: "web_ui_password",
is_optional: false,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_csrf_protection_enabled",
description: "True if WebUI CSRF protection is enabled",
return_type: Bool(
TypeInfo {
name: "web_ui_csrf_protection_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if WebUI CSRF protection is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_clickjacking_protection_enabled",
description: "True if WebUI clickjacking protection is enabled",
return_type: Bool(
TypeInfo {
name: "web_ui_clickjacking_protection_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if WebUI clickjacking protection is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_secure_cookie_enabled",
description: "True if WebUI cookie Secure flag is enabled",
return_type: Bool(
TypeInfo {
name: "web_ui_secure_cookie_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if WebUI cookie Secure flag is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_max_auth_fail_count",
description: "Maximum number of authentication failures before WebUI access ban",
return_type: Number(
TypeInfo {
name: "web_ui_max_auth_fail_count",
is_optional: false,
is_list: false,
description: Some(
"Maximum number of authentication failures before WebUI access ban",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_ban_duration",
description: "WebUI access ban duration in seconds",
return_type: Number(
TypeInfo {
name: "web_ui_ban_duration",
is_optional: false,
is_list: false,
description: Some(
"WebUI access ban duration in seconds",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_session_timeout",
description: "Seconds until WebUI is automatically signed off",
return_type: Number(
TypeInfo {
name: "web_ui_session_timeout",
is_optional: false,
is_list: false,
description: Some(
"Seconds until WebUI is automatically signed off",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_host_header_validation_enabled",
description: "True if WebUI host header validation is enabled",
return_type: Bool(
TypeInfo {
name: "web_ui_host_header_validation_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if WebUI host header validation is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "bypass_local_auth",
description: "True if authentication challenge for loopback address (127.0.0.1) should be disabled",
return_type: Bool(
TypeInfo {
name: "bypass_local_auth",
is_optional: false,
is_list: false,
description: Some(
"True if authentication challenge for loopback address (127.0.0.1) should be disabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "bypass_auth_subnet_whitelist_enabled",
description: "True if webui authentication should be bypassed for clients whose ip resides within (at least) one of the subnets on the whitelist",
return_type: Bool(
TypeInfo {
name: "bypass_auth_subnet_whitelist_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if webui authentication should be bypassed for clients whose ip resides within (at least) one of the subnets on the whitelist",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "bypass_auth_subnet_whitelist",
description: "(White)list of ipv4/ipv6 subnets for which webui authentication should be bypassed; list entries are separated by commas",
return_type: String(
TypeInfo {
name: "bypass_auth_subnet_whitelist",
is_optional: false,
is_list: false,
description: Some(
"(White)list of ipv4/ipv6 subnets for which webui authentication should be bypassed; list entries are separated by commas",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "alternative_webui_enabled",
description: "True if an alternative WebUI should be used",
return_type: Bool(
TypeInfo {
name: "alternative_webui_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if an alternative WebUI should be used",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "alternative_webui_path",
description: "File path to the alternative WebUI",
return_type: String(
TypeInfo {
name: "alternative_webui_path",
is_optional: false,
is_list: false,
description: Some(
"File path to the alternative WebUI",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "use_https",
description: "True if WebUI HTTPS access is enabled",
return_type: Bool(
TypeInfo {
name: "use_https",
is_optional: false,
is_list: false,
description: Some(
"True if WebUI HTTPS access is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ssl_key",
description: "For API < v2.0.1: SSL keyfile contents (this is a not a path)",
return_type: String(
TypeInfo {
name: "ssl_key",
is_optional: false,
is_list: false,
description: Some(
"For API < v2.0.1: SSL keyfile contents (this is a not a path)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ssl_cert",
description: "For API < v2.0.1: SSL certificate contents (this is a not a path)",
return_type: String(
TypeInfo {
name: "ssl_cert",
is_optional: false,
is_list: false,
description: Some(
"For API < v2.0.1: SSL certificate contents (this is a not a path)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_https_key_path",
description: "For API ≥ v2.0.1: Path to SSL keyfile",
return_type: String(
TypeInfo {
name: "web_ui_https_key_path",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.0.1: Path to SSL keyfile",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_https_cert_path",
description: "For API ≥ v2.0.1: Path to SSL certificate",
return_type: String(
TypeInfo {
name: "web_ui_https_cert_path",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.0.1: Path to SSL certificate",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dyndns_enabled",
description: "True if server DNS should be updated dynamically",
return_type: Bool(
TypeInfo {
name: "dyndns_enabled",
is_optional: false,
is_list: false,
description: Some(
"True if server DNS should be updated dynamically",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dyndns_service",
description: "See list of possible values here below",
return_type: Number(
TypeInfo {
name: "dyndns_service",
is_optional: false,
is_list: false,
description: Some(
"See list of possible values here below",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Use DyDNS",
},
TypeDescriptions {
value: "1",
description: "Use NOIP",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "dyndns_username",
description: "Username for DDNS service",
return_type: String(
TypeInfo {
name: "dyndns_username",
is_optional: false,
is_list: false,
description: Some(
"Username for DDNS service",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dyndns_password",
description: "Password for DDNS service",
return_type: String(
TypeInfo {
name: "dyndns_password",
is_optional: false,
is_list: false,
description: Some(
"Password for DDNS service",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dyndns_domain",
description: "Your DDNS domain name",
return_type: String(
TypeInfo {
name: "dyndns_domain",
is_optional: false,
is_list: false,
description: Some(
"Your DDNS domain name",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_refresh_interval",
description: "RSS refresh interval",
return_type: Number(
TypeInfo {
name: "rss_refresh_interval",
is_optional: false,
is_list: false,
description: Some(
"RSS refresh interval",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_max_articles_per_feed",
description: "Max stored articles per RSS feed",
return_type: Number(
TypeInfo {
name: "rss_max_articles_per_feed",
is_optional: false,
is_list: false,
description: Some(
"Max stored articles per RSS feed",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_processing_enabled",
description: "Enable processing of RSS feeds",
return_type: Bool(
TypeInfo {
name: "rss_processing_enabled",
is_optional: false,
is_list: false,
description: Some(
"Enable processing of RSS feeds",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_auto_downloading_enabled",
description: "Enable auto-downloading of torrents from the RSS feeds",
return_type: Bool(
TypeInfo {
name: "rss_auto_downloading_enabled",
is_optional: false,
is_list: false,
description: Some(
"Enable auto-downloading of torrents from the RSS feeds",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_download_repack_proper_episodes",
description: "For API ≥ v2.5.1: Enable downloading of repack/proper Episodes",
return_type: Bool(
TypeInfo {
name: "rss_download_repack_proper_episodes",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.5.1: Enable downloading of repack/proper Episodes",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "rss_smart_episode_filters",
description: "For API ≥ v2.5.1: List of RSS Smart Episode Filters",
return_type: String(
TypeInfo {
name: "rss_smart_episode_filters",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.5.1: List of RSS Smart Episode Filters",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "add_trackers_enabled",
description: "Enable automatic adding of trackers to new torrents",
return_type: Bool(
TypeInfo {
name: "add_trackers_enabled",
is_optional: false,
is_list: false,
description: Some(
"Enable automatic adding of trackers to new torrents",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "add_trackers",
description: "List of trackers to add to new torrent",
return_type: String(
TypeInfo {
name: "add_trackers",
is_optional: false,
is_list: false,
description: Some(
"List of trackers to add to new torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_use_custom_http_headers_enabled",
description: "For API ≥ v2.5.1: Enable custom http headers",
return_type: Bool(
TypeInfo {
name: "web_ui_use_custom_http_headers_enabled",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.5.1: Enable custom http headers",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "web_ui_custom_http_headers",
description: "For API ≥ v2.5.1: List of custom http headers",
return_type: String(
TypeInfo {
name: "web_ui_custom_http_headers",
is_optional: false,
is_list: false,
description: Some(
"For API ≥ v2.5.1: List of custom http headers",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_seeding_time_enabled",
description: "True enables max seeding time",
return_type: Bool(
TypeInfo {
name: "max_seeding_time_enabled",
is_optional: false,
is_list: false,
description: Some(
"True enables max seeding time",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_seeding_time",
description: "Number of minutes to seed a torrent",
return_type: Number(
TypeInfo {
name: "max_seeding_time",
is_optional: false,
is_list: false,
description: Some(
"Number of minutes to seed a torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "announce_ip",
description: "TODO",
return_type: String(
TypeInfo {
name: "announce_ip",
is_optional: false,
is_list: false,
description: Some(
"TODO",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "announce_to_all_tiers",
description: "True always announce to all tiers",
return_type: Bool(
TypeInfo {
name: "announce_to_all_tiers",
is_optional: false,
is_list: false,
description: Some(
"True always announce to all tiers",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "announce_to_all_trackers",
description: "True always announce to all trackers in a tier",
return_type: Bool(
TypeInfo {
name: "announce_to_all_trackers",
is_optional: false,
is_list: false,
description: Some(
"True always announce to all trackers in a tier",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "async_io_threads",
description: "Number of asynchronous I/O threads",
return_type: Number(
TypeInfo {
name: "async_io_threads",
is_optional: false,
is_list: false,
description: Some(
"Number of asynchronous I/O threads",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "banned_IPs",
description: "List of banned IPs",
return_type: String(
TypeInfo {
name: "banned_IPs",
is_optional: false,
is_list: false,
description: Some(
"List of banned IPs",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "checking_memory_use",
description: "Outstanding memory when checking torrents in MiB",
return_type: Number(
TypeInfo {
name: "checking_memory_use",
is_optional: false,
is_list: false,
description: Some(
"Outstanding memory when checking torrents in MiB",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "current_interface_address",
description: "IP Address to bind to. Empty String means All addresses",
return_type: String(
TypeInfo {
name: "current_interface_address",
is_optional: false,
is_list: false,
description: Some(
"IP Address to bind to. Empty String means All addresses",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "current_network_interface",
description: "Network Interface used",
return_type: String(
TypeInfo {
name: "current_network_interface",
is_optional: false,
is_list: false,
description: Some(
"Network Interface used",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "disk_cache",
description: "Disk cache used in MiB",
return_type: Number(
TypeInfo {
name: "disk_cache",
is_optional: false,
is_list: false,
description: Some(
"Disk cache used in MiB",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "disk_cache_ttl",
description: "Disk cache expiry interval in seconds",
description: "μTP-TCP mixed mode algorithm (see list of possible values below)",
return_type: Number(
TypeInfo {
name: "utp_tcp_mixed_mode",
is_optional: false,
is_list: false,
description: Some(
"μTP-TCP mixed mode algorithm (see list of possible values below)",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Prefer TCP",
},
TypeDescriptions {
value: "1",
description: "Peer proportional",
},
],
},
),
},
),
},
],
},
),
url: "preferences",
},
ApiMethod {
name: "setPreferences",
description: Some(
"1. There is no need to pass all possible preferences' `token:value` pairs if you only want to change one option\n 1. Paths in `scan_dirs` must exist, otherwise this option will have no effect\n 1. String values must be quoted; integer and boolean values must never be quoted\n\nFor a list of possible preference options see [Get application preferences](#get-application-preferences)",
"The response is a JSON object with the following possible fields\n\n\nExample:\n\n```JSON\n{\n \"rid\":15,\n \"torrents\":\n {\n \"8c212779b4abde7c6bc608063a0d008b7e40ce32\":\n {\n \"state\":\"pausedUP\"\n }\n }\n}\n```",
"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)",
"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)",
"Sync API implements requests for obtaining changes since the last request.\nAll Sync API methods are under \"sync\", e.g.: `/api/v2/sync/methodName`.",
"The response is a JSON object with the following fields\n\n\nIn addition to the above in partial data requests (see [Get partial data](#get-partial-data) for more info):\n\n\nPossible values of `connection_status`:\n\nValue |\n\nExample:\n\n```JSON\n{\n \"connection_status\":\"connected\",\n \"dht_nodes\":386,\n \"dl_info_data\":681521119,\n \"dl_info_speed\":0,\n \"dl_rate_limit\":0,\n \"up_info_data\":10747904,\n \"up_info_speed\":0,\n \"up_rate_limit\":1048576\n}\n```",
"Filter torrent list by state. Allowed state filters: all, downloading, seeding, completed, paused, active, inactive, resumed, stalled, stalled_uploading, stalled_downloading, errored",
),
type_description: None,
},
),
String(
TypeInfo {
name: "category",
is_optional: true,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
String(
TypeInfo {
name: "tag",
is_optional: true,
is_list: false,
description: Some(
"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",
),
type_description: None,
},
),
String(
TypeInfo {
name: "sort",
is_optional: true,
is_list: false,
description: Some(
"Sort torrents by given key. They can be sorted using any field of the response's JSON array (which are documented below) as the sort key.",
),
type_description: None,
},
),
Bool(
TypeInfo {
name: "reverse",
is_optional: true,
is_list: false,
description: Some(
"Enable reverse sorting. Defaults to false",
),
type_description: None,
},
),
Number(
TypeInfo {
name: "limit",
is_optional: true,
is_list: false,
description: Some(
"Limit the number of torrents returned",
),
type_description: None,
},
),
Number(
TypeInfo {
name: "offset",
is_optional: true,
is_list: false,
description: Some(
"Set offset (if less than 0, offset from end)",
),
type_description: None,
},
),
String(
TypeInfo {
name: "hashes",
is_optional: true,
is_list: false,
description: Some(
"Filter by hashes. Can contain multiple hashes separated by \\",
description: "Time (Unix Epoch) when the torrent was added to the client",
return_type: Number(
TypeInfo {
name: "added_on",
is_optional: false,
is_list: false,
description: Some(
"Time (Unix Epoch) when the torrent was added to the client",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "amount_left",
description: "Amount of data left to download (bytes)",
return_type: Number(
TypeInfo {
name: "amount_left",
is_optional: false,
is_list: false,
description: Some(
"Amount of data left to download (bytes)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "auto_tmm",
description: "Whether this torrent is managed by Automatic Torrent Management",
return_type: Bool(
TypeInfo {
name: "auto_tmm",
is_optional: false,
is_list: false,
description: Some(
"Whether this torrent is managed by Automatic Torrent Management",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "availability",
description: "Percentage of file pieces currently available",
return_type: Float(
TypeInfo {
name: "availability",
is_optional: false,
is_list: false,
description: Some(
"Percentage of file pieces currently available",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "category",
description: "Category of the torrent",
return_type: String(
TypeInfo {
name: "category",
is_optional: false,
is_list: false,
description: Some(
"Category of the torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "completed",
description: "Amount of transfer data completed (bytes)",
return_type: Number(
TypeInfo {
name: "completed",
is_optional: false,
is_list: false,
description: Some(
"Amount of transfer data completed (bytes)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "completion_on",
description: "Time (Unix Epoch) when the torrent completed",
return_type: Number(
TypeInfo {
name: "completion_on",
is_optional: false,
is_list: false,
description: Some(
"Time (Unix Epoch) when the torrent completed",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "content_path",
description: "Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
return_type: String(
TypeInfo {
name: "content_path",
is_optional: false,
is_list: false,
description: Some(
"Absolute path of torrent content (root path for multifile torrents, absolute file path for singlefile torrents)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dl_limit",
description: "Torrent download speed limit (bytes/s). -1 if ulimited.",
return_type: Number(
TypeInfo {
name: "dl_limit",
is_optional: false,
is_list: false,
description: Some(
"Torrent download speed limit (bytes/s). -1 if ulimited.",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "dlspeed",
description: "Torrent download speed (bytes/s)",
return_type: Number(
TypeInfo {
name: "dlspeed",
is_optional: false,
is_list: false,
description: Some(
"Torrent download speed (bytes/s)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "downloaded",
description: "Amount of data downloaded",
return_type: Number(
TypeInfo {
name: "downloaded",
is_optional: false,
is_list: false,
description: Some(
"Amount of data downloaded",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "downloaded_session",
description: "Amount of data downloaded this session",
return_type: Number(
TypeInfo {
name: "downloaded_session",
is_optional: false,
is_list: false,
description: Some(
"Amount of data downloaded this session",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "eta",
description: "Torrent ETA (seconds)",
return_type: Number(
TypeInfo {
name: "eta",
is_optional: false,
is_list: false,
description: Some(
"Torrent ETA (seconds)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "f_l_piece_prio",
description: "True if first last piece are prioritized",
return_type: Bool(
TypeInfo {
name: "f_l_piece_prio",
is_optional: false,
is_list: false,
description: Some(
"True if first last piece are prioritized",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "force_start",
description: "True if force start is enabled for this torrent",
return_type: Bool(
TypeInfo {
name: "force_start",
is_optional: false,
is_list: false,
description: Some(
"True if force start is enabled for this torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "hash",
description: "Torrent hash",
return_type: String(
TypeInfo {
name: "hash",
is_optional: false,
is_list: false,
description: Some(
"Torrent hash",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "last_activity",
description: "Last time (Unix Epoch) when a chunk was downloaded/uploaded",
return_type: Number(
TypeInfo {
name: "last_activity",
is_optional: false,
is_list: false,
description: Some(
"Last time (Unix Epoch) when a chunk was downloaded/uploaded",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "magnet_uri",
description: "Magnet URI corresponding to this torrent",
return_type: String(
TypeInfo {
name: "magnet_uri",
is_optional: false,
is_list: false,
description: Some(
"Magnet URI corresponding to this torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_ratio",
description: "Maximum share ratio until torrent is stopped from seeding/uploading",
return_type: Float(
TypeInfo {
name: "max_ratio",
is_optional: false,
is_list: false,
description: Some(
"Maximum share ratio until torrent is stopped from seeding/uploading",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "max_seeding_time",
description: "Maximum seeding time (seconds) until torrent is stopped from seeding",
return_type: Number(
TypeInfo {
name: "max_seeding_time",
is_optional: false,
is_list: false,
description: Some(
"Maximum seeding time (seconds) until torrent is stopped from seeding",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "name",
description: "Torrent name",
return_type: String(
TypeInfo {
name: "name",
is_optional: false,
is_list: false,
description: Some(
"Torrent name",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_complete",
description: "Number of seeds in the swarm",
return_type: Number(
TypeInfo {
name: "num_complete",
is_optional: false,
is_list: false,
description: Some(
"Number of seeds in the swarm",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_incomplete",
description: "Number of leechers in the swarm",
return_type: Number(
TypeInfo {
name: "num_incomplete",
is_optional: false,
is_list: false,
description: Some(
"Number of leechers in the swarm",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_leechs",
description: "Number of leechers connected to",
return_type: Number(
TypeInfo {
name: "num_leechs",
is_optional: false,
is_list: false,
description: Some(
"Number of leechers connected to",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_seeds",
description: "Number of seeds connected to",
return_type: Number(
TypeInfo {
name: "num_seeds",
is_optional: false,
is_list: false,
description: Some(
"Number of seeds connected to",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "priority",
description: "Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
return_type: Number(
TypeInfo {
name: "priority",
is_optional: false,
is_list: false,
description: Some(
"Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "progress",
description: "Torrent progress (percentage/100)",
return_type: Float(
TypeInfo {
name: "progress",
is_optional: false,
is_list: false,
description: Some(
"Torrent progress (percentage/100)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ratio",
description: "Torrent share ratio. Max ratio value: 9999.",
return_type: Float(
TypeInfo {
name: "ratio",
is_optional: false,
is_list: false,
description: Some(
"Torrent share ratio. Max ratio value: 9999.",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "ratio_limit",
description: "TODO (what is different from max_ratio?)",
return_type: Float(
TypeInfo {
name: "ratio_limit",
is_optional: false,
is_list: false,
description: Some(
"TODO (what is different from max_ratio?)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "save_path",
description: "Path where this torrent's data is stored",
return_type: String(
TypeInfo {
name: "save_path",
is_optional: false,
is_list: false,
description: Some(
"Path where this torrent's data is stored",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "seeding_time",
description: "Torrent elapsed time while complete (seconds)",
return_type: Number(
TypeInfo {
name: "seeding_time",
is_optional: false,
is_list: false,
description: Some(
"Torrent elapsed time while complete (seconds)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "seeding_time_limit",
description: "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.",
return_type: Number(
TypeInfo {
name: "seeding_time_limit",
is_optional: false,
is_list: false,
description: Some(
"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.",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "seen_complete",
description: "Time (Unix Epoch) when this torrent was last seen complete",
return_type: Number(
TypeInfo {
name: "seen_complete",
is_optional: false,
is_list: false,
description: Some(
"Time (Unix Epoch) when this torrent was last seen complete",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "seq_dl",
description: "True if sequential download is enabled",
return_type: Bool(
TypeInfo {
name: "seq_dl",
is_optional: false,
is_list: false,
description: Some(
"True if sequential download is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "size",
description: "Total size (bytes) of files selected for download",
return_type: Number(
TypeInfo {
name: "size",
is_optional: false,
is_list: false,
description: Some(
"Total size (bytes) of files selected for download",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "state",
description: "Torrent state. See table here below for the possible values",
return_type: String(
TypeInfo {
name: "state",
is_optional: false,
is_list: false,
description: Some(
"Torrent state. See table here below for the possible values",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "error",
description: "Some error occurred, applies to paused torrents",
},
TypeDescriptions {
value: "missingFiles",
description: "Torrent data files is missing",
},
TypeDescriptions {
value: "uploading",
description: "Torrent is being seeded and data is being transferred",
},
TypeDescriptions {
value: "pausedUP",
description: "Torrent is paused and has finished downloading",
},
TypeDescriptions {
value: "queuedUP",
description: "Queuing is enabled and torrent is queued for upload",
},
TypeDescriptions {
value: "stalledUP",
description: "Torrent is being seeded, but no connection were made",
},
TypeDescriptions {
value: "checkingUP",
description: "Torrent has finished downloading and is being checked",
},
TypeDescriptions {
value: "forcedUP",
description: "Torrent is forced to uploading and ignore queue limit",
},
TypeDescriptions {
value: "allocating",
description: "Torrent is allocating disk space for download",
},
TypeDescriptions {
value: "downloading",
description: "Torrent is being downloaded and data is being transferred",
},
TypeDescriptions {
value: "metaDL",
description: "Torrent has just started downloading and is fetching metadata",
},
TypeDescriptions {
value: "pausedDL",
description: "Torrent is paused and has NOT finished downloading",
},
TypeDescriptions {
value: "queuedDL",
description: "Queuing is enabled and torrent is queued for download",
},
TypeDescriptions {
value: "stalledDL",
description: "Torrent is being downloaded, but no connection were made",
},
TypeDescriptions {
value: "checkingDL",
description: "Same as checkingUP, but torrent has NOT finished downloading",
},
TypeDescriptions {
value: "forcedDL",
description: "Torrent is forced to downloading to ignore queue limit",
},
TypeDescriptions {
value: "checkingResumeData",
description: "Checking resume data on qBt startup",
},
TypeDescriptions {
value: "moving",
description: "Torrent is moving to another location",
},
TypeDescriptions {
value: "unknown",
description: "Unknown status",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "super_seeding",
description: "True if super seeding is enabled",
return_type: Bool(
TypeInfo {
name: "super_seeding",
is_optional: false,
is_list: false,
description: Some(
"True if super seeding is enabled",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "tags",
description: "Comma-concatenated tag list of the torrent",
return_type: String(
TypeInfo {
name: "tags",
is_optional: false,
is_list: false,
description: Some(
"Comma-concatenated tag list of the torrent",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "time_active",
description: "Total active time (seconds)",
return_type: Number(
TypeInfo {
name: "time_active",
is_optional: false,
is_list: false,
description: Some(
"Total active time (seconds)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "total_size",
description: "Total size (bytes) of all file in this torrent (including unselected ones)",
return_type: Number(
TypeInfo {
name: "total_size",
is_optional: false,
is_list: false,
description: Some(
"Total size (bytes) of all file in this torrent (including unselected ones)",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "tracker",
description: "The first tracker with working status. Returns empty string if no tracker is working.",
return_type: String(
TypeInfo {
name: "tracker",
is_optional: false,
is_list: false,
description: Some(
"The first tracker with working status. Returns empty string if no tracker is working.",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "up_limit",
description: "Torrent upload speed limit (bytes/s). -1 if ulimited.",
return_type: Number(
TypeInfo {
name: "up_limit",
is_optional: false,
is_list: false,
description: Some(
"Torrent upload speed limit (bytes/s). -1 if ulimited.",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "uploaded",
description: "Amount of data uploaded",
return_type: Number(
TypeInfo {
name: "uploaded",
is_optional: false,
is_list: false,
description: Some(
"Amount of data uploaded",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "uploaded_session",
description: "Amount of data uploaded this session",
"The response is:\n\n- empty, if the torrent hash is invalid\n- otherwise, a JSON object with the following fields\n\n\nNB: `-1` is returned if the type of the property is integer but its value is not known.\n\nExample:\n\n```JSON\n{\n \"addition_date\":1438429165,\n \"comment\":\"\\\"Debian CD from cdimage.debian.org\\\"\",\n \"completion_date\":1438429234,\n \"created_by\":\"\",\n \"creation_date\":1433605214,\n \"dl_limit\":-1,\n \"dl_speed\":0,\n \"dl_speed_avg\":9736015,\n \"eta\":8640000,\n \"last_seen\":1438430354,\n \"nb_connections\":3,\n \"nb_connections_limit\":250,\n \"peers\":1,\n \"peers_total\":89,\n \"piece_size\":524288,\n \"pieces_have\":1254,\n \"pieces_num\":1254,\n \"reannounce\":672,\n \"save_path\":\"/Downloads/debian-8.1.0-amd64-CD-1.iso\",\n \"seeding_time\":1128,\n \"seeds\":1,\n \"seeds_total\":254,\n \"share_ratio\":0.00072121022562178299,\n \"time_elapsed\":1197,\n \"total_downloaded\":681521119,\n \"total_downloaded_session\":681521119,\n \"total_size\":657457152,\n \"total_uploaded\":491520,\n \"total_uploaded_session\":491520,\n \"total_wasted\":23481724,\n \"up_limit\":-1,\n \"up_speed\":0,\n \"up_speed_avg\":410\n}\n```",
"The response is a JSON array, where each element contains info about one tracker, with the following fields\n\n\nPossible values of `status`:\n\n\nExample:\n\n```JSON\n[\n {\n \"msg\":\"\",\n \"num_peers\":100,\n \"status\":2,\n \"url\":\"http://bttracker.debian.org:6969/announce\"\n },\n {\n another_tracker_info\n }\n]\n```",
description: "Tracker status. See the table below for possible values",
return_type: Number(
TypeInfo {
name: "status",
is_optional: false,
is_list: false,
description: Some(
"Tracker status. See the table below for possible values",
),
type_description: Some(
TypeDescription {
values: [
TypeDescriptions {
value: "0",
description: "Tracker is disabled (used for DHT, PeX, and LSD)",
},
TypeDescriptions {
value: "1",
description: "Tracker has not been contacted yet",
},
TypeDescriptions {
value: "2",
description: "Tracker has been contacted and is working",
},
TypeDescriptions {
value: "3",
description: "Tracker is updating",
},
TypeDescriptions {
value: "4",
description: "Tracker has been contacted, but it is not working (or doesn't send proper replies)",
},
],
},
),
},
),
},
ReturnTypeParameter {
name: "tier",
description: "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).",
return_type: Number(
TypeInfo {
name: "tier",
is_optional: false,
is_list: false,
description: Some(
"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).",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_peers",
description: "Number of peers for current torrent, as reported by the tracker",
return_type: Number(
TypeInfo {
name: "num_peers",
is_optional: false,
is_list: false,
description: Some(
"Number of peers for current torrent, as reported by the tracker",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_seeds",
description: "Number of seeds for current torrent, asreported by the tracker",
return_type: Number(
TypeInfo {
name: "num_seeds",
is_optional: false,
is_list: false,
description: Some(
"Number of seeds for current torrent, asreported by the tracker",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_leeches",
description: "Number of leeches for current torrent, as reported by the tracker",
return_type: Number(
TypeInfo {
name: "num_leeches",
is_optional: false,
is_list: false,
description: Some(
"Number of leeches for current torrent, as reported by the tracker",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "num_downloaded",
description: "Number of completed downlods for current torrent, as reported by the tracker",
return_type: Number(
TypeInfo {
name: "num_downloaded",
is_optional: false,
is_list: false,
description: Some(
"Number of completed downlods for current torrent, as reported by the tracker",
),
type_description: None,
},
),
},
ReturnTypeParameter {
name: "msg",
description: "Tracker message (there is no way of knowing what this message is - it's up to tracker admins)",
return_type: String(
TypeInfo {
name: "msg",
is_optional: false,
is_list: false,
description: Some(
"Tracker message (there is no way of knowing what this message is - it's up to tracker admins)",
"The response is a JSON array, where each element is information about one webseed, with the following fields\n\n\nExample:\n\n```JSON\n[\n {\n \"url\":\"http://some_url/\"\n },\n {\n \"url\":\"http://some_other_url/\"\n }\n]\n```",
"The response is:\n\n- empty, if the torrent hash is invalid\n- otherwise, a JSON array, where each element contains info about one file, with the following fields\n\n\nPossible values of `priority`:\n\n\nExample:\n\n```JSON\n\n[\n {\n \"index\":0,\n \"is_seed\":false,\n \"name\":\"debian-8.1.0-amd64-CD-1.iso\",\n \"piece_range\":[0,1253],\n \"priority\":1,\n \"progress\":0,\n \"size\":657457152,\n \"availability\":0.5,\n }\n]\n```",
"The response is:\n\n- empty, if the torrent hash is invalid\n- otherwise, an array of states (integers) of all pieces (in order) of a specific torrent.\n\nValue meanings are defined as below:\n\n\nExample:\n\n```JSON\n[0,0,2,1,0,0,2,1]\n```",
"The response is:\n\n- empty, if the torrent hash is invalid\n- otherwise, an array of hashes (strings) of all pieces (in order) of a specific torrent.\n\nExample:\n\n```JSON\n[\"54eddd830a5b58480a6143d616a97e3a6c23c439\",\"f8a99d225aa4241db100f88407fc3bdaead583ab\",\"928fb615b9bd4dd8f9e9022552c8f8f37ef76f58\"]\n```",
"The response is a JSON array of objects containing the following fields\n\n\nExample:\n\n```JSON\n[\n {\n \"id\": 12345,\n \"status\": \"Running\",\n \"total\": 170\n }\n]\n```",
"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 \\",