Risuko
Architecture

RPC Protocol

The JSON-RPC interface used by the CLI and external clients.

Risuko exposes a JSON-RPC 2.0 server over HTTP. The CLI uses this interface, and you can also build custom clients.

Connection

The RPC server listens on http://localhost:16800/jsonrpc by default.

Request Format

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "risuko.addUri",
  "params": [
    ["https://example.com/file.zip"],
    { "split": "16", "dir": "/downloads" }
  ]
}

Response Format

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": "a1b2c3d4e5f6"
}

Available Methods

Task Management

MethodParametersReturns
risuko.addUri[uris[], options?]GID string
risuko.addTorrent[base64Data, uris[], options?]GID string
risuko.addEd2k[uri, options?]GID string
risuko.pause[gid]
risuko.unpause[gid]
risuko.remove[gid]
risuko.forcePause[gid]
risuko.forceRemove[gid]
risuko.pauseAll
risuko.unpauseAll
risuko.forcePauseAll
risuko.changePosition[gid, pos, how]New position

Queries

MethodParametersReturns
risuko.tellStatus[gid, keys?]Status object
risuko.tellActive[keys?]Status object array
risuko.tellWaiting[offset, num, keys?]Status object array
risuko.tellStopped[offset, num, keys?]Status object array
risuko.getGlobalStatStat object
risuko.getFiles[gid]File array
risuko.getPeers[gid]Peer array
risuko.getUris[gid]URI array
risuko.getServers[gid]Server array
risuko.getVersionVersion object
risuko.getSessionInfoSession info object

Options

MethodParametersReturns
risuko.getOption[gid]Options object
risuko.getGlobalOptionOptions object
risuko.changeOption[gid, options]
risuko.changeGlobalOption[options]

Session

MethodParametersReturns
risuko.saveSession
risuko.purgeDownloadResult
risuko.removeDownloadResult[gid]
risuko.shutdown
risuko.forceShutdown

Example: curl

# Add a download
curl -X POST http://localhost:16800/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "risuko.addUri",
    "params": [["https://example.com/file.zip"], {"split": "16"}]
  }'

# Check status
curl -X POST http://localhost:16800/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "2",
    "method": "risuko.tellActive",
    "params": []
  }'

Error Responses

{
  "jsonrpc": "2.0",
  "id": "1",
  "error": {
    "code": -32600,
    "message": "GID a1b2c3d4 not found"
  }
}

Standard JSON-RPC error codes apply. Application-specific errors use codes in the -32000 to -32099 range.

aria2 Compatibility

The RPC server accepts both risuko.* and aria2.* method prefixes. For example, aria2.addUri is treated as risuko.addUri. This makes it compatible with existing aria2 RPC clients.

On this page