qbittorrent/WebAPI_Changelog.md
2026-10-30 12:10:00 +03:00

235 lines
16 KiB
Markdown

# WebAPI Changelog
## 2.17.0
* [#24955](https://github.com/qbittorrent/qBittorrent/pull/24955)
* `search/results` endpoint includes `engineFullName` (string) data as the display name of the engine
* [#25093](https://github.com/qbittorrent/qBittorrent/pull/25093)
* `torrents/info` and `sync/maindata` endpoints include `error` (string) data, the reason why the torrent is in `error` state (empty otherwise)
## 2.16.2
* [#24920](https://github.com/qbittorrent/qBittorrent/pull/24920)
* `app/preferences` endpoint includes `confirm_remove_all_tags` (bool) option
* `app/preferences` endpoint includes `confirm_remove_tracker_from_all_torrents` (bool) option
* `app/setPreferences` endpoint allows to set all of the above
* [#24918](https://github.com/qbittorrent/qBittorrent/pull/24918)
* `torrents/createCategory` and `torrents/editCategory` endpoints accept the following new parameters:
* `ratioLimit` (float) - the category share ratio limit; `-2` means use the global limit, `-1` means unlimited
* `seedingTimeLimit` (int) - the category seeding time limit in minutes; `-2` means use the global limit, `-1` means unlimited
* `inactiveSeedingTimeLimit` (int) - the category inactive seeding time limit in minutes; `-2` means use the global limit, `-1` means unlimited
* `shareLimitsMode` (string) - how the limits combine: `Default`, `MatchAny` or `MatchAll`
* `shareLimitAction` (string) - the action taken when a limit is reached: `Default`, `Stop`, `Remove`, `RemoveWithContent` or `EnableSuperSeeding`
* `torrents/editCategory` endpoint no longer requires the `savePath` parameter
* [#24891](https://github.com/qbittorrent/qBittorrent/pull/24891)
* `app/preferences` endpoint includes `i2p_inbound_length_variance` (int) option
* `app/preferences` endpoint includes `i2p_outbound_length_variance` (int) option
* `app/setPreferences` endpoint allows to set `i2p_inbound_length_variance` (int) option
* `app/setPreferences` endpoint allows to set `i2p_outbound_length_variance` (int) option
* [#24870](https://github.com/qbittorrent/qBittorrent/pull/24870)
* `app/preferences` endpoint includes `i2p_pex_enabled` (bool) option
* `app/setPreferences` endpoint allows to set `i2p_pex_enabled` (bool) option
* [#24842](https://github.com/qbittorrent/qBittorrent/pull/24842)
* Add JSON `rss/exportRules` and `rss/importRules` endpoints for RSS auto-download rules (`rss/importRules` accepts `POST` requests only)
* [#24269](https://github.com/qbittorrent/qBittorrent/pull/24269)
* Add `transfer/pauseSession` endpoint for pausing the session
* Add `transfer/resumeSession` endpoint for resuming the session
* `sync/maindata` endpoint includes `session_state` (bool) in `server_state`
## 2.16.1
* [#24837](https://github.com/qbittorrent/qBittorrent/pull/24837)
* `app/preferences` endpoint includes `webtorrent_stun_server` (string) option
* `app/setPreferences` endpoint allows to set `webtorrent_stun_server` (string) option
* [#23784](https://github.com/qbittorrent/qBittorrent/pull/23784)
* `search/status` endpoint now includes `pattern`, `category`, and `plugins` fields for each search job
* `app/preferences` endpoint now supports `store_search_jobs` and `store_search_job_results` preference keys
## 2.16.0
* [#24791](https://github.com/qbittorrent/qBittorrent/pull/24791)
* `search/downloadTorrent` and `rss/setFeedRefreshInterval` endpoints now only accept `POST` requests
* [#24724](https://github.com/qbittorrent/qBittorrent/pull/24724)
* `torrents/add` endpoint accepts `seedMode` (bool) parameter
* `torrents/add` endpoint no longer accepts `skip_checking` parameter
* [#24720](https://github.com/qbittorrent/qBittorrent/pull/24720)
* `app/preferences` endpoint includes `web_ui_sessions_count_limit` (int) option
* `app/setPreferences` endpoint allows to set `web_ui_sessions_count_limit` (int) option
* [#24641](https://github.com/qbittorrent/qBittorrent/pull/24641)
* `app/preferences` and `app/setPreferences` endpoints no longer include `export_dir` and `export_dir_fin` options as they are no longer supported by the core
* `app/preferences` and `app/setPreferences` endpoints include the following new options:
* `torrent_files_backup_enabled` (bool) - enable/disable saving backup copies of .torrent files
* `torrent_files_backup_dir` (string) - the folder path for saving backup copies of .torrent files
* `torrent_files_finished_backup_dir_enabled` (bool) - enable/disable moving backup copies of .torrent files to another folder when torrent is finished
* `torrent_files_finished_backup_dir` (string) - the folder path for moving backup copies of .torrent files when torrent is finished
* `remove_torrent_file_backup` (bool) - whether .torrent file backup should be removed when removing the torrent
* [#24684](https://github.com/qbittorrent/qBittorrent/pull/24684)
* `app/preferences` endpoint includes `enable_multi_connections_from_same_peer_id` option
* `app/setPreferences` endpoint allows to set `enable_multi_connections_from_same_peer_id` option
* [#23989](https://github.com/qbittorrent/qBittorrent/pull/23989)
* `sync/torrentPeers` endpoint now includes calculated `contribution` to a peer's progress
* [#24346](https://github.com/qbittorrent/qBittorrent/pull/24346)
* `torrentcreator/addTask` endpoint accepts a new bool option `ignoreDotfiles` to control whether dotfiles are ignored
* `torrentcreator/status` endpoint returns a new bool field `ignoreDotfiles` for reporting whether dotfiles were ignored
* [#24246](https://github.com/qbittorrent/qBittorrent/pull/24246)
* `torrents/fetchMetadata` and `torrents/parseMetadata` endpoints include file `priority` when excluded file names apply
* [#24210](https://github.com/qbittorrent/qBittorrent/pull/24210)
* `torrentcreator/status` endpoint now returns `timeAdded`, `timeStarted`, and `timeFinished` as Unix timestamps
* [#24158](https://github.com/qbittorrent/qBittorrent/pull/24158)
* `app/preferences` endpoint includes `seeding_outgoing_connections` option
* `app/setPreferences` endpoint allows to set `seeding_outgoing_connections` option
* [#24152](https://github.com/qbittorrent/qBittorrent/pull/24152)
* `sync/maindata` endpoint now includes `request_latency` metric
* [#24084](https://github.com/qbittorrent/qBittorrent/pull/24084)
* `sync/maindata` endpoint now includes `queued_tracker_announces` metric
* [#23838](https://github.com/qbittorrent/qBittorrent/pull/23838)
* `app/preferences` endpoint no longer includes `mail_notification_ssl_enabled` option as it no longer exists
* `app/preferences` endpoint includes `mail_notification_encryption_type` option, replacing the removed `mail_notification_ssl_enabled` option
* `app/setPreferences` endpoint no longer allows setting `mail_notification_ssl_enabled` option as it no longer exists
* `app/setPreferences` endpoint allows to set `mail_notification_encryption_type` option, replacing the removed `mail_notification_ssl_enabled` option
* [#24134](https://github.com/qbittorrent/qBittorrent/pull/24134)
* `transfer/getSpeedLimits` endpoint was added to retrieve global and alternative speed limits (`up_limit`, `dl_limit`, `alt_up_limit`, `alt_dl_limit`)
* `transfer/setSpeedLimits` endpoint was added to set global and alternative speed limits (`up_limit`, `dl_limit`, `alt_up_limit`, `alt_dl_limit`)
* [#24253](https://github.com/qbittorrent/qBittorrent/pull/24253)
* `app/preferences` endpoint includes `max_outstanding_block_requests` option
* `app/setPreferences` endpoint allows to set `max_outstanding_block_requests` option
* [#24135](https://github.com/qbittorrent/qBittorrent/pull/24135)
* Add `torrents/downloadFile` endpoint with `hash` and `file` as parameters allowing to download a completed file from torrent content
* `file` accepts either file index or path relative to content root
## 2.15.4
* [#24056](https://github.com/qbittorrent/qBittorrent/pull/24056)
* Add `rss/cloneRule` endpoint with `sourceName` and `cloneName` as parameters for cloning an existing RSS auto-download rule
## 2.15.3
* [#24043](https://github.com/qbittorrent/qBittorrent/pull/24043)
* `sync/maindata` endpoint includes `share_limits_mode` for torrents
* `app/preferences` endpoint includes `share_limits_mode` option
* `app/setPreferences` endpoint allows to set `share_limits_mode` option
* `torrents/setShareLimits` endpoint now requires `shareLimitsMode` (string) param that sets a torrent's shareLimitsMode property.
* possible values `Default`, `MatchAny`, `MatchAll`
## 2.15.2
* [#23357](https://github.com/qbittorrent/qBittorrent/pull/23856)
* Add `app/getFreeSpaceAtPathAction` endpoint with `path` as parameter returning the free space at the given path
## 2.15.1
* [#23357](https://github.com/qbittorrent/qBittorrent/pull/23357)
* Add `app/processInfo` endpoint returning `launch_time` (process launch time as UTC epoch seconds)
* [#23708](https://github.com/qbittorrent/qBittorrent/pull/23708)
* `sync/torrentPeers` endpoint now includes peer `host_name` when peer host name resolution is enabled
* [#23741](https://github.com/qbittorrent/qBittorrent/pull/23741)
* Add `torrents/pieceAvailability` endpoint for retrieving availability of each torrent piece
* `torrents/properties` endpoint now includes the number of distributed copies of the torrent's selected files via `availability` field
* [#23847](https://github.com/qbittorrent/qBittorrent/pull/23847)
* `torrents/editCategory` endpoint will not throw an error when editing category without changes
* `torrents/editCategory` endpoint will throw a "Not Found" (404) error when editing category that does not exist
## 2.15.0
* [#23585](https://github.com/qbittorrent/qBittorrent/pull/23585)
* `sync/maindata` endpoint no longer includes the key `use_subcategories` as subcategories are now always enabled
* [#23564](https://github.com/qbittorrent/qBittorrent/pull/23564)
* WebAPI credentials can now be supplied via Basic auth
## 2.14.1
* [#23212](https://github.com/qbittorrent/qBittorrent/pull/23212)
* Add `app/rotateAPIKey` endpoint for generating, and rotating, the WebAPI API key
* [#23388](https://github.com/qbittorrent/qBittorrent/pull/23388)
* Add `app/deleteAPIKey` endpoint for deleting the existing WebAPI API key
## 2.14.0
* [#23202](https://github.com/qbittorrent/qBittorrent/pull/23202)
* WebAPI responds with the error message "Endpoint does not exist" when the endpoint does not exist, to better differentiate from unrelated Not Found (i.e. 404) responses
* `auth/login` endpoint responds to invalid credentials with a 401
* `torrents/add` endpoint responds with `success_count`, `pending_count`, `failure_count`, and `added_torrent_ids`
* When `pending_count` is non-zero, response code 202 is used
* When all torrents fail to be added, response code 409 is used
## 2.13.1
* [#23163](https://github.com/qbittorrent/qBittorrent/pull/23163)
* `torrents/add` endpoint now supports downloading from a search plugin via the `downloader` parameter
* `torrents/fetchMetadata` endpoint now supports fetching from a search plugin via the `downloader` parameter
* [#23088](https://github.com/qbittorrent/qBittorrent/pull/23088)
* Add `clientdata/load` and `clientdata/store` endpoints for managing WebUI-specific client settings and other shared data
## 2.13.0
* [#23045](https://github.com/qbittorrent/qBittorrent/pull/23045)
* `torrents/trackers` returns three new fields: `next_announce`, `min_announce` and `endpoints`
* `endpoints` is an array of tracker endpoints, each with `name`, `updating`, `status`, `msg`, `bt_version`, `num_peers`, `num_peers`, `num_leeches`, `num_downloaded`, `next_announce` and `min_announce` fields
* `torrents/trackers` now returns `5` and `6` in `status` field as possible values
* `5` for `Tracker error` and `6` for `Unreachable`
* [#22963](https://github.com/qbittorrent/qBittorrent/pull/22963)
* `torrents/editTracker` endpoint now supports setting a tracker's tier via `tier` parameter
* `torrents/editTracker` endpoint always responds with a 204 when successful
* `torrents/editTracker` endpoint `origUrl` parameter renamed to `url`
* [#23061](https://github.com/qbittorrent/qBittorrent/pull/23061)
* `sync/torrentPeers` returns one new field: `i2p_dest`, only when the peer is from I2P
* In this case, the fields `ip` and `port` are not returned
* [#23085](https://github.com/qbittorrent/qBittorrent/pull/23085)
* `torrents/parseMetadata` now responds with an array of metadata in the same order as the files in the request. It previously responded with an object keyed off of the submitted file name.
## 2.12.1
* [#23031](https://github.com/qbittorrent/qBittorrent/pull/23031)
* Add `torrents/setComment` endpoint with parameters `hashes` and `comment` for setting a new torrent comment
## 2.12.0
* [#22989](https://github.com/qbittorrent/qBittorrent/pull/22989)
* `sync/maindata` returns one new field: `share_limit_action`
* `torrents/setShareLimits` now requires a new `shareLimitAction` param that sets a torrent's shareLimitAction property
* possible values `Default`, `Stop`, `Remove`, `RemoveWithContent` and `EnableSuperSeeding`
## 2.11.10
* [#22958](https://github.com/qbittorrent/qBittorrent/pull/22958)
* `torrents/categories` and `sync/maindata` now serialize categories' `downloadPath` to `null`, rather than `undefined`
* [#22954](https://github.com/qbittorrent/qBittorrent/pull/22954)
* `torrents/reannounce` supports specifying individual trackers via `trackers` field
## 2.11.9
* [#21015](https://github.com/qbittorrent/qBittorrent/pull/21015)
* Add `torrents/fetchMetadata` endpoint for retrieving torrent metadata associated with a URL
* Add `torrents/parseMetadata` endpoint for retrieving torrent metadata associated with a .torrent file
* Add `torrents/saveMetadata` endpoint for saving retrieved torrent metadata to a .torrent file
* `torrents/add` allows adding a torrent with metadata previously retrieved via `torrents/fetchMetadata` or `torrents/parseMetadata`
* `torrents/add` allows specifying a torrent's file priorities
* [#22698](https://github.com/qbittorrent/qBittorrent/pull/22698)
* `torrents/addTrackers` and `torrents/removeTrackers` now accept `hash=all` and adds/removes the tracker to/from *all* torrents
* For compatibility, `torrents/removeTrackers` still accepts `hash=*` internally we transform it into `all`
* Allow passing a pipe (`|`) separated list of hashes in `hash` for `torrents/addTrackers` and `torrents/removeTrackers`
## 2.11.8
* [#21349](https://github.com/qbittorrent/qBittorrent/pull/21349)
* Handle sending `204 No Content` status code when response contains no data
* Some endpoints still return `200 OK` to ensure smooth transition
* [#22750](https://github.com/qbittorrent/qBittorrent/pull/22750)
* `torrents/info` allows an optional parameter `includeFiles` that defaults to `false`
* Each torrent will contain a new key `files` which will list all files similar to the `torrents/files` endpoint
* [#22813](https://github.com/qbittorrent/qBittorrent/pull/22813)
* `app/getDirectoryContent` allows an optional parameter `withMetadata` to send file metadata
* Fields are `name`, `type`, `size`, `creation_date`, `last_access_date`, `last_modification_date`
* See PR for TypeScript types
## 2.11.7
* [#22166](https://github.com/qbittorrent/qBittorrent/pull/22166)
* `sync/maindata` returns 3 new torrent fields: `has_tracker_warning`, `has_tracker_error`, `has_other_announce_error`
## 2.11.6
* [#22460](https://github.com/qbittorrent/qBittorrent/pull/22460)
* `app/setPreferences` allows only one of `max_ratio_enabled`, `max_ratio` to be present
* `app/setPreferences` allows only one of `max_seeding_time_enabled`, `max_seeding_time` to be present
* `app/setPreferences` allows only one of `max_inactive_seeding_time_enabled`, `max_inactive_seeding_time` to be present