transmission: update from 2.13 to 2.22
[tomato.git] / release / src / router / transmission / extras / rpc-spec.txt
blobc4ebf187f3e99a34a85fb326b7e8c2991f85d1d4
1 1.  Introduction
3    This document describes a protocol for interacting with Transmission
4    sessions remotely.
6 1.1  Terminology
8    The JSON terminology in RFC 4627 is used.
10    In benc terms, a JSON "array" is equivalent to a benc list,
11    a JSON "object" is equivalent to a benc dictionary,
12    and a JSON object's "keys" are the dictionary's string keys.
14 2.  Message Format
16    Messages are formatted as objects.  There are two types:
17    requests (described in 2.1) and responses (described in 2.2).
19    All text MUST be UTF-8 encoded.
21 2.1.  Requests
23    Requests support three keys:
25    (1) A required "method" string telling the name of the method to invoke
26    (2) An optional "arguments" object of key/value pairs
27    (3) An optional "tag" number used by clients to track responses.
28        If provided by a request, the response MUST include the same tag.
30 2.2.  Responses
32    Reponses support three keys:
34    (1) A required "result" string whose value MUST be "success" on success,
35        or an error string on failure.
36    (2) An optional "arguments" object of key/value pairs
37    (3) An optional "tag" number as described in 2.1.
39 2.3.  Transport Mechanism
41    HTTP POSTing a JSON-encoded request is the preferred way of communicating
42    with a Transmission RPC server.  The current Transmission implementation
43    has the default URL as http://host:9091/transmission/rpc.  Clients
44    may use this as a default, but should allow the URL to be reconfigured,
45    since the port and path may be changed to allow mapping and/or multiple
46    daemons to run on a single server.
48 2.3.1.  CSRF Protection
50    Most Transmission RPC servers require a X-Transmission-Session-Id
51    header to be sent with requests, to prevent CSRF attacks.
53    When your request has the wrong id -- such as when you send your first
54    request, or when the server expires the CSRF token -- the
55    Transmission RPC server will return an HTTP 409 error with the
56    right X-Transmission-Session-Id in its own headers.
58    So, the correct way to handle a 409 response is to update your
59    X-Transmission-Session-Id and to resend the previous request.
61 3.  Torrent Requests
63 3.1.  Torrent Action Requests
65    Method name          | libtransmission function
66    ---------------------+-------------------------------------------------
67    "torrent-start"      | tr_torrentStart
68    "torrent-stop"       | tr_torrentStop
69    "torrent-verify"     | tr_torrentVerify
70    "torrent-reannounce" | tr_torrentManualUpdate ("ask tracker for more peers")
72    Request arguments: "ids", which specifies which torrents to use.
73                   All torrents are used if the "ids" argument is omitted.
74                   "ids" should be one of the following:
75                   (1) an integer referring to a torrent id
76                   (2) a list of torrent id numbers, sha1 hash strings, or both
77                   (3) a string, "recently-active", for recently-active torrents
79    Response arguments: none
81 3.2.  Torrent Mutators
83    Method name: "torrent-set"
85    Request arguments:
87    string                | value type & description
88    ----------------------+-------------------------------------------------
89    "bandwidthPriority"   | number     this torrent's bandwidth tr_priority_t
90    "downloadLimit"       | number     maximum download speed (KBps)
91    "downloadLimited"     | boolean    true if "downloadLimit" is honored
92    "files-wanted"        | array      indices of file(s) to download
93    "files-unwanted"      | array      indices of file(s) to not download
94    "honorsSessionLimits" | boolean    true if session upload limits are honored
95    "ids"                 | array      torrent list, as described in 3.1
96    "location"            | string     new location of the torrent's content
97    "peer-limit"          | number     maximum number of peers
98    "priority-high"       | array      indices of high-priority file(s)
99    "priority-low"        | array      indices of low-priority file(s)
100    "priority-normal"     | array      indices of normal-priority file(s)
101    "seedIdleLimit"       | number     torrent-level number of minutes of seeding inactivity
102    "seedIdleMode"        | number     which seeding inactivity to use.  See tr_inactvelimit
103    "seedRatioLimit"      | double     torrent-level seeding ratio
104    "seedRatioMode"       | number     which ratio to use.  See tr_ratiolimit
105    "trackerAdd"          | array      strings of announce URLs to add
106    "trackerRemove"       | array      ids of trackers to remove
107    "trackerReplace"      | array      pairs of <trackerId/new announce URLs>
108    "uploadLimit"         | number     maximum upload speed (KBps)
109    "uploadLimited"       | boolean    true if "uploadLimit" is honored
111    Just as an empty "ids" value is shorthand for "all ids", using an empty array
112    for "files-wanted", "files-unwanted", "priority-high", "priority-low", or
113    "priority-normal" is shorthand for saying "all files".
115    Response arguments: none
117 3.3.  Torrent Accessors
119    Method name: "torrent-get".
121    Request arguments:
123    (1) An optional "ids" array as described in 3.1.
124    (2) A required "fields" array of keys. (see list below)
126    Response arguments:
128    (1) A "torrents" array of objects, each of which contains
129        the key/value pairs matching the request's "fields" argument.
130    (2) If the request's "ids" field was "recently-active",
131        a "removed" array of torrent-id numbers of recently-removed
132        torrents.
134    Note: For more information on what these fields mean, see the comments
135    in libtransmission/transmission.h.  The "source" column here
136    corresponds to the data structure there.
138    key                         | type                        | source 
139    ----------------------------+-----------------------------+---------
140    activityDate                | number                      | tr_stat
141    addedDate                   | number                      | tr_stat
142    bandwidthPriority           | number                      | tr_priority_t
143    comment                     | string                      | tr_info
144    corruptEver                 | number                      | tr_stat
145    creator                     | string                      | tr_info
146    dateCreated                 | number                      | tr_info
147    desiredAvailable            | number                      | tr_stat
148    doneDate                    | number                      | tr_stat
149    downloadDir                 | string                      | tr_torrent
150    downloadedEver              | number                      | tr_stat
151    downloadLimit               | number                      | tr_torrent
152    downloadLimited             | boolean                     | tr_torrent
153    error                       | number                      | tr_stat
154    errorString                 | string                      | tr_stat
155    eta                         | number                      | tr_stat
156    files                       | array (see below)           | n/a
157    fileStats                   | array (see below)           | n/a
158    hashString                  | string                      | tr_info
159    haveUnchecked               | number                      | tr_stat
160    haveValid                   | number                      | tr_stat
161    honorsSessionLimits         | boolean                     | tr_torrent
162    id                          | number                      | tr_torrent
163    isFinished                  | boolean                     | tr_stat
164    isPrivate                   | boolean                     | tr_torrent
165    leftUntilDone               | number                      | tr_stat
166    magnetLink                  | number                      | n/a
167    manualAnnounceTime          | number                      | tr_stat
168    maxConnectedPeers           | number                      | tr_torrent
169    metadataPercentComplete     | double                      | tr_stat
170    name                        | string                      | tr_info
171    peer-limit                  | number                      | tr_torrent
172    peers                       | array (see below)           | n/a
173    peersConnected              | number                      | tr_stat
174    peersFrom                   | object (see below)          | n/a
175    peersGettingFromUs          | number                      | tr_stat
176    peersKnown                  | number                      | tr_stat
177    peersSendingToUs            | number                      | tr_stat
178    percentDone                 | double                      | tr_stat
179    pieces                      | string (see below)          | tr_torrent
180    pieceCount                  | number                      | tr_info
181    pieceSize                   | number                      | tr_info
182    priorities                  | array (see below)           | n/a
183    rateDownload (B/s)          | number                      | tr_stat
184    rateUpload (B/s)            | number                      | tr_stat
185    recheckProgress             | double                      | tr_stat
186    secondsDownloading          | number                      | tr_stat
187    secondsSeeding              | number                      | tr_stat
188    seedIdleLimit               | number                      | tr_torrent
189    seedIdleMode                | number                      | tr_inactvelimit
190    seedRatioLimit              | double                      | tr_torrent
191    seedRatioMode               | number                      | tr_ratiolimit
192    sizeWhenDone                | number                      | tr_stat
193    startDate                   | number                      | tr_stat
194    status                      | number                      | tr_stat
195    trackers                    | array (see below)           | n/a
196    trackerStats                | array (see below)           | n/a
197    totalSize                   | number                      | tr_info
198    torrentFile                 | string                      | tr_info
199    uploadedEver                | number                      | tr_stat
200    uploadLimit                 | number                      | tr_torrent
201    uploadLimited               | boolean                     | tr_torrent
202    uploadRatio                 | double                      | tr_stat
203    wanted                      | array (see below)           | n/a
204    webseeds                    | array (see below)           | n/a
205    webseedsSendingToUs         | number                      | tr_stat
206                                |                             |
207                                |                             |
208    -------------------+--------+-----------------------------+
209    files              | array of objects, each containing:   |
210                       +-------------------------+------------+
211                       | bytesCompleted          | number     | tr_torrent
212                       | length                  | number     | tr_info
213                       | name                    | string     | tr_info
214    -------------------+--------------------------------------+
215    fileStats          | a file's non-constant properties.    |
216                       | array of tr_info.filecount objects,  |
217                       | each containing:                     |
218                       +-------------------------+------------+
219                       | bytesCompleted          | number     | tr_torrent
220                       | wanted                  | boolean    | tr_info
221                       | priority                | number     | tr_info
222    -------------------+--------------------------------------+
223    peers              | array of objects, each containing:   |
224                       +-------------------------+------------+
225                       | address                 | string     | tr_peer_stat
226                       | clientName              | string     | tr_peer_stat
227                       | clientIsChoked          | boolean    | tr_peer_stat
228                       | clientIsInterested      | boolean    | tr_peer_stat
229                       | flagStr                 | string     | tr_peer_stat
230                       | isDownloadingFrom       | boolean    | tr_peer_stat
231                       | isEncrypted             | boolean    | tr_peer_stat
232                       | isIncoming              | boolean    | tr_peer_stat
233                       | isUploadingTo           | boolean    | tr_peer_stat
234                       | peerIsChoked            | boolean    | tr_peer_stat
235                       | peerIsInterested        | boolean    | tr_peer_stat
236                       | port                    | number     | tr_peer_stat
237                       | progress                | double     | tr_peer_stat
238                       | rateToClient (B/s)      | number     | tr_peer_stat
239                       | rateToPeer (B/s)        | number     | tr_peer_stat
240    -------------------+--------------------------------------+
241    peersFrom          | an object containing:                |
242                       +-------------------------+------------+
243                       | fromCache               | number     | tr_stat
244                       | fromDht                 | number     | tr_stat
245                       | fromIncoming            | number     | tr_stat
246                       | fromLtep                | number     | tr_stat
247                       | fromPex                 | number     | tr_stat
248                       | fromTracker             | number     | tr_stat
249    -------------------+--------------------------------------+
250    pieces             | A bitfield holding pieceCount flags  | tr_torrent
251                       | which are set to 'true' if we have   |
252                       | the piece matching that position.    |
253                       | JSON doesn't allow raw binary data,  |
254                       | so this is a base64-encoded string.  |
255    -------------------+--------------------------------------+
256    priorities         | an array of tr_info.filecount        | tr_info
257                       | numbers. each is the tr_priority_t   |
258                       | mode for the corresponding file.     |
259    -------------------+--------------------------------------+
260    trackers           | array of objects, each containing:   |
261                       +-------------------------+------------+
262                       | announce                | string     | tr_tracker_info
263                       | id                      | number     | tr_tracker_info
264                       | scrape                  | string     | tr_tracker_info
265                       | tier                    | number     | tr_tracker_info
266    -------------------+--------------------------------------+
267    trackerStats       | array of objects, each containing:   |
268                       +-------------------------+------------+
269                       | announce                | string     | tr_tracker_stat
270                       | announceState           | number     | tr_tracker_stat
271                       | downloadCount           | number     | tr_tracker_stat
272                       | hasAnnounced            | boolean    | tr_tracker_stat
273                       | hasScraped              | boolean    | tr_tracker_stat
274                       | host                    | string     | tr_tracker_stat
275                       | id                      | number     | tr_tracker_stat
276                       | isBackup                | boolean    | tr_tracker_stat
277                       | lastAnnouncePeerCount   | number     | tr_tracker_stat
278                       | lastAnnounceResult      | string     | tr_tracker_stat
279                       | lastAnnounceStartTime   | number     | tr_tracker_stat
280                       | lastAnnounceSucceeded   | boolean    | tr_tracker_stat
281                       | lastAnnounceTime        | number     | tr_tracker_stat
282                       | lastAnnounceTimedOut    | boolean    | tr_tracker_stat
283                       | lastScrapeResult        | string     | tr_tracker_stat
284                       | lastScrapeStartTime     | number     | tr_tracker_stat
285                       | lastScrapeSucceeded     | boolean    | tr_tracker_stat
286                       | lastScrapeTime          | number     | tr_tracker_stat
287                       | lastScrapeTimedOut      | boolean    | tr_tracker_stat
288                       | leecherCount            | number     | tr_tracker_stat
289                       | nextAnnounceTime        | number     | tr_tracker_stat
290                       | nextScrapeTime          | number     | tr_tracker_stat
291                       | scrape                  | string     | tr_tracker_stat
292                       | scrapeState             | number     | tr_tracker_stat
293                       | seederCount             | number     | tr_tracker_stat
294                       | tier                    | number     | tr_tracker_stat
295    -------------------+-------------------------+------------+
296    wanted             | an array of tr_info.fileCount        | tr_info
297                       | 'booleans' true if the corresponding |
298                       | file is to be downloaded.            |
299    -------------------+--------------------------------------+
300    webseeds           | an array of strings:                 |
301                       +-------------------------+------------+
302                       | webseed                 | string     | tr_info
303                       +-------------------------+------------+
305    Example:
307    Say we want to get the name and total size of torrents #7 and #10.
309    Request: 
311       {
312          "arguments": {
313              "fields": [ "id", "name", "totalSize" ],
314              "ids": [ 7, 10 ]
315          },
316          "method": "torrent-get",
317          "tag": 39693
318       }
321    Response:
323       {
324          "arguments": {
325             "torrents": [ 
326                { 
327                    "id": 10,
328                    "name": "Fedora x86_64 DVD",
329                    "totalSize": 34983493932,
330                },
331                {
332                    "id": 7,
333                    "name": "Ubuntu x86_64 DVD",
334                    "totalSize", 9923890123,
335                } 
336             ]
337          },
338          "result": "success",
339          "tag": 39693
340       }
342 3.4.  Adding a Torrent
344    Method name: "torrent-add"
346    Request arguments:
348    key                  | value type & description
349    ---------------------+-------------------------------------------------
350    "download-dir"       | string      path to download the torrent to
351    "filename"           | string      filename or URL of the .torrent file
352    "metainfo"           | string      base64-encoded .torrent content
353    "paused"             | boolean     if true, don't start the torrent
354    "peer-limit"         | number      maximum number of peers
355    "bandwidthPriority"  | number      torrent's bandwidth tr_priority_t 
356    "files-wanted"       | array       indices of file(s) to download
357    "files-unwanted"     | array       indices of file(s) to not download
358    "priority-high"      | array       indices of high-priority file(s)
359    "priority-low"       | array       indices of low-priority file(s)
360    "priority-normal"    | array       indices of normal-priority file(s)
362    Either "filename" OR "metainfo" MUST be included.
363    All other arguments are optional.
365    Response arguments: on success, a "torrent-added" object in the
366                        form of one of 3.3's tr_info objects with the
367                        fields for id, name, and hashString.
369 3.5.  Removing a Torrent
371    Method name: "torrent-remove"
373    Request arguments:
375    string                     | value type & description
376    ---------------------------+-------------------------------------------------
377    "ids"                      | array      torrent list, as described in 3.1
378    "delete-local-data"        | boolean    delete local data. (default: false)
380    Response arguments: none
383 3.6.  Moving a Torrent
385    Method name: "torrent-set-location"
387    Request arguments:
389    string                     | value type & description
390    ---------------------------+-------------------------------------------------
391    "ids"                      | array      torrent list, as described in 3.1
392    "location"                 | string     the new torrent location
393    "move"                     | boolean    if true, move from previous location.
394                               |            otherwise, search "location" for files
396    Response arguments: none
399 4.   Session Requests
401 4.1.  Session Arguments
403    string                           | value type | description
404    ---------------------------------+------------+-------------------------------------
405    "alt-speed-down"                 | number     | max global download speed (KBps)
406    "alt-speed-enabled"              | boolean    | true means use the alt speeds
407    "alt-speed-time-begin"           | number     | when to turn on alt speeds (units: minutes after midnight)
408    "alt-speed-time-enabled"         | boolean    | true means the scheduled on/off times are used
409    "alt-speed-time-end"             | number     | when to turn off alt speeds (units: same)
410    "alt-speed-time-day"             | number     | what day(s) to turn on alt speeds (look at tr_sched_day)
411    "alt-speed-up"                   | number     | max global upload speed (KBps)
412    "blocklist-url"                  | string     | location of the blocklist to use for "blocklist-update"
413    "blocklist-enabled"              | boolean    | true means enabled
414    "blocklist-size"                 | number     | number of rules in the blocklist
415    "cache-size-mb"                  | number     | maximum size of the disk cache (MB)
416    "config-dir"                     | string     | location of transmission's configuration directory
417    "download-dir"                   | string     | default path to download torrents
418    "download-dir-free-space"        | number     | number of free bytes available in download-dir, or -1 if it can't be calculated
419    "dht-enabled"                    | boolean    | true means allow dht in public torrents
420    "encryption"                     | string     | "required", "preferred", "tolerated"
421    "idle-seeding-limit"             | number     | the default seed inactivity limit for torrents to use
422    "idle-seeding-limit-enabled"     | boolean    | true if the seeding inactivity limit is honored by default
423    "incomplete-dir"                 | string     | path for incomplete torrents, when enabled
424    "incomplete-dir-enabled"         | boolean    | true means keep torrents in incomplete-dir until done
425    "lpd-enabled"                    | boolean    | true means allow Local Peer Discovery in public torrents
426    "peer-limit-global"              | number     | maximum global number of peers
427    "peer-limit-per-torrent"         | number     | maximum global number of peers
428    "pex-enabled"                    | boolean    | true means allow pex in public torrents
429    "peer-port"                      | number     | port number
430    "peer-port-random-on-start"      | boolean    | true means pick a random peer port on launch
431    "port-forwarding-enabled"        | boolean    | true means enabled
432    "rename-partial-files"           | boolean    | true means append ".part" to incomplete files
433    "rpc-version"                    | number     | the current RPC API version
434    "rpc-version-minimum"            | number     | the minimum RPC API version supported
435    "script-torrent-done-filename"   | string     | filename of the script to run
436    "script-torrent-done-enabled"    | boolean    | whether or not to call the "done" script
437    "seedRatioLimit"                 | double     | the default seed ratio for torrents to use
438    "seedRatioLimited"               | boolean    | true if seedRatioLimit is honored by default
439    "speed-limit-down"               | number     | max global download speed (KBps)
440    "speed-limit-down-enabled"       | boolean    | true means enabled
441    "speed-limit-up"                 | number     | max global upload speed (KBps)
442    "speed-limit-up-enabled"         | boolean    | true means enabled
443    "start-added-torrents"           | boolean    | true means added torrents will be started right away
444    "trash-original-torrent-files"   | boolean    | true means the .torrent file of added torrents will be deleted
445    "units"                          | object     | see below
446    "version"                        | string     | long version string "$version ($revision)"
447    ---------------------------------+------------+-----------------------------+
448    units                            | object containing:                       |
449                                     +--------------+--------+------------------+
450                                     | speed-units  | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
451                                     | speed-bytes  | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
452                                     | size-units   | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
453                                     | size-bytes   | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
454                                     | memory-units | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
455                                     | memory-bytes | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
456                                     +--------------+--------+------------------+
458    "rpc-version" indicates the RPC interface version supported by the RPC server.
459    It is incremented when a new version of Transmission changes the RPC interface.
461    "rpc-version-minimum" indicates the oldest API supported by the RPC server.
462    It is changes when a new version of Transmission changes the RPC interface
463    in a way that is not backwards compatible.  There are no plans for this
464    to be common behavior.
466 4.1.1.  Mutators
468    Method name: "session-set"
469    Request arguments: one or more of 4.1's arguments, except: "blocklist-size",
470                       "config-dir", "download-dir-free-space", "rpc-version",
471                       "rpc-version-minimum", and "version"
472    Response arguments: none
474 4.1.2.  Accessors
476    Method name: "session-get"
477    Request arguments: none
478    Response arguments: all of 4.1's arguments
480 4.2.  Session Statistics
482    Method name: "session-stats"
484    Request arguments: none
486    Response arguments:
488    string                     | value type
489    ---------------------------+-------------------------------------------------
490    "activeTorrentCount"       | number
491    "downloadSpeed"            | number
492    "pausedTorrentCount"       | number
493    "torrentCount"             | number
494    "uploadSpeed"              | number
495    ---------------------------+-------------------------------+
496    "cumulative-stats"         | object, containing:           |
497                               +------------------+------------+
498                               | uploadedBytes    | number     | tr_session_stats
499                               | downloadedBytes  | number     | tr_session_stats
500                               | filesAdded       | number     | tr_session_stats
501                               | sessionCount     | number     | tr_session_stats
502                               | secondsActive    | number     | tr_session_stats
503    ---------------------------+-------------------------------+
504    "current-stats"            | object, containing:           |
505                               +------------------+------------+
506                               | uploadedBytes    | number     | tr_session_stats
507                               | downloadedBytes  | number     | tr_session_stats
508                               | filesAdded       | number     | tr_session_stats
509                               | sessionCount     | number     | tr_session_stats
510                               | secondsActive    | number     | tr_session_stats
512 4.3.  Blocklist
514    Method name: "blocklist-update"
515    Request arguments: none
516    Response arguments: a number "blocklist-size"
518 4.4.  Port Checking
520    This method tests to see if your incoming peer port is accessible
521    from the outside world.
523    Method name: "port-test"
524    Request arguments: none
525    Response arguments: a bool, "port-is-open"
527 4.5.  Session shutdown
529    This method tells the transmission session to shut down.
531    Method-name: "session-close"
532    Request arguments: none
533    Response arguments: none
535 5.0.  Protocol Versions
537   The following changes have been made to the RPC interface:
539    RPC   | Release | Backwards |                |
540    Vers. | Version | Compat?   | Method         | Description
541    ------+---------+-----------+----------------+-------------------------------
542    1     | 1.30    | n/a       | n/a            | Initial version
543    ------+---------+-----------+----------------+-------------------------------
544    2     | 1.34    | yes       | torrent-get    | new arg "peers"
545    ------+---------+-----------+----------------+-------------------------------
546    3     | 1.41    | yes       | torrent-get    | added "port" to "peers"
547          |         | yes       | torrent-get    | new arg "downloaders"
548          |         | yes       | session-get    | new arg "version"
549          |         | yes       | torrent-remove | new method
550    ------+---------+-----------+----------------+-------------------------------
551    4     | 1.50    | yes       | session-get    | new arg "rpc-version"
552          |         | yes       | session-get    | new arg "rpc-version-minimum"
553          |         | yes       | session-stats  | added "cumulative-stats"
554          |         | yes       | session-stats  | added "current-stats"
555          |         | yes       | torrent-get    | new arg "downloadDir"
556    ------+---------+-----------+----------------+-------------------------------
557    5     | 1.60    | yes       |                | new method "torrent-reannounce"
558          |         | yes       |                | new method "blocklist-update"
559          |         | yes       |                | new method "port-test"
560          |         |           |                |
561          |         | yes       | session-get    | new arg "alt-speed-begin"
562          |         | yes       | session-get    | new arg "alt-speed-down"
563          |         | yes       | session-get    | new arg "alt-speed-enabled"
564          |         | yes       | session-get    | new arg "alt-speed-end"
565          |         | yes       | session-get    | new arg "alt-speed-time-enabled"
566          |         | yes       | session-get    | new arg "alt-speed-up"
567          |         | yes       | session-get    | new arg "blocklist-enabled"
568          |         | yes       | session-get    | new arg "blocklist-size"
569          |         | yes       | session-get    | new arg "peer-limit-per-torrent"
570          |         | yes       | session-get    | new arg "seedRatioLimit"
571          |         | yes       | session-get    | new arg "seedRatioLimited"
572          |         |        NO | session-get    | renamed "pex-allowed" to "pex-enabled"
573          |         |        NO | session-get    | renamed "port" to "peer-port"
574          |         |        NO | session-get    | renamed "peer-limit" to "peer-limit-global"
575          |         |           |                |
576          |         | yes       | torrent-add    | new arg "files-unwanted"
577          |         | yes       | torrent-add    | new arg "files-wanted"
578          |         | yes       | torrent-add    | new arg "priority-high"
579          |         | yes       | torrent-add    | new arg "priority-low"
580          |         | yes       | torrent-add    | new arg "priority-normal"
581          |         |           |                |
582          |         | yes       | torrent-set    | new arg "bandwidthPriority"
583          |         | yes       | torrent-set    | new arg "honorsSessionLimits"
584          |         | yes       | torrent-set    | new arg "seedRatioLimit" 
585          |         | yes       | torrent-set    | new arg "seedRatioLimited" 
586          |         |        NO | torrent-set    | renamed "speed-limit-down" to "downloadLimit" 
587          |         |        NO | torrent-set    | renamed "speed-limit-down-enabled" to "downloadLimited" 
588          |         |        NO | torrent-set    | renamed "speed-limit-up" to "uploadLimit" 
589          |         |        NO | torrent-set    | renamed "speed-limit-up-enabled" to "uploadLimited" 
590          |         |           |                |
591          |         | yes       | torrent-get    | new arg "bandwidthPriority"
592          |         | yes       | torrent-get    | new arg "fileStats"
593          |         | yes       | torrent-get    | new arg "honorsSessionLimits"
594          |         | yes       | torrent-get    | new arg "percentDone"
595          |         | yes       | torrent-get    | new arg "pieces"
596          |         | yes       | torrent-get    | new arg "seedRatioLimit"
597          |         | yes       | torrent-get    | new arg "seedRatioMode"
598          |         | yes       | torrent-get    | new arg "torrentFile"
599          |         | yes       | torrent-get    | new ids option "recently-active"
600          |         |        NO | torrent-get    | removed arg "downloadLimitMode"
601          |         |        NO | torrent-get    | removed arg "uploadLimitMode"
602    ------+---------+-----------+----------------+-------------------------------
603    6     | 1.70    | yes       |                | new "method torrent-set-location"
604    ------+---------+-----------+----------------+-------------------------------
605    7     | 1.80    |        NO | torrent-get    | removed arg "announceResponse"
606          |         |        NO | torrent-get    | removed arg "announceURL"
607          |         |        NO | torrent-get    | removed arg "downloaders"
608          |         |        NO | torrent-get    | removed arg "lastAnnounceTime"
609          |         |        NO | torrent-get    | removed arg "lastScrapeTime"
610          |         |        NO | torrent-get    | removed arg "leechers"
611          |         |        NO | torrent-get    | removed arg "nextAnnounceTime"
612          |         |        NO | torrent-get    | removed arg "nextScrapeTime"
613          |         |        NO | torrent-get    | removed arg "scrapeResponse"
614          |         |        NO | torrent-get    | removed arg "scrapeURL"
615          |         |        NO | torrent-get    | removed arg "seeders"
616          |         |        NO | torrent-get    | removed arg "timesCompleted"
617          |         |        NO | torrent-get    | removed arg "swarmSpeed"
618          |         | yes       | torrent-get    | new arg "magnetLink"
619          |         | yes       | torrent-get    | new arg "metadataPercentComplete"
620          |         | yes       | torrent-get    | new arg "trackerStats"
621          |         | yes       | session-set    | new arg "incomplete-dir"
622          |         | yes       | session-set    | new arg "incomplete-dir-enabled"
623    ------+---------+-----------+----------------+-------------------------------
624    8     | 1.90    | yes       | session-set    | new arg "rename-partial-files"
625          |         | yes       | session-get    | new arg "rename-partial-files"
626          |         | yes       | session-get    | new arg "config-dir"
627          |         | yes       | torrent-add    | new arg "bandwidthPriority"
628          |         | yes       | torrent-get    | new trackerStats arg "lastAnnounceTimedOut"
629    ------+---------+-----------+----------------+-------------------------------
630    8     | 1.92    | yes       | torrent-get    | new trackerStats arg "lastScrapeTimedOut"
631    ------+---------+-----------+----------------+-------------------------------
632    9     | 2.00    | yes       | session-set    | new arg "start-added-torrents"
633          |         | yes       | session-set    | new arg "trash-original-torrent-files"
634          |         | yes       | session-get    | new arg "start-added-torrents"
635          |         | yes       | session-get    | new arg "trash-original-torrent-files"
636          |         | yes       | torrent-get    | new arg "isFinished"
637    ------+---------+-----------+----------------+-------------------------------
638    10    | 2.10    | yes       | session-get    | new arg "cache-size-mb"
639          |         | yes       | torrent-set    | new arg "trackerAdd"
640          |         | yes       | torrent-set    | new arg "trackerRemove"
641          |         | yes       | torrent-set    | new arg "trackerReplace"
642          |         | yes       | session-set    | new arg "idle-seeding-limit"
643          |         | yes       | session-set    | new arg "idle-seeding-limit-enabled"
644          |         | yes       | session-get    | new arg "idle-seeding-limit"
645          |         | yes       | session-get    | new arg "idle-seeding-limit-enabled"
646          |         | yes       | session-get    | new arg "units"
647          |         | yes       | torrent-set    | new arg "seedIdleLimit"
648          |         | yes       | torrent-set    | new arg "seedIdleMode"
649    ------+---------+-----------+----------------+-------------------------------
650    11    | 2.12    | yes       | session-get    | new arg "blocklist-url"
651          |         | yes       | session-set    | new arg "blocklist-url"
652    ------+---------+-----------+----------------+-------------------------------
653    12    | 2.20    | yes       | session-get    | new arg "download-dir-free-space"
654          |         | yes       | session-close  | new method