source: trunk/extras/rpc-spec.txt @ 12919

Last change on this file since 12919 was 12919, checked in by jordan, 10 years ago

(trunk libT) #4511 "fromLpd in rpc" -- add to torrent-get's "peersFrom" response.

File size: 40.1 KB
Line 
11.  Introduction
2
3   This document describes a protocol for interacting with Transmission
4   sessions remotely.
5
61.1  Terminology
7
8   The JSON terminology in RFC 4627 is used.
9
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.
13
142.  Message Format
15
16   Messages are formatted as objects.  There are two types:
17   requests (described in 2.1) and responses (described in 2.2).
18
19   All text MUST be UTF-8 encoded.
20
212.1.  Requests
22
23   Requests support three keys:
24
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.
29
302.2.  Responses
31
32   Reponses support three keys:
33
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.
38
392.3.  Transport Mechanism
40
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.
47
482.3.1.  CSRF Protection
49
50   Most Transmission RPC servers require a X-Transmission-Session-Id
51   header to be sent with requests, to prevent CSRF attacks.
52
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.
57
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.
60
613.  Torrent Requests
62
633.1.  Torrent Action Requests
64
65   Method name          | libtransmission function
66   ---------------------+-------------------------------------------------
67   "torrent-start"      | tr_torrentStart
68   "torrent-start-now"  | tr_torrentStartNow
69   "torrent-stop"       | tr_torrentStop
70   "torrent-verify"     | tr_torrentVerify
71   "torrent-reannounce" | tr_torrentManualUpdate ("ask tracker for more peers")
72
73   Request arguments: "ids", which specifies which torrents to use.
74                  All torrents are used if the "ids" argument is omitted.
75                  "ids" should be one of the following:
76                  (1) an integer referring to a torrent id
77                  (2) a list of torrent id numbers, sha1 hash strings, or both
78                  (3) a string, "recently-active", for recently-active torrents
79
80   Response arguments: none
81
823.2.  Torrent Mutators
83
84   Method name: "torrent-set"
85
86   Request arguments:
87
88   string                | value type & description
89   ----------------------+-------------------------------------------------
90   "bandwidthPriority"   | number     this torrent's bandwidth tr_priority_t
91   "downloadLimit"       | number     maximum download speed (KBps)
92   "downloadLimited"     | boolean    true if "downloadLimit" is honored
93   "files-wanted"        | array      indices of file(s) to download
94   "files-unwanted"      | array      indices of file(s) to not download
95   "honorsSessionLimits" | boolean    true if session upload limits are honored
96   "ids"                 | array      torrent list, as described in 3.1
97   "location"            | string     new location of the torrent's content
98   "peer-limit"          | number     maximum number of peers
99   "priority-high"       | array      indices of high-priority file(s)
100   "priority-low"        | array      indices of low-priority file(s)
101   "priority-normal"     | array      indices of normal-priority file(s)
102   "queuePosition"       | number     position of this torrent in its queue [0...n)
103   "seedIdleLimit"       | number     torrent-level number of minutes of seeding inactivity
104   "seedIdleMode"        | number     which seeding inactivity to use.  See tr_inactvelimit
105   "seedRatioLimit"      | double     torrent-level seeding ratio
106   "seedRatioMode"       | number     which ratio to use.  See tr_ratiolimit
107   "trackerAdd"          | array      strings of announce URLs to add
108   "trackerRemove"       | array      ids of trackers to remove
109   "trackerReplace"      | array      pairs of <trackerId/new announce URLs>
110   "uploadLimit"         | number     maximum upload speed (KBps)
111   "uploadLimited"       | boolean    true if "uploadLimit" is honored
112
113   Just as an empty "ids" value is shorthand for "all ids", using an empty array
114   for "files-wanted", "files-unwanted", "priority-high", "priority-low", or
115   "priority-normal" is shorthand for saying "all files".
116
117   Response arguments: none
118
1193.3.  Torrent Accessors
120
121   Method name: "torrent-get".
122
123   Request arguments:
124
125   (1) An optional "ids" array as described in 3.1.
126   (2) A required "fields" array of keys. (see list below)
127
128   Response arguments:
129
130   (1) A "torrents" array of objects, each of which contains
131       the key/value pairs matching the request's "fields" argument.
132   (2) If the request's "ids" field was "recently-active",
133       a "removed" array of torrent-id numbers of recently-removed
134       torrents.
135
136   Note: For more information on what these fields mean, see the comments
137   in libtransmission/transmission.h.  The "source" column here
138   corresponds to the data structure there.
139
140   key                         | type                        | source
141   ----------------------------+-----------------------------+---------
142   activityDate                | number                      | tr_stat
143   addedDate                   | number                      | tr_stat
144   bandwidthPriority           | number                      | tr_priority_t
145   comment                     | string                      | tr_info
146   corruptEver                 | number                      | tr_stat
147   creator                     | string                      | tr_info
148   dateCreated                 | number                      | tr_info
149   desiredAvailable            | number                      | tr_stat
150   doneDate                    | number                      | tr_stat
151   downloadDir                 | string                      | tr_torrent
152   downloadedEver              | number                      | tr_stat
153   downloadLimit               | number                      | tr_torrent
154   downloadLimited             | boolean                     | tr_torrent
155   error                       | number                      | tr_stat
156   errorString                 | string                      | tr_stat
157   eta                         | number                      | tr_stat
158   files                       | array (see below)           | n/a
159   fileStats                   | array (see below)           | n/a
160   hashString                  | string                      | tr_info
161   haveUnchecked               | number                      | tr_stat
162   haveValid                   | number                      | tr_stat
163   honorsSessionLimits         | boolean                     | tr_torrent
164   id                          | number                      | tr_torrent
165   isFinished                  | boolean                     | tr_stat
166   isPrivate                   | boolean                     | tr_torrent
167   isStalled                   | boolean                     | tr_stat
168   leftUntilDone               | number                      | tr_stat
169   magnetLink                  | number                      | n/a
170   manualAnnounceTime          | number                      | tr_stat
171   maxConnectedPeers           | number                      | tr_torrent
172   metadataPercentComplete     | double                      | tr_stat
173   name                        | string                      | tr_info
174   peer-limit                  | number                      | tr_torrent
175   peers                       | array (see below)           | n/a
176   peersConnected              | number                      | tr_stat
177   peersFrom                   | object (see below)          | n/a
178   peersGettingFromUs          | number                      | tr_stat
179   peersSendingToUs            | number                      | tr_stat
180   percentDone                 | double                      | tr_stat
181   pieces                      | string (see below)          | tr_torrent
182   pieceCount                  | number                      | tr_info
183   pieceSize                   | number                      | tr_info
184   priorities                  | array (see below)           | n/a
185   queuePosition               | number                      | tr_stat
186   rateDownload (B/s)          | number                      | tr_stat
187   rateUpload (B/s)            | number                      | tr_stat
188   recheckProgress             | double                      | tr_stat
189   secondsDownloading          | number                      | tr_stat
190   secondsSeeding              | number                      | tr_stat
191   seedIdleLimit               | number                      | tr_torrent
192   seedIdleMode                | number                      | tr_inactvelimit
193   seedRatioLimit              | double                      | tr_torrent
194   seedRatioMode               | number                      | tr_ratiolimit
195   sizeWhenDone                | number                      | tr_stat
196   startDate                   | number                      | tr_stat
197   status                      | number                      | tr_stat
198   trackers                    | array (see below)           | n/a
199   trackerStats                | array (see below)           | n/a
200   totalSize                   | number                      | tr_info
201   torrentFile                 | string                      | tr_info
202   uploadedEver                | number                      | tr_stat
203   uploadLimit                 | number                      | tr_torrent
204   uploadLimited               | boolean                     | tr_torrent
205   uploadRatio                 | double                      | tr_stat
206   wanted                      | array (see below)           | n/a
207   webseeds                    | array (see below)           | n/a
208   webseedsSendingToUs         | number                      | tr_stat
209                               |                             |
210                               |                             |
211   -------------------+--------+-----------------------------+
212   files              | array of objects, each containing:   |
213                      +-------------------------+------------+
214                      | bytesCompleted          | number     | tr_torrent
215                      | length                  | number     | tr_info
216                      | name                    | string     | tr_info
217   -------------------+--------------------------------------+
218   fileStats          | a file's non-constant properties.    |
219                      | array of tr_info.filecount objects,  |
220                      | each containing:                     |
221                      +-------------------------+------------+
222                      | bytesCompleted          | number     | tr_torrent
223                      | wanted                  | boolean    | tr_info
224                      | priority                | number     | tr_info
225   -------------------+--------------------------------------+
226   peers              | array of objects, each containing:   |
227                      +-------------------------+------------+
228                      | address                 | string     | tr_peer_stat
229                      | clientName              | string     | tr_peer_stat
230                      | clientIsChoked          | boolean    | tr_peer_stat
231                      | clientIsInterested      | boolean    | tr_peer_stat
232                      | flagStr                 | string     | tr_peer_stat
233                      | isDownloadingFrom       | boolean    | tr_peer_stat
234                      | isEncrypted             | boolean    | tr_peer_stat
235                      | isIncoming              | boolean    | tr_peer_stat
236                      | isUploadingTo           | boolean    | tr_peer_stat
237                      | isUTP                   | boolean    | tr_peer_stat
238                      | peerIsChoked            | boolean    | tr_peer_stat
239                      | peerIsInterested        | boolean    | tr_peer_stat
240                      | port                    | number     | tr_peer_stat
241                      | progress                | double     | tr_peer_stat
242                      | rateToClient (B/s)      | number     | tr_peer_stat
243                      | rateToPeer (B/s)        | number     | tr_peer_stat
244   -------------------+--------------------------------------+
245   peersFrom          | an object containing:                |
246                      +-------------------------+------------+
247                      | fromCache               | number     | tr_stat
248                      | fromDht                 | number     | tr_stat
249                      | fromIncoming            | number     | tr_stat
250                      | fromLpd                 | number     | tr_stat
251                      | fromLtep                | number     | tr_stat
252                      | fromPex                 | number     | tr_stat
253                      | fromTracker             | number     | tr_stat
254   -------------------+--------------------------------------+
255   pieces             | A bitfield holding pieceCount flags  | tr_torrent
256                      | which are set to 'true' if we have   |
257                      | the piece matching that position.    |
258                      | JSON doesn't allow raw binary data,  |
259                      | so this is a base64-encoded string.  |
260   -------------------+--------------------------------------+
261   priorities         | an array of tr_info.filecount        | tr_info
262                      | numbers. each is the tr_priority_t   |
263                      | mode for the corresponding file.     |
264   -------------------+--------------------------------------+
265   trackers           | array of objects, each containing:   |
266                      +-------------------------+------------+
267                      | announce                | string     | tr_tracker_info
268                      | id                      | number     | tr_tracker_info
269                      | scrape                  | string     | tr_tracker_info
270                      | tier                    | number     | tr_tracker_info
271   -------------------+--------------------------------------+
272   trackerStats       | array of objects, each containing:   |
273                      +-------------------------+------------+
274                      | announce                | string     | tr_tracker_stat
275                      | announceState           | number     | tr_tracker_stat
276                      | downloadCount           | number     | tr_tracker_stat
277                      | hasAnnounced            | boolean    | tr_tracker_stat
278                      | hasScraped              | boolean    | tr_tracker_stat
279                      | host                    | string     | tr_tracker_stat
280                      | id                      | number     | tr_tracker_stat
281                      | isBackup                | boolean    | tr_tracker_stat
282                      | lastAnnouncePeerCount   | number     | tr_tracker_stat
283                      | lastAnnounceResult      | string     | tr_tracker_stat
284                      | lastAnnounceStartTime   | number     | tr_tracker_stat
285                      | lastAnnounceSucceeded   | boolean    | tr_tracker_stat
286                      | lastAnnounceTime        | number     | tr_tracker_stat
287                      | lastAnnounceTimedOut    | boolean    | tr_tracker_stat
288                      | lastScrapeResult        | string     | tr_tracker_stat
289                      | lastScrapeStartTime     | number     | tr_tracker_stat
290                      | lastScrapeSucceeded     | boolean    | tr_tracker_stat
291                      | lastScrapeTime          | number     | tr_tracker_stat
292                      | lastScrapeTimedOut      | boolean    | tr_tracker_stat
293                      | leecherCount            | number     | tr_tracker_stat
294                      | nextAnnounceTime        | number     | tr_tracker_stat
295                      | nextScrapeTime          | number     | tr_tracker_stat
296                      | scrape                  | string     | tr_tracker_stat
297                      | scrapeState             | number     | tr_tracker_stat
298                      | seederCount             | number     | tr_tracker_stat
299                      | tier                    | number     | tr_tracker_stat
300   -------------------+-------------------------+------------+
301   wanted             | an array of tr_info.fileCount        | tr_info
302                      | 'booleans' true if the corresponding |
303                      | file is to be downloaded.            |
304   -------------------+--------------------------------------+
305   webseeds           | an array of strings:                 |
306                      +-------------------------+------------+
307                      | webseed                 | string     | tr_info
308                      +-------------------------+------------+
309
310   Example:
311
312   Say we want to get the name and total size of torrents #7 and #10.
313
314   Request:
315
316      {
317         "arguments": {
318             "fields": [ "id", "name", "totalSize" ],
319             "ids": [ 7, 10 ]
320         },
321         "method": "torrent-get",
322         "tag": 39693
323      }
324
325
326   Response:
327
328      {
329         "arguments": {
330            "torrents": [
331               {
332                   "id": 10,
333                   "name": "Fedora x86_64 DVD",
334                   "totalSize": 34983493932,
335               },
336               {
337                   "id": 7,
338                   "name": "Ubuntu x86_64 DVD",
339                   "totalSize", 9923890123,
340               }
341            ]
342         },
343         "result": "success",
344         "tag": 39693
345      }
346
3473.4.  Adding a Torrent
348
349   Method name: "torrent-add"
350
351   Request arguments:
352
353   key                  | value type & description
354   ---------------------+-------------------------------------------------
355   "cookies"            | string      pointer to a string of one or more cookies.
356   "download-dir"       | string      path to download the torrent to
357   "filename"           | string      filename or URL of the .torrent file
358   "metainfo"           | string      base64-encoded .torrent content
359   "paused"             | boolean     if true, don't start the torrent
360   "peer-limit"         | number      maximum number of peers
361   "bandwidthPriority"  | number      torrent's bandwidth tr_priority_t
362   "files-wanted"       | array       indices of file(s) to download
363   "files-unwanted"     | array       indices of file(s) to not download
364   "priority-high"      | array       indices of high-priority file(s)
365   "priority-low"       | array       indices of low-priority file(s)
366   "priority-normal"    | array       indices of normal-priority file(s)
367
368   Either "filename" OR "metainfo" MUST be included.
369   All other arguments are optional.
370
371   The format of the "cookies" should be NAME=CONTENTS, where NAME is the
372   cookie name and CONTENTS is what the cookie should contain.
373   Set multiple cookies like this: "name1=content1; name2=content2;" etc.
374   <http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTCOOKIE>
375
376   Response arguments: on success, a "torrent-added" object in the
377                       form of one of 3.3's tr_info objects with the
378                       fields for id, name, and hashString.
379
3803.5.  Removing a Torrent
381
382   Method name: "torrent-remove"
383
384   Request arguments:
385
386   string                     | value type & description
387   ---------------------------+-------------------------------------------------
388   "ids"                      | array      torrent list, as described in 3.1
389   "delete-local-data"        | boolean    delete local data. (default: false)
390
391   Response arguments: none
392
393
3943.6.  Moving a Torrent
395
396   Method name: "torrent-set-location"
397
398   Request arguments:
399
400   string                     | value type & description
401   ---------------------------+-------------------------------------------------
402   "ids"                      | array      torrent list, as described in 3.1
403   "location"                 | string     the new torrent location
404   "move"                     | boolean    if true, move from previous location.
405                              |            otherwise, search "location" for files
406                              |            (default: false)
407
408   Response arguments: none
409
410
4114.   Session Requests
412
4134.1.  Session Arguments
414
415   string                           | value type | description
416   ---------------------------------+------------+-------------------------------------
417   "alt-speed-down"                 | number     | max global download speed (KBps)
418   "alt-speed-enabled"              | boolean    | true means use the alt speeds
419   "alt-speed-time-begin"           | number     | when to turn on alt speeds (units: minutes after midnight)
420   "alt-speed-time-enabled"         | boolean    | true means the scheduled on/off times are used
421   "alt-speed-time-end"             | number     | when to turn off alt speeds (units: same)
422   "alt-speed-time-day"             | number     | what day(s) to turn on alt speeds (look at tr_sched_day)
423   "alt-speed-up"                   | number     | max global upload speed (KBps)
424   "blocklist-url"                  | string     | location of the blocklist to use for "blocklist-update"
425   "blocklist-enabled"              | boolean    | true means enabled
426   "blocklist-size"                 | number     | number of rules in the blocklist
427   "cache-size-mb"                  | number     | maximum size of the disk cache (MB)
428   "config-dir"                     | string     | location of transmission's configuration directory
429   "download-dir"                   | string     | default path to download torrents
430   "download-dir-free-space"        | number     | number of free bytes available in download-dir, or -1 if it can't be calculated
431   "download-queue-size"            | number     | max number of torrents to download at once (see download-queue-enabled)
432   "download-queue-enabled"         | boolean    | if true, limit how many torrents can be downloaded at once
433   "dht-enabled"                    | boolean    | true means allow dht in public torrents
434   "encryption"                     | string     | "required", "preferred", "tolerated"
435   "idle-seeding-limit"             | number     | torrents we're seeding will be stopped if they're idle for this long
436   "idle-seeding-limit-enabled"     | boolean    | true if the seeding inactivity limit is honored by default
437   "incomplete-dir"                 | string     | path for incomplete torrents, when enabled
438   "incomplete-dir-enabled"         | boolean    | true means keep torrents in incomplete-dir until done
439   "lpd-enabled"                    | boolean    | true means allow Local Peer Discovery in public torrents
440   "peer-limit-global"              | number     | maximum global number of peers
441   "peer-limit-per-torrent"         | number     | maximum global number of peers
442   "pex-enabled"                    | boolean    | true means allow pex in public torrents
443   "peer-port"                      | number     | port number
444   "peer-port-random-on-start"      | boolean    | true means pick a random peer port on launch
445   "port-forwarding-enabled"        | boolean    | true means enabled
446   "queue-stalled-enabled"          | boolean    | whether or not to consider idle torrents as stalled
447   "queue-stalled-minutes"          | number     | torrents that are idle for N minuets aren't counted toward seed-queue-size or download-queue-size
448   "rename-partial-files"           | boolean    | true means append ".part" to incomplete files
449   "rpc-version"                    | number     | the current RPC API version
450   "rpc-version-minimum"            | number     | the minimum RPC API version supported
451   "script-torrent-done-filename"   | string     | filename of the script to run
452   "script-torrent-done-enabled"    | boolean    | whether or not to call the "done" script
453   "seedRatioLimit"                 | double     | the default seed ratio for torrents to use
454   "seedRatioLimited"               | boolean    | true if seedRatioLimit is honored by default
455   "seed-queue-size"                | number     | max number of torrents to uploaded at once (see seed-queue-enabled)
456   "seed-queue-enabled"             | boolean    | if true, limit how many torrents can be uploaded at once
457   "speed-limit-down"               | number     | max global download speed (KBps)
458   "speed-limit-down-enabled"       | boolean    | true means enabled
459   "speed-limit-up"                 | number     | max global upload speed (KBps)
460   "speed-limit-up-enabled"         | boolean    | true means enabled
461   "start-added-torrents"           | boolean    | true means added torrents will be started right away
462   "trash-original-torrent-files"   | boolean    | true means the .torrent file of added torrents will be deleted
463   "units"                          | object     | see below
464   "utp-enabled"                    | boolean    | true means allow utp
465   "version"                        | string     | long version string "$version ($revision)"
466   ---------------------------------+------------+-----------------------------+
467   units                            | object containing:                       |
468                                    +--------------+--------+------------------+
469                                    | speed-units  | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
470                                    | speed-bytes  | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
471                                    | size-units   | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
472                                    | size-bytes   | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
473                                    | memory-units | array  | 4 strings: KB/s, MB/s, GB/s, TB/s
474                                    | memory-bytes | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
475                                    +--------------+--------+------------------+
476
477   "rpc-version" indicates the RPC interface version supported by the RPC server.
478   It is incremented when a new version of Transmission changes the RPC interface.
479
480   "rpc-version-minimum" indicates the oldest API supported by the RPC server.
481   It is changes when a new version of Transmission changes the RPC interface
482   in a way that is not backwards compatible.  There are no plans for this
483   to be common behavior.
484
4854.1.1.  Mutators
486
487   Method name: "session-set"
488   Request arguments: one or more of 4.1's arguments, except: "blocklist-size",
489                      "config-dir", "download-dir-free-space", "rpc-version",
490                      "rpc-version-minimum", and "version"
491   Response arguments: none
492
4934.1.2.  Accessors
494
495   Method name: "session-get"
496   Request arguments: none
497   Response arguments: all of 4.1's arguments
498
4994.2.  Session Statistics
500
501   Method name: "session-stats"
502
503   Request arguments: none
504
505   Response arguments:
506
507   string                     | value type
508   ---------------------------+-------------------------------------------------
509   "activeTorrentCount"       | number
510   "downloadSpeed"            | number
511   "pausedTorrentCount"       | number
512   "torrentCount"             | number
513   "uploadSpeed"              | number
514   ---------------------------+-------------------------------+
515   "cumulative-stats"         | object, containing:           |
516                              +------------------+------------+
517                              | uploadedBytes    | number     | tr_session_stats
518                              | downloadedBytes  | number     | tr_session_stats
519                              | filesAdded       | number     | tr_session_stats
520                              | sessionCount     | number     | tr_session_stats
521                              | secondsActive    | number     | tr_session_stats
522   ---------------------------+-------------------------------+
523   "current-stats"            | object, containing:           |
524                              +------------------+------------+
525                              | uploadedBytes    | number     | tr_session_stats
526                              | downloadedBytes  | number     | tr_session_stats
527                              | filesAdded       | number     | tr_session_stats
528                              | sessionCount     | number     | tr_session_stats
529                              | secondsActive    | number     | tr_session_stats
530
5314.3.  Blocklist
532
533   Method name: "blocklist-update"
534   Request arguments: none
535   Response arguments: a number "blocklist-size"
536
5374.4.  Port Checking
538
539   This method tests to see if your incoming peer port is accessible
540   from the outside world.
541
542   Method name: "port-test"
543   Request arguments: none
544   Response arguments: a bool, "port-is-open"
545
5464.5.  Session shutdown
547
548   This method tells the transmission session to shut down.
549
550   Method name: "session-close"
551   Request arguments: none
552   Response arguments: none
553
5544.6.  Queue Movement Requests
555
556   Method name          | libtransmission function
557   ---------------------+-------------------------------------------------
558   "queue-move-top"     | tr_torrentQueueMoveTop()
559   "queue-move-up"      | tr_torrentQueueMoveUp()
560   "queue-move-down"    | tr_torrentQueueMoveDown()
561   "queue-move-bottom"  | tr_torrentQueueMoveBottom()
562
563   Request arguments:
564
565   string      | value type & description
566   ------------+----------------------------------------------------------
567   "ids"       | array   torrent list, as described in 3.1.
568
569   Response arguments: none
570
5715.0.  Protocol Versions
572
573  The following changes have been made to the RPC interface:
574
575   RPC   | Release | Backwards |                |
576   Vers. | Version | Compat?   | Method         | Description
577   ------+---------+-----------+----------------+-------------------------------
578   1     | 1.30    | n/a       | n/a            | Initial version
579   ------+---------+-----------+----------------+-------------------------------
580   2     | 1.34    | yes       | torrent-get    | new arg "peers"
581   ------+---------+-----------+----------------+-------------------------------
582   3     | 1.41    | yes       | torrent-get    | added "port" to "peers"
583         |         | yes       | torrent-get    | new arg "downloaders"
584         |         | yes       | session-get    | new arg "version"
585         |         | yes       | torrent-remove | new method
586   ------+---------+-----------+----------------+-------------------------------
587   4     | 1.50    | yes       | session-get    | new arg "rpc-version"
588         |         | yes       | session-get    | new arg "rpc-version-minimum"
589         |         | yes       | session-stats  | added "cumulative-stats"
590         |         | yes       | session-stats  | added "current-stats"
591         |         | yes       | torrent-get    | new arg "downloadDir"
592   ------+---------+-----------+----------------+-------------------------------
593   5     | 1.60    | yes       |                | new method "torrent-reannounce"
594         |         | yes       |                | new method "blocklist-update"
595         |         | yes       |                | new method "port-test"
596         |         |           |                |
597         |         | yes       | session-get    | new arg "alt-speed-begin"
598         |         | yes       | session-get    | new arg "alt-speed-down"
599         |         | yes       | session-get    | new arg "alt-speed-enabled"
600         |         | yes       | session-get    | new arg "alt-speed-end"
601         |         | yes       | session-get    | new arg "alt-speed-time-enabled"
602         |         | yes       | session-get    | new arg "alt-speed-up"
603         |         | yes       | session-get    | new arg "blocklist-enabled"
604         |         | yes       | session-get    | new arg "blocklist-size"
605         |         | yes       | session-get    | new arg "peer-limit-per-torrent"
606         |         | yes       | session-get    | new arg "seedRatioLimit"
607         |         | yes       | session-get    | new arg "seedRatioLimited"
608         |         |        NO | session-get    | renamed "pex-allowed" to "pex-enabled"
609         |         |        NO | session-get    | renamed "port" to "peer-port"
610         |         |        NO | session-get    | renamed "peer-limit" to "peer-limit-global"
611         |         |           |                |
612         |         | yes       | torrent-add    | new arg "files-unwanted"
613         |         | yes       | torrent-add    | new arg "files-wanted"
614         |         | yes       | torrent-add    | new arg "priority-high"
615         |         | yes       | torrent-add    | new arg "priority-low"
616         |         | yes       | torrent-add    | new arg "priority-normal"
617         |         |           |                |
618         |         | yes       | torrent-set    | new arg "bandwidthPriority"
619         |         | yes       | torrent-set    | new arg "honorsSessionLimits"
620         |         | yes       | torrent-set    | new arg "seedRatioLimit"
621         |         | yes       | torrent-set    | new arg "seedRatioLimited"
622         |         |        NO | torrent-set    | renamed "speed-limit-down" to "downloadLimit"
623         |         |        NO | torrent-set    | renamed "speed-limit-down-enabled" to "downloadLimited"
624         |         |        NO | torrent-set    | renamed "speed-limit-up" to "uploadLimit"
625         |         |        NO | torrent-set    | renamed "speed-limit-up-enabled" to "uploadLimited"
626         |         |           |                |
627         |         | yes       | torrent-get    | new arg "bandwidthPriority"
628         |         | yes       | torrent-get    | new arg "fileStats"
629         |         | yes       | torrent-get    | new arg "honorsSessionLimits"
630         |         | yes       | torrent-get    | new arg "percentDone"
631         |         | yes       | torrent-get    | new arg "pieces"
632         |         | yes       | torrent-get    | new arg "seedRatioLimit"
633         |         | yes       | torrent-get    | new arg "seedRatioMode"
634         |         | yes       | torrent-get    | new arg "torrentFile"
635         |         | yes       | torrent-get    | new ids option "recently-active"
636         |         |        NO | torrent-get    | removed arg "downloadLimitMode"
637         |         |        NO | torrent-get    | removed arg "uploadLimitMode"
638   ------+---------+-----------+----------------+-------------------------------
639   6     | 1.70    | yes       |                | new "method torrent-set-location"
640   ------+---------+-----------+----------------+-------------------------------
641   7     | 1.80    |        NO | torrent-get    | removed arg "announceResponse"
642         |         |        NO | torrent-get    | removed arg "announceURL"
643         |         |        NO | torrent-get    | removed arg "downloaders"
644         |         |        NO | torrent-get    | removed arg "lastAnnounceTime"
645         |         |        NO | torrent-get    | removed arg "lastScrapeTime"
646         |         |        NO | torrent-get    | removed arg "leechers"
647         |         |        NO | torrent-get    | removed arg "nextAnnounceTime"
648         |         |        NO | torrent-get    | removed arg "nextScrapeTime"
649         |         |        NO | torrent-get    | removed arg "scrapeResponse"
650         |         |        NO | torrent-get    | removed arg "scrapeURL"
651         |         |        NO | torrent-get    | removed arg "seeders"
652         |         |        NO | torrent-get    | removed arg "timesCompleted"
653         |         |        NO | torrent-get    | removed arg "swarmSpeed"
654         |         | yes       | torrent-get    | new arg "magnetLink"
655         |         | yes       | torrent-get    | new arg "metadataPercentComplete"
656         |         | yes       | torrent-get    | new arg "trackerStats"
657         |         | yes       | session-set    | new arg "incomplete-dir"
658         |         | yes       | session-set    | new arg "incomplete-dir-enabled"
659   ------+---------+-----------+----------------+-------------------------------
660   8     | 1.90    | yes       | session-set    | new arg "rename-partial-files"
661         |         | yes       | session-get    | new arg "rename-partial-files"
662         |         | yes       | session-get    | new arg "config-dir"
663         |         | yes       | torrent-add    | new arg "bandwidthPriority"
664         |         | yes       | torrent-get    | new trackerStats arg "lastAnnounceTimedOut"
665   ------+---------+-----------+----------------+-------------------------------
666   8     | 1.92    | yes       | torrent-get    | new trackerStats arg "lastScrapeTimedOut"
667   ------+---------+-----------+----------------+-------------------------------
668   9     | 2.00    | yes       | session-set    | new arg "start-added-torrents"
669         |         | yes       | session-set    | new arg "trash-original-torrent-files"
670         |         | yes       | session-get    | new arg "start-added-torrents"
671         |         | yes       | session-get    | new arg "trash-original-torrent-files"
672         |         | yes       | torrent-get    | new arg "isFinished"
673   ------+---------+-----------+----------------+-------------------------------
674   10    | 2.10    | yes       | session-get    | new arg "cache-size-mb"
675         |         | yes       | torrent-set    | new arg "trackerAdd"
676         |         | yes       | torrent-set    | new arg "trackerRemove"
677         |         | yes       | torrent-set    | new arg "trackerReplace"
678         |         | yes       | session-set    | new arg "idle-seeding-limit"
679         |         | yes       | session-set    | new arg "idle-seeding-limit-enabled"
680         |         | yes       | session-get    | new arg "units"
681         |         | yes       | torrent-set    | new arg "seedIdleLimit"
682         |         | yes       | torrent-set    | new arg "seedIdleMode"
683   ------+---------+-----------+----------------+-------------------------------
684   11    | 2.12    | yes       | session-get    | new arg "blocklist-url"
685         |         | yes       | session-set    | new arg "blocklist-url"
686   ------+---------+-----------+----------------+-------------------------------
687   12    | 2.20    | yes       | session-get    | new arg "download-dir-free-space"
688         |         | yes       | session-close  | new method
689   ------+---------+-----------+----------------+-------------------------------
690   13    | 2.30    | yes       | session-get    | new arg "isUTP" to the "peers" list
691         |         | yes       | torrent-add    | new arg "cookies"
692         |         |        NO | torrent-get    | removed arg "peersKnown"
693   ------+---------+-----------+----------------+-------------------------------
694   14    | 2.40    |        NO | torrent-get    | values of "status" field changed
695         |         | yes       | torrent-get    | new arg "queuePosition"
696         |         | yes       | torrent-get    | new arg "isStalled"
697         |         | yes       | torrent-get    | new arg "fromLpd" in peersFrom
698         |         | yes       | torrent-set    | new arg "queuePosition"
699         |         | yes       | session-set    | new arg "download-queue-size"
700         |         | yes       | session-set    | new arg "download-queue-enabled"
701         |         | yes       | session-set    | new arg "seed-queue-size"
702         |         | yes       | session-set    | new arg "seed-queue-enabled"
703         |         | yes       | session-set    | new arg "queue-stalled-enabled"
704         |         | yes       | session-set    | new arg "queue-stalled-minutes"
705         |         | yes       |                | new method "queue-move-top"
706         |         | yes       |                | new method "queue-move-up"
707         |         | yes       |                | new method "queue-move-down"
708         |         | yes       |                | new method "queue-move-bottom"
709         |         | yes       |                | new method "torrent-start-now"
Note: See TracBrowser for help on using the repository browser.