-
-
Notifications
You must be signed in to change notification settings - Fork 4k
WebUI API (qBittorrent v3.2.0 v4.0.4)
This WebUI API documentation applies to qBittorrent v3.2.0-v4.0.4. For other API versions, visit WebUI API.
- Changes
- Authorization
-
GET methods
- Get API version
- Get minimum API version
- Get qBittorrent version
- Shutdown qBittorrent
- Get torrent list
- Get torrent generic properties
- Get torrent trackers
- Get torrent web seeds
- Get torrent contents
- Get torrent pieces' states
- Get torrent pieces' hashes
- Get global transfer info
- Get qBittorrent preferences
- Get partial data
- Get log
-
POST methods
- Download torrent from URL
- Upload torrent from disk
- Add trackers to torrent
- Pause torrent
- Pause all torrents
- Resume torrent
- Resume all torrents
- Delete torrent
- Delete torrent with downloaded data
- Recheck torrent
- Increase torrent priority
- Decrease torrent priority
- Maximal torrent priority
- Minimal torrent priority
- Set file priority
- Get global download limit
- Set global download limit
- Get global upload limit
- Set global upload limit
- Get torrent download limit
- Set torrent download limit
- Get torrent upload limit
- Set torrent upload limit
- Set torrent location
- Set torrent name
- Set torrent category
- Add new category
- Remove categories
- Set automatic torrent management
- Set qBittorrent preferences
- Get alternative speed limits state
- Toggle alternative speed limits
- Toggle sequential download
- Set first/last piece priority
- Set force start
- Set super seeding
- Pause all the torrents
- Resume all the torrents
APIX
, where X
is a number representing the API version, specifies the first API version in which the marked entry is available.
APIX-APIY
, where X
and Y
are two different API versions, represents a range where APIX
and APIY
are respectively the first and last API version in which the marked entry is available.
API2
is implied and not reported.
-
Changes in
API2
:- The authentication is now cookie based
- Sizes are expressed in bytes, speed rates in bytes per seconds, dates as unix timestamps and are all reported as integers with no hardcoded unit
-
/json/
was replaced with/query/
in all the requests -
/command/getTorrentUpLimit|getTorrentDlLimit|setTorrentUpLimit|setTorrentDlLimit
were replaced by/command/getTorrentsUpLimit|getTorrentsDlLimit|setTorrentsUpLimit|setTorrentsDlLimit
to handle multiple torrents - URIs/parameters are case sensitive
- The server replies with an error in case of bad requests, unless differently stated.
-
Changes between
API3
andAPI4
:-
application/json
is the MIME type of the replies that hadtext/javascript
as MIME type.
-
-
Changes in
API14
:- The
Referer
header is now expected in all HTTP requests. qBittorrent will drop any request sent without the referer header.
- The
qBittorrent uses a cookie based authentication.
POST /login HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: length
username=admin&password=admin
Server reply (example):
Content-Length: 3
Content-Type: text/plain; charset=UTF-8
Set-Cookie: SID=3133exaykXDX0mUQRDukIr9YUi0EchFY; path=/
You must supply the cookie whenever you want to perform an operation that requires authentication.
Example showing how to login and execute a command that requires authentication using curl
:
$ curl -i --header 'Referer: http://localhost:8080' --data 'username=admin&password=adminadmin' http://localhost:8080/login
HTTP/1.1 200 OK
Content-Encoding:
Content-Length: 3
Content-Type: text/plain; charset=UTF-8
Set-Cookie: SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ; path=/
$ curl http://localhost:8080/query/torrents --cookie "SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ"
Note: Set Referer
or Origin
header to the exact same domain and port as used in the HTTP query Host
header.
POST /logout HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Get the current API version
GET /version/api HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Server reply (example):
HTTP/1.1 200 OK
Content-Encoding:
Content-Length: 1
Content-Type: text/plain; charset=UTF-8
2
Get the minimum API version supported. Any application designed to work with an API version greater than or equal to the minimum API version is guaranteed to work.
GET /version/api_min HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Server reply (example):
HTTP/1.1 200 OK
Content-Encoding:
Content-Length: 1
Content-Type: text/plain; charset=UTF-8
2
GET /version/qbittorrent HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Server reply (example):
HTTP/1.1 200 OK
Content-Encoding:
Content-Length: 1
Content-Type: text/plain; charset=UTF-8
v3.2.0
GET /command/shutdown HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Server reply (example):
HTTP/1.1 200 OK
Content-Encoding:
GET /query/torrents HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Params:
Param | Description |
---|---|
filter |
Filter torrent list. Allowed filters: all , downloading , completed , paused , active , inactive
|
category |
Get torrents with the given category (empty string means "without category"; no "category" param means "any category") |
sort |
Sort torrents by given key. All the possible keys are listed here below |
reverse |
Enable reverse sorting. Possible values are true and false (default) |
limit |
Limit the number of torrents returned |
offset |
Set offset (if less than 0, offset from end) |
hashes |
Filter by hashes. Can contain multiple hashes separated by |
|
Example:
/query/torrents?filter=downloading&category=sample%20category&sort=ratio
Server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[{"dlspeed":9681262,"eta":87,"f_l_piece_prio":false,"force_start":false,"hash":"8c212779b4abde7c6bc608063a0d008b7e40ce32","category":"","name":"debian-8.1.0-amd64-CD-1.iso","num_complete":-1,"num_incomplete":-1,"num_leechs":2,"num_seeds":54,"priority":1,"progress":0.16108787059783936,"ratio":0,"seq_dl":false,"size":657457152,"state":"downloading","super_seeding":false,"upspeed":0},{another_torrent_info}]
Property | Type | Description |
---|---|---|
hash |
string | Torrent hash |
name |
string | Torrent name |
size |
integer | Total size (bytes) of files selected for download |
progress |
float | Torrent progress (percentage/100) |
dlspeed |
integer | Torrent download speed (bytes/s) |
upspeed |
integer | Torrent upload speed (bytes/s) |
priority |
integer | Torrent priority. Returns -1 if queuing is disabled or torrent is in seed mode |
num_seeds |
integer | Number of seeds connected to |
num_complete |
integer | Number of seeds in the swarm |
num_leechs |
integer | Number of leechers connected to |
num_incomplete |
integer | Number of leechers in the swarm |
ratio |
float | Torrent share ratio. Max ratio value: 9999. |
eta |
integer | Torrent ETA (seconds) |
state |
string | Torrent state. See table here below for the possible values |
seq_dl |
bool | True if sequential download is enabled |
f_l_piece_prio |
bool | True if first last piece are prioritized |
category |
string | Category of the torrent |
super_seeding |
bool | True if super seeding is enabled |
force_start |
bool | True if force start is enabled for this torrent |
Possible values of state
:
Value | Description |
---|---|
error |
Some error occurred, applies to paused torrents |
pausedUP |
Torrent is paused and has finished downloading |
pausedDL |
Torrent is paused and has NOT finished downloading |
queuedUP |
Queuing is enabled and torrent is queued for upload |
queuedDL |
Queuing is enabled and torrent is queued for download |
uploading |
Torrent is being seeded and data is being transferred |
stalledUP |
Torrent is being seeded, but no connection were made |
checkingUP |
Torrent has finished downloading and is being checked; this status also applies to preallocation (if enabled) and checking resume data on qBt startup |
checkingDL |
Same as checkingUP, but torrent has NOT finished downloading |
downloading |
Torrent is being downloaded and data is being transferred |
stalledDL |
Torrent is being downloaded, but no connection were made |
metaDL |
Torrent has just started downloading and is fetching metadata |
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/propertiesGeneral/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
If your torrent hash is invalid server will reply with:
HTTP/1.1 200 OK
content-type: application/json
content-length: 0
Otherwise server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"addition_date":1438429165,"comment":"\"Debian CD from cdimage.debian.org\"","completion_date":1438429234,"created_by":"","creation_date":1433605214,"dl_limit":-1,"dl_speed":0,"dl_speed_avg":9736015,"eta":8640000,"last_seen":1438430354,"nb_connections":3,"nb_connections_limit":250,"peers":1,"peers_total":89,"piece_size":524288,"pieces_have":1254,"pieces_num":1254,"reannounce":672,"save_path":"/Downloads/debian-8.1.0-amd64-CD-1.iso","seeding_time":1128,"seeds":1,"seeds_total":254,"share_ratio":0.00072121022562178299,"time_elapsed":1197,"total_downloaded":681521119,"total_downloaded_session":681521119,"total_size":657457152,"total_uploaded":491520,"total_uploaded_session":491520,"total_wasted":23481724,"up_limit":-1,"up_speed":0,"up_speed_avg":410}
Property | Type | Description |
---|---|---|
save_path |
string | Torrent save path |
creation_date |
integer | Torrent creation date (Unix timestamp) |
piece_size |
integer | Torrent piece size (bytes) |
comment |
string | Torrent comment |
total_wasted |
integer | Total data wasted for torrent (bytes) |
total_uploaded |
integer | Total data uploaded for torrent (bytes) |
total_uploaded_session |
integer | Total data uploaded this session (bytes) |
total_downloaded |
integer | Total data uploaded for torrent (bytes) |
total_downloaded_session |
integer | Total data downloaded this session (bytes) |
up_limit |
integer | Torrent upload limit (bytes/s) |
dl_limit |
integer | Torrent download limit (bytes/s) |
time_elapsed |
integer | Torrent elapsed time (seconds) |
seeding_time |
integer | Torrent elapsed time while complete (seconds) |
nb_connections |
integer | Torrent connection count |
nb_connections_limit |
integer | Torrent connection count limit |
share_ratio |
float | Torrent share ratio |
addition_date API4
|
integer | When this torrent was added (unix timestamp) |
completion_date API4
|
integer | Torrent completion date (unix timestamp) |
created_by API4
|
string | Torrent creator |
dl_speed_avg API4
|
integer | Torrent average download speed (bytes/second) |
dl_speed API4
|
integer | Torrent download speed (bytes/second) |
eta API4
|
integer | Torrent ETA (seconds) |
last_seen API4
|
integer | Last seen complete date (unix timestamp) |
peers API4
|
integer | Number of peers connected to |
peers_total API4
|
integer | Number of peers in the swarm |
pieces_have API4
|
integer | Number of pieces owned |
pieces_num API4
|
integer | Number of pieces of the torrent |
reannounce API4
|
integer | Number of seconds until the next announce |
seeds API4
|
integer | Number of seeds connected to |
seeds_total API4
|
integer | Number of seeds in the swarm |
total_size API4
|
integer | Torrent total size (bytes) |
up_speed_avg API4
|
integer | Torrent average upload speed (bytes/second) |
up_speed API4
|
integer | Torrent upload speed (bytes/second) |
NB: -1
is returned when the value is not known if the type is integer.
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/propertiesTrackers/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
If your torrent hash is invalid server will reply with:
HTTP/1.1 200 OK
content-type: application/json
content-length: 2
Otherwise server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[{"msg":"","num_peers":100,"status":"Working","url":"http://bttracker.debian.org:6969/announce"},{another_tracker_info}]
Property | Type | Description |
---|---|---|
url |
string | Tracker url |
status |
string | Tracker status (translated string). See the table here below for the possible values |
num_peers |
integer | Number of peers for current torrent reported by the tracker |
msg |
string | Tracker message (there is no way of knowing what this message is - it's up to tracker admins) |
Possible values of status
(translated):
Value | Description |
---|---|
Working |
Tracker has been contacted and is working |
Updating... |
Tracker is currently being updated |
Not working |
Tracker has been contacted, but it is not working (or doesn't send proper replies) |
Not contacted yet |
Tracker has not been contacted yet |
API3
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/propertiesWebSeeds/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[{"url":"http://some_url/"},{"url":"http://some_other_url/"}]
Property | Type | Description |
---|---|---|
url |
string | URL of the web seed |
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/propertiesFiles/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
If your torrent hash is invalid server will reply with:
HTTP/1.1 200 OK
content-type: application/json
content-length: 0
Otherwise server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[{"is_seed":false,"name":"debian-8.1.0-amd64-CD-1.iso","piece_range":[0,1253],"priority":4,"progress":0,"size":657457152}]
Property | Type | Description |
---|---|---|
name |
string | File name (including relative path) |
size |
integer | File size (bytes) |
progress |
float | File progress (percentage/100) |
priority |
integer | File priority. See possible values here below |
is_seed |
bool | True if file is seeding/complete |
piece_range |
integer array | The first number is the starting piece index and the second number is the ending piece index (inclusive) |
Possible values of priority
:
Value | Description |
---|---|
0 |
Do not download |
1 |
Normal priority |
6 |
High priority |
7 |
Maximal priority |
Returns an array of states (integers) of all pieces (in order) of a specific torrent.
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/getPieceStates/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
If your torrent hash is invalid server will reply with:
HTTP/1.1 200 OK
content-type: application/json
content-length: 0
Otherwise server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[0,0,2,1,0,0,2,1]
Value meanings are defined as below:
Value | Description |
---|---|
0 |
Not downloaded yet |
1 |
Now downloading |
2 |
Already downloaded |
Returns an array of hashes (strings) of all pieces (in order) of a specific torrent.
Requires knowing the torrent hash. You can get it from torrent list.
GET /query/getPieceHashes/8c212779b4abde7c6bc608063a0d008b7e40ce32 HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
If your torrent hash is invalid server will reply with:
HTTP/1.1 200 OK
content-type: application/json
content-length: 0
Otherwise server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
["54eddd830a5b58480a6143d616a97e3a6c23c439","f8a99d225aa4241db100f88407fc3bdaead583ab","928fb615b9bd4dd8f9e9022552c8f8f37ef76f58"]
This method returns info you usually see in qBt status bar.
GET /query/transferInfo HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Server reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"connection_status":"connected","dht_nodes":386,"dl_info_data":681521119,"dl_info_speed":0,"dl_rate_limit":0,"up_info_data":10747904,"up_info_speed":0,"up_rate_limit":1048576}
Property | Type | Description |
---|---|---|
dl_info_speed |
integer | Global download rate (bytes/s) |
dl_info_data |
integer | Data downloaded this session (bytes) |
up_info_speed |
integer | Global upload rate (bytes/s) |
up_info_data |
integer | Data uploaded this session (bytes) |
dl_rate_limit |
integer | Download rate limit (bytes/s) |
up_rate_limit |
integer | Upload rate limit (bytes/s) |
dht_nodes |
integer | DHT nodes connected to |
connection_status |
string | Connection status. See possible values here below |
In addition to the above in partial data requests (see Get partial data for more info):
Property | Type | Description |
---|---|---|
queueing |
bool | True if torrent queueing is enabled |
use_alt_speed_limits |
bool | True if alternative speed limits are enabled |
refresh_interval |
integer | Transfer list refresh interval (milliseconds) |
Possible values of connection_status
:
Value |
---|
connected |
firewalled |
disconnected |
GET /query/preferences HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Server reply; contents may vary depending on which settings are present in qBittorrent.ini (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"locale":"ru_RU","save_path":"C:/Users/Dayman/Downloads","temp_path_enabled":false,"temp_path":"C:/Users/Dayman/Documents/Downloads/temp","scan_dirs":["D:/Browser Downloads"],"download_in_scan_dirs":[false],"export_dir_enabled":false,"export_dir":"","mail_notification_enabled":false,"mail_notification_email":"","mail_notification_smtp":"smtp.changeme.com","mail_notification_ssl_enabled":false,"mail_notification_auth_enabled":false,"mail_notification_username":"","mail_notification_password":"","autorun_enabled":false,"autorun_program":"","preallocate_all":false,"queueing_enabled":true,"max_active_downloads":2,"max_active_torrents":200,"max_active_uploads":200,"dont_count_slow_torrents":false,"incomplete_files_ext":false,"listen_port":31498,"upnp":false,"dl_limit":3072,"up_limit":3072,"max_connec":500,"max_connec_per_torrent":100,"max_uploads_per_torrent":15,"enable_utp":true,"limit_utp_rate":false,"limit_tcp_overhead":true,"alt_dl_limit":1024,"alt_up_limit":2048,"scheduler_enabled":false,"schedule_from_hour":8,"schedule_from_min":0,"schedule_to_hour":20,"schedule_to_min":0,"scheduler_days":0,"dht":true,"dhtSameAsBT":true,"dht_port":6881,"pex":true,"lsd":true,"encryption":0,"anonymous_mode":false,"proxy_type":-1,"proxy_ip":"0.0.0.0","proxy_port":8080,"proxy_peer_connections":false,"proxy_auth_enabled":false,"proxy_username":"","proxy_password":"","ip_filter_enabled":false,"ip_filter_path":null,"web_ui_port":80,"web_ui_username":"admin","web_ui_password":"8888efb275743684292cff99f57867a9","bypass_local_auth":false,"use_https":false,"ssl_key":"","ssl_cert":"","dyndns_enabled":false,"dyndns_service":0,"dyndns_username":"","dyndns_password":"","dyndns_domain":"changeme.dyndns.org"}
where
Property | Type | Description |
---|---|---|
locale |
string | Currently selected language (e.g. en_GB for English) |
save_path |
string | Default save path for torrents, separated by slashes |
temp_path_enabled |
bool | True if folder for incomplete torrents is enabled |
temp_path |
string | Path for incomplete torrents, separated by slashes |
scan_dirs |
string | List of watch folders to add torrent automatically; slashes are used as path separators; list entries are separated by commas |
download_in_scan_dirs |
bool | True if torrents should be downloaded to watch folder; list entries are separated by commas |
export_dir_enabled |
bool | True if .torrent file should be copied to export directory upon adding |
export_dir |
string | Path to directory to copy .torrent files if export_dir_enabled is enabled; path is separated by slashes |
mail_notification_enabled |
bool | True if e-mail notification should be enabled |
mail_notification_email |
string | e-mail to send notifications to |
mail_notification_smtp |
string | smtp server for e-mail notifications |
mail_notification_ssl_enabled |
bool | True if smtp server requires SSL connection |
mail_notification_auth_enabled |
bool | True if smtp server requires authentication |
mail_notification_username |
string | Username for smtp authentication |
mail_notification_password |
string | Password for smtp authentication |
autorun_enabled |
bool | True if external program should be run after torrent has finished downloading |
autorun_program |
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 |
preallocate_all |
bool | True if file preallocation should take place, otherwise sparse files are used |
queueing_enabled |
bool | True if torrent queuing is enabled |
max_active_downloads |
integer | Maximum number of active simultaneous downloads |
max_active_torrents |
integer | Maximum number of active simultaneous downloads and uploads |
max_active_uploads |
integer | Maximum number of active simultaneous uploads |
dont_count_slow_torrents |
bool | If true torrents w/o any activity (stalled ones) will not be counted towards max_active_* limits; see dont_count_slow_torrents for more information |
max_ratio_enabled API3
|
bool | True if share ratio limit is enabled |
max_ratio API3
|
float | Get the global share ratio limit |
max_ratio_act API3
|
bool | Action performed when a torrent reaches the maximum share ratio. See list of possible values here below. |
incomplete_files_ext |
bool | If true .!qB extension will be appended to incomplete files |
listen_port |
integer | Port for incoming connections |
upnp |
bool | True if UPnP/NAT-PMP is enabled |
random_port API3
|
bool | True if the port is randomly selected |
dl_limit |
integer | Global download speed limit in KiB/s; -1 means no limit is applied |
up_limit |
integer | Global upload speed limit in KiB/s; -1 means no limit is applied |
max_connec |
integer | Maximum global number of simultaneous connections |
max_connec_per_torrent |
integer | Maximum number of simultaneous connections per torrent |
max_uploads API3
|
integer | Maximum number of upload slots |
max_uploads_per_torrent |
integer | Maximum number of upload slots per torrent |
enable_utp |
bool | True if uTP protocol should be enabled; this option is only available in qBittorent built against libtorrent version 0.16.X and higher |
limit_utp_rate |
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 |
limit_tcp_overhead |
bool | True if [du]l_limit should be applied to estimated TCP overhead (service data: e.g. packet headers) |
alt_dl_limit |
integer | Alternative global download speed limit in KiB/s |
alt_up_limit |
integer | Alternative global upload speed limit in KiB/s |
scheduler_enabled |
bool | True if alternative limits should be applied according to schedule |
schedule_from_hour |
integer | Scheduler starting hour |
schedule_from_min |
integer | Scheduler starting minute |
schedule_to_hour |
integer | Scheduler ending hour |
schedule_to_min |
integer | Scheduler ending minute |
scheduler_days |
integer | Scheduler days. See possible values here below |
dht |
bool | True if DHT is enabled |
dhtSameAsBT |
bool | True if DHT port should match TCP port |
dht_port |
integer | DHT port if dhtSameAsBT is false |
pex |
bool | True if PeX is enabled |
lsd |
bool | True if LSD is enabled |
encryption |
integer | See list of possible values here below |
anonymous_mode |
bool | If true anonymous mode will be enabled; read more here; this option is only available in qBittorent built against libtorrent version 0.16.X and higher |
proxy_type |
integer | See list of possible values here below |
proxy_ip |
string | Proxy IP address or domain name |
proxy_port |
integer | Proxy port |
proxy_peer_connections |
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 |
force_proxy API3
|
bool | True if the connections not supported by the proxy are disabled |
proxy_auth_enabled |
bool | True proxy requires authentication; doesn't apply to SOCKS4 proxies |
proxy_username |
string | Username for proxy authentication |
proxy_password |
string | Password for proxy authentication |
ip_filter_enabled |
bool | True if external IP filter should be enabled |
ip_filter_path |
string | Path to IP filter file (.dat, .p2p, .p2b files are supported); path is separated by slashes |
ip_filter_trackers API3
|
bool | True if IP filters are applied to trackers |
web_ui_port |
integer | WebUI port |
web_ui_upnp API4
|
bool | True if UPnP is used for the WebUI port |
web_ui_username |
string | WebUI username |
web_ui_password |
string | MD5 hash of WebUI password; hash is generated from the following string: username:Web UI Access:plain_text_web_ui_password
|
web_ui_csrf_protection_enabled |
bool | True if WebUI CSRF protection is enabled |
web_ui_clickjacking_protection_enabled |
bool | True if WebUI clickjacking protection is enabled |
bypass_local_auth |
bool | True if authentication challenge for loopback address (127.0.0.1) should be disabled |
bypass_auth_subnet_whitelist_enabled |
bool | True if webui authentication should be bypassed for clients whose ip resides within (at least) one of the subnets on the whitelist |
bypass_auth_subnet_whitelist |
string | (White)list of ipv4/ipv6 subnets for which webui authentication should be bypassed; list entries are separated by commas |
use_https |
bool | True if WebUI HTTPS access is enabled |
ssl_key |
string | SSL keyfile contents (this is a not a path) |
ssl_cert |
string | SSL certificate contents (this is a not a path) |
dyndns_enabled |
bool | True if server DNS should be updated dynamically |
dyndns_service |
integer | See list of possible values here below |
dyndns_username |
string | Username for DDNS service |
dyndns_password |
string | Password for DDNS service |
dyndns_domain |
string | Your DDNS domain name |
Possible values of scheduler_days
:
Value | Description |
---|---|
0 |
Every day |
1 |
Every weekday |
2 |
Every weekend |
3 |
Every Monday |
4 |
Every Tuesday |
5 |
Every Wednesday |
6 |
Every Thursday |
7 |
Every Friday |
8 |
Every Saturday |
9 |
Every Sunday |
Possible values of encryption
:
Value | Description |
---|---|
0 |
Prefer encryption |
1 |
Force encryption on |
2 |
Force encryption off |
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.
Possible values of proxy_type
:
Value | Description |
---|---|
-1 |
Proxy is disabled |
1 |
HTTP proxy without authentication |
2 |
SOCKS5 proxy without authentication |
3 |
HTTP proxy with authentication |
4 |
SOCKS5 proxy with authentication |
5 |
SOCKS4 proxy without authentication |
Possible values of dyndns_service
:
Value | Description |
---|---|
0 |
Use DyDNS |
1 |
Use NOIP |
Possible values of max_ratio_act
:
Value | Description |
---|---|
0 |
Pause torrent |
1 |
Remove torrent |
Request only for changes since the last request.
GET /sync/maindata HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Params:
Param | Description |
---|---|
rid |
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) |
Example:
http://127.0.0.1/sync/maindata?rid=14
Server reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"rid":15,"torrents":{"8c212779b4abde7c6bc608063a0d008b7e40ce32":{"state":"pausedUP"}}}
Property | Type | Description |
---|---|---|
rid |
integer | Response ID |
full_update |
bool | Whether the response contains all the data or partial data |
torrents |
object | Property: torrent hash, value: same as torrent list |
torrents_removed |
array | List of hashes of torrents removed since last request |
categories |
array | List of categories added since last request |
categories_removed |
array | List of categories removed since last request |
queueing |
bool | Priority system usage flag |
server_state |
object | Same as global transfer info |
GET /query/getLog HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Params:
Param | Type | Description |
---|---|---|
normal |
bool | Include normal messages (default: true ) |
info |
bool | Include info messages (default: true ) |
warning |
bool | Include warning messages (default: true ) |
critical |
bool | Include critical messages (default: true ) |
last_known_id |
integer | Exclude messages with "message id" <= last_known_id (default: -1 ) |
Example:
/query/getLog?normal=true&info=true&warning=true&critical=true&last_known_id=-1
Server will return the following reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
[{"id":0,"message":"qBittorrent v3.4.0 started","timestamp":1507969127860,"type":1},{"id":1,"message":"qBittorrent is trying to listen on any interface port: 19036","timestamp":1507969127869,"type":2},{"id":2,"message":"Peer ID: -qB3400-","timestamp":1507969127870,"type":1},{"id":3,"message":"HTTP User-Agent is 'qBittorrent/3.4.0'","timestamp":1507969127870,"type":1},{"id":4,"message":"DHT support [ON]","timestamp":1507969127871,"type":2},{"id":5,"message":"Local Peer Discovery support [ON]","timestamp":1507969127871,"type":2},{"id":6,"message":"PeX support [ON]","timestamp":1507969127871,"type":2},{"id":7,"message":"Anonymous mode [OFF]","timestamp":1507969127871,"type":2},{"id":8,"message":"Encryption support [ON]","timestamp":1507969127871,"type":2},{"id":9,"message":"Embedded Tracker [OFF]","timestamp":1507969127871,"type":2},{"id":10,"message":"UPnP / NAT-PMP support [ON]","timestamp":1507969127873,"type":2},{"id":11,"message":"Web UI: Now listening on port 8080","timestamp":1507969127883,"type":1},{"id":12,"message":"Options were saved successfully.","timestamp":1507969128055,"type":1},{"id":13,"message":"qBittorrent is successfully listening on interface :: port: TCP/19036","timestamp":1507969128270,"type":2},{"id":14,"message":"qBittorrent is successfully listening on interface 0.0.0.0 port: TCP/19036","timestamp":1507969128271,"type":2},{"id":15,"message":"qBittorrent is successfully listening on interface 0.0.0.0 port: UDP/19036","timestamp":1507969128272,"type":2}]
Property | Type | Description |
---|---|---|
id |
integer | ID of the message |
message |
string | Text of the message |
timestamp |
integer | Milliseconds since epoch |
type |
integer | Type of the message: Log::NORMAL: 1 , Log::INFO: 2 , Log::WARNING: 4 , Log::CRITICAL: 8
|
This method can add torrents from URLs. http://
, https://
, magnet:
and bc://bt/
links are supported.
After qBittorrent v3.3.1 API7
(included):
POST /command/download HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: multipart/form-data; boundary=---------------------------6688794727912
Content-Length: length
-----------------------------6688794727912
Content-Disposition: form-data; name="urls"
https://torcache.net/torrent/3B1A1469C180F447B77021074DBBCCAEF62611E7.torrent
https://torcache.net/torrent/3B1A1469C180F447B77021074DBBCCAEF62611E8.torrent
-----------------------------6688794727912
Content-Disposition: form-data; name="savepath"
C:/Users/qBit/Downloads
-----------------------------6688794727912
Content-Disposition: form-data; name="cookie"
ui=28979218048197
-----------------------------6688794727912
Content-Disposition: form-data; name="category"
movies
-----------------------------6688794727912
Content-Disposition: form-data; name="skip_checking"
true
-----------------------------6688794727912
Content-Disposition: form-data; name="paused"
true
-----------------------------6688794727912
Content-Disposition: form-data; name="root_folder"
true
-----------------------------6688794727912--
Property | Type | Description |
---|---|---|
urls |
string | URLs separated with newlines |
savepath |
string | (optional) Download folder |
cookie |
string | (optional) Cookie sent to download the .torrent file |
category |
string | (optional) Category for the torrent |
skip_checking API13
|
string | (optional) Skip hash checking. Possible values are true , false (default) |
paused API13
|
string | (optional) Add torrents in the paused state. Possible values are true , false (default) |
root_folder API15
|
string | (optional) Create the root folder. Possible values are true , false , unset (default) |
rename |
string | (optional) Rename torrent |
upLimit |
integer | (optional) Set torrent upload speed limit. Unit in bytes/second |
dlLimit |
integer | (optional) Set torrent download speed limit. Unit in bytes/second |
sequentialDownload |
string | (optional) Enable sequential download. Possible values are true , false (default) |
firstLastPiecePrio |
string | (optional) Prioritize download first last piece. Possible values are true , false (default) |
Before qBittorrent v3.3.1 API6
:
POST /command/download HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
urls=http://www.nyaa.eu/?page=download%26tid=305093%0Ahttp://www.nyaa.eu/?page=download%26tid=305255%0Amagnet:?xt=urn:btih:4c284ebef5bf0d967e2e174cfe825d9fb40ae5e1%26dn=QBittorrent+2.8.4+Win7+Vista+64+working+version%26tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%26tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%26tr=udp%3A%2F%2Ftracker.istole.it%3A6969%26tr=udp%3A%2F%2Ftracker.ccc.de%3A80
Please note that:
-
Content-Type: application/x-www-form-urlencoded
is required -
urls
contains a list of links; links are separated with%0A
(LF newline) - Links' contents must be escaped, e.g.
&
becomes%26
(don't know about other characters but ampersand MUST be escaped)
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Length: length
---------------------------acebdf13572468
Content-Disposition: form-data; name="torrents"; filename="8f18036b7a205c9347cb84a253975e12f7adddf2.torrent"
Content-Type: application/x-bittorrent
file_binary_data_goes_here
---------------------------acebdf13572468
Content-Disposition: form-data; name="torrents"; filename="UFS.torrent"
Content-Type: application/x-bittorrent
file_binary_data_goes_here
---------------------------acebdf13572468--
The above example will add two torrent files. file_binary_data_goes_here
represents raw data of torrent file (basically a byte array).
Property | Type | Description |
---|---|---|
torrents |
raw | Raw data of torrent file. torrents can be presented multiple times. |
savepath |
string | (optional) Download folder |
cookie |
string | (optional) Cookie sent to download the .torrent file |
category |
string | (optional) Category for the torrent |
skip_checking API13
|
string | (optional) Skip hash checking. Possible values are true , false (default) |
paused API13
|
string | (optional) Add torrents in the paused state. Possible values are true , false (default) |
root_folder API15
|
string | (optional) Create the root folder. Possible values are true , false , unset (default) |
rename |
string | (optional) Rename torrent |
upLimit |
integer | (optional) Set torrent upload speed limit. Unit in bytes/second |
dlLimit |
integer | (optional) Set torrent download speed limit. Unit in bytes/second |
sequentialDownload |
string | (optional) Enable sequential download. Possible values are true , false (default) |
firstLastPiecePrio |
string | (optional) Prioritize download first last piece. Possible values are true , false (default) |
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/addTrackers HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32&urls=http://192.168.0.1/announce%0Audp://192.168.0.1:3333/dummyAnnounce
This adds two trackers to torrent with hash 8c212779b4abde7c6bc608063a0d008b7e40ce32
. Note %0A
(aka LF newline) between trackers. Ampersand in tracker urls MUST be escaped.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/pause HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/pauseAll HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Length: 0
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/resume HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/resumeAll HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Length: 0
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/delete HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/deletePerm HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/recheck HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/increasePrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/decreasePrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/topPrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/bottomPrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setFilePrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32&id=0&priority=7
Please consult torrent contents API for possible priority
values. id
values coresspond to contents returned by torrent contents API, e.g. id=0
for first file, id=1
for second file, etc.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/getGlobalDlLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Length: 0
Server reply (example):
HTTP/1.1 200 OK
content-type: text/plain
content-length: length
3145728
3145728
is the value of current global download speed limit in bytes; this value will be zero if no limit is applied.
POST /command/setGlobalDlLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
limit=4194304
limit
is global download speed limit you want to set in bytes.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/getGlobalUpLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Length: 0
Server reply (example):
HTTP/1.1 200 OK
content-type: text/plain
content-length: length
3145728
3145728
is the value of current global upload speed limit in bytes; this value will be zero if no limit is applied.
POST /command/setGlobalUpLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
limit=4194304
limit
is global upload speed limit you want to set in bytes.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/getTorrentsDlLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0
hashes
can contain multiple hashes separated by |
Server reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"8c212779b4abde7c6bc608063a0d008b7e40ce32":338944,"284b83c9c7935002391129fd97f43db5d7cc2ba0":123}
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.
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setTorrentsDlLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&limit=131072
hashes
can contain multiple hashes separated by |
limit
is the download speed limit in bytes per second you want to set.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/getTorrentsUpLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0
hashes
can contain multiple hashes separated by |
Server reply (example):
HTTP/1.1 200 OK
content-type: application/json
content-length: length
{"8c212779b4abde7c6bc608063a0d008b7e40ce32":338944,"284b83c9c7935002391129fd97f43db5d7cc2ba0":123}
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.
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setTorrentsUpLimit HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&limit=131072
hashes
can contain multiple hashes separated by |
limit
is the upload speed limit in bytes per second you want to set.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setLocation HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&location=/mnt/nfs/media
hashes
can contain multiple hashes separated by |
location
is the location to download the torrent to. If the location doesn't exist, the torrent's location is unchanged.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/rename HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hash=8c212779b4abde7c6bc608063a0d008b7e40ce32&name=This%20is%20a%20test
If your torrent hash is invalid or the name is empty, the server will reply with:
HTTP/1.1 400 Incorrect torrent hash or name
Otherwise, the server will reply with:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setCategory HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&category=CategoryName
hashes
can contain multiple hashes separated by |
category
is the torrent category you want to set. If the category doesn't exist, a new category is created.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/addCategory HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
category=CategoryName
category
is the category you want to create.
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/removeCategories HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
categories=Category1%0ACategory2
categories
can contain multiple cateogies separated by \n
(%0A urlencoded)
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setAutoTMM HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32|284b83c9c7935002391129fd97f43db5d7cc2ba0&enable=true
hashes
can contain multiple hashes separated by |
enable
is a boolean, affects the torrents listed in hashes
, default is false
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
POST /command/setPreferences HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
json={"save_path":"C:/Users/Dayman/Downloads","queueing_enabled":false,"scan_dirs":["C:/Games","D:/Downloads"],"download_in_scan_dirs":[false,true]}
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
- There is no need to pass all possible preferences'
token:value
pairs if you only want to change one option - When setting preferences
scan_dirs
must always be accompanied withdownload_in_scan_dirs
- Paths in
scan_dirs
must exist, otherwise this option will have no effect - String values must be quoted; integer and boolean values must never be quoted
For a list of possible preference options see Get qBittorrent preferences
Get the state of the alternative speed limits. 1
is returned if enabled, 0
otherwise.
POST /command/alternativeSpeedLimitsEnabled HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Server reply (example):
HTTP/1.1 200 OK
content-type: text/plain
content-length: length
1
Toggle the state of the alternative speed limits
POST /command/toggleAlternativeSpeedLimits HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/toggleSequentialDownload HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/toggleFirstLastPiecePrio HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32
hashes
can contain multiple hashes separated by |
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setForceStart HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32&value=true
hashes
can contain multiple hashes separated by |
value
is a boolean, affects the torrents listed in hashes
, default is false
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/setSuperSeeding HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
hashes=8c212779b4abde7c6bc608063a0d008b7e40ce32&value=true
hashes
can contain multiple hashes separated by |
value
is a boolean, affects the torrents listed in hashes
, default is false
No matter if successful or not server will return the following reply:
HTTP/1.1 200 OK
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/pauseAll HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Requires knowing the torrent hash. You can get it from torrent list.
POST /command/resumeAll HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1
Cookie: SID=your_sid
Content-Type: application/x-www-form-urlencoded
Content-Length: length
- Installing qBittorrent
- Frequently Asked Questions (FAQ)
- qBittorrent options (current and deprecated)
- How to use qBittorrent as a tracker
- How to use portable mode
- Anonymous mode
- How to bind your vpn to prevent ip leaks
State | Version |
---|---|
Current | qBittorrent ≥ v4.1 |
Previous | qBittorrent v3.2.0 - v4.0.x |
Obsolete | qBittorrent < v3.2.0 |
- Let's Encrypt Certificates + Caddy2 Reverse Proxy
- Let's Encrypt certificates + NGINX reverse proxy - Linux
- Let's Encrypt certificates - Linux
- Self-signed SSL certificates - Linux
- Running qBittorrent without X server (WebUI only)
- Running qBittorrent without X server (WebUI only, systemd service set up, Ubuntu 15.04 or newer)
- OpenVPN and qBittorrent without X server
- Coding style
- Contributing
- How to write a search plugin
- Using VSCode for qBittorrent development
- Setup GDB with Qt pretty printers
- How to debug WebUI code