# JSON-RPC API

## Go JSON-RPC client

To use the Boost Go client, the Go RPC-API library can be used to interact with the Boost API node.

1. Import the necessary Go module:

```
go get github.com/filecoin-project/go-jsonrpc
```

1. Create the following script:

```go
package main

import (
    "context"
    "fmt"
    "log"
    "net/http"

    jsonrpc "github.com/filecoin-project/go-jsonrpc"
    boostapi "github.com/filecoin-project/boost/api"
)

func main() {
    authToken := "<value found in ~/.boost/token>"
    headers := http.Header{"Authorization": []string{"Bearer " + authToken}}
    addr := "127.0.0.1:1288"

    var api boostapi.BoostStruct
    closer, err := jsonrpc.NewMergeClient(context.Background(), "ws://"+addr+"/rpc/v0", "Filecoin", []interface{}{&api.Internal, &api.CommonStruct.Internal}, headers)
    if err != nil {
        log.Fatalf("connecting with boost failed: %s", err)
    }
    defer closer()

    // Now you can call any API you're interested in.
    netAddrs, err := api.NetAddrsListen(context.Background())
    if err != nil {
      log.Fatalf("calling netAddrsListen: %s", err)
    }
    fmt.Printf("Boost is listening on: %s", netAddrs.Addrs[0])
}
```

1. Run `go mod init` to set up your `go.mod` file
2. You should now be able to interact with the Boost API.

## Python JSON-RPC client

The JSON-RPC API can also be communicated with programmatically from other languages. Here is an example written in Python. Note that the `method` must be prefixed with `Filecoin.`

```
import requests
import json

def main():
    url = "http://localhost:3051/rpc/v0"
    headers = {'content-type': 'application/json', "Authorization": "Bearer <token>"}
    payload = {
        "method": "Filecoin.BoostOfflineDealWithData",
        "params": [
            "<deal-uuid>",
            "<file-path>",
            True
        ],
        "jsonrpc": "2.0",
        "id": 1,
    }
    response = requests.post(url, data=json.dumps(payload), headers=headers)
    print(response.text)

if __name__ == "__main__":
    main()
```

## Groups

* [Uncategorized](#uncategorized)
  * [Discover](#discover)
* [Auth](#auth)
  * [AuthNew](#authnew)
  * [AuthVerify](#authverify)
* [Blockstore](#blockstore)
  * [BlockstoreGet](#blockstoreget)
  * [BlockstoreGetSize](#blockstoregetsize)
  * [BlockstoreHas](#blockstorehas)
* [Boost](#boost)
  * [BoostDeal](#boostdeal)
  * [BoostDealBySignedProposalCid](#boostdealbysignedproposalcid)
  * [BoostDirectDeal](#boostdirectdeal)
  * [BoostDummyDeal](#boostdummydeal)
  * [BoostIndexerAnnounceAllDeals](#boostindexerannouncealldeals)
  * [BoostIndexerAnnounceDeal](#boostindexerannouncedeal)
  * [BoostIndexerAnnounceDealRemoved](#boostindexerannouncedealremoved)
  * [BoostIndexerAnnounceLatest](#boostindexerannouncelatest)
  * [BoostIndexerAnnounceLatestHttp](#boostindexerannouncelatesthttp)
  * [BoostIndexerAnnounceLegacyDeal](#boostindexerannouncelegacydeal)
  * [BoostIndexerListMultihashes](#boostindexerlistmultihashes)
  * [BoostLegacyDealByProposalCid](#boostlegacydealbyproposalcid)
  * [BoostOfflineDealWithData](#boostofflinedealwithdata)
* [Log](#log)
  * [LogList](#loglist)
  * [LogSetLevel](#logsetlevel)
* [Market](#market)
  * [MarketGetAsk](#marketgetask)
* [Net](#net)
  * [ID](#id)
  * [NetAddrsListen](#netaddrslisten)
  * [NetAgentVersion](#netagentversion)
  * [NetAutoNatStatus](#netautonatstatus)
  * [NetBandwidthStats](#netbandwidthstats)
  * [NetBandwidthStatsByPeer](#netbandwidthstatsbypeer)
  * [NetBandwidthStatsByProtocol](#netbandwidthstatsbyprotocol)
  * [NetBlockAdd](#netblockadd)
  * [NetBlockList](#netblocklist)
  * [NetBlockRemove](#netblockremove)
  * [NetConnect](#netconnect)
  * [NetConnectedness](#netconnectedness)
  * [NetDisconnect](#netdisconnect)
  * [NetFindPeer](#netfindpeer)
  * [NetLimit](#netlimit)
  * [NetPeerInfo](#netpeerinfo)
  * [NetPeers](#netpeers)
  * [NetPing](#netping)
  * [NetProtectAdd](#netprotectadd)
  * [NetProtectList](#netprotectlist)
  * [NetProtectRemove](#netprotectremove)
  * [NetPubsubScores](#netpubsubscores)
  * [NetSetLimit](#netsetlimit)
  * [NetStat](#netstat)
* [Backup](#backup)
  * [OnlineBackup](#onlinebackup)
* [PieceDirectory](#piecedirectory)
  * [PdBuildIndexForPieceCid](#pdbuildindexforpiececid)
  * [PdCleanup](#pdcleanup)
  * [PdRemoveDealForPiece](#pdremovedealforpiece)

##

## Uncategorized

### Discover

Perms: read

Inputs: `null`

Response:

```json
{
  "info": {
    "title": "Boost RPC API",
    "version": "1.2.1/generated=2020-11-22T08:22:42-06:00"
  },
  "methods": [],
  "openrpc": "1.2.6"
}
```

## Auth

### AuthNew

Perms: admin

Inputs:

```json
[
  [
    "write"
  ]
]
```

Response: `"Ynl0ZSBhcnJheQ=="`

### AuthVerify

Perms: read

Inputs:

```json
[
  "string value"
]
```

Response:

```json
[
  "write"
]
```

## Blockstore

### BlockstoreGet

There are not yet any comments for this method.

Perms: read

Inputs:

```json
[
  null
]
```

Response: `"Ynl0ZSBhcnJheQ=="`

### BlockstoreGetSize

Perms: read

Inputs:

```json
[
  null
]
```

Response: `123`

### BlockstoreHas

Perms: read

Inputs:

```json
[
  null
]
```

Response: `true`

## Boost

### BoostDeal

Perms: admin

Inputs:

```json
[
  "07070707-0707-0707-0707-070707070707"
]
```

Response:

```json
{
  "DealUuid": "07070707-0707-0707-0707-070707070707",
  "CreatedAt": "0001-01-01T00:00:00Z",
  "ClientDealProposal": {
    "Proposal": {
      "PieceCID": null,
      "PieceSize": 1032,
      "VerifiedDeal": true,
      "Client": "f01234",
      "Provider": "f01234",
      "Label": "",
      "StartEpoch": 10101,
      "EndEpoch": 10101,
      "StoragePricePerEpoch": "0",
      "ProviderCollateral": "0",
      "ClientCollateral": "0"
    },
    "ClientSignature": {
      "Type": 2,
      "Data": "Ynl0ZSBhcnJheQ=="
    }
  },
  "IsOffline": true,
  "CleanupData": true,
  "ClientPeerID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "DealDataRoot": null,
  "InboundFilePath": "string value",
  "Transfer": {
    "Type": "string value",
    "ClientID": "string value",
    "Params": "Ynl0ZSBhcnJheQ==",
    "Size": 42
  },
  "ChainDealID": 5432,
  "PublishCID": null,
  "SectorID": 9,
  "Offset": 1032,
  "Length": 1032,
  "Checkpoint": 1,
  "CheckpointAt": "0001-01-01T00:00:00Z",
  "Err": "string value",
  "Retry": "auto",
  "NBytesReceived": 9,
  "FastRetrieval": true,
  "AnnounceToIPNI": true
}
```

### BoostDealBySignedProposalCid

Perms: admin

Inputs:

```json
[
  null
]
```

Response:

```json
{
  "DealUuid": "07070707-0707-0707-0707-070707070707",
  "CreatedAt": "0001-01-01T00:00:00Z",
  "ClientDealProposal": {
    "Proposal": {
      "PieceCID": null,
      "PieceSize": 1032,
      "VerifiedDeal": true,
      "Client": "f01234",
      "Provider": "f01234",
      "Label": "",
      "StartEpoch": 10101,
      "EndEpoch": 10101,
      "StoragePricePerEpoch": "0",
      "ProviderCollateral": "0",
      "ClientCollateral": "0"
    },
    "ClientSignature": {
      "Type": 2,
      "Data": "Ynl0ZSBhcnJheQ=="
    }
  },
  "IsOffline": true,
  "CleanupData": true,
  "ClientPeerID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "DealDataRoot": null,
  "InboundFilePath": "string value",
  "Transfer": {
    "Type": "string value",
    "ClientID": "string value",
    "Params": "Ynl0ZSBhcnJheQ==",
    "Size": 42
  },
  "ChainDealID": 5432,
  "PublishCID": null,
  "SectorID": 9,
  "Offset": 1032,
  "Length": 1032,
  "Checkpoint": 1,
  "CheckpointAt": "0001-01-01T00:00:00Z",
  "Err": "string value",
  "Retry": "auto",
  "NBytesReceived": 9,
  "FastRetrieval": true,
  "AnnounceToIPNI": true
}
```

### BoostDirectDeal

Perms: admin

Inputs:

```json
[
  {
    "DealUUID": "07070707-0707-0707-0707-070707070707",
    "AllocationID": 0,
    "PieceCid": null,
    "ClientAddr": "f01234",
    "StartEpoch": 10101,
    "EndEpoch": 10101,
    "FilePath": "string value",
    "DeleteAfterImport": true,
    "RemoveUnsealedCopy": true,
    "SkipIPNIAnnounce": true
  }
]
```

Response:

```json
{
  "Accepted": true,
  "Reason": "string value"
}
```

### BoostDummyDeal

Perms: admin

Inputs:

```json
[
  {
    "DealUUID": "07070707-0707-0707-0707-070707070707",
    "IsOffline": true,
    "ClientDealProposal": {
      "Proposal": {
        "PieceCID": null,
        "PieceSize": 1032,
        "VerifiedDeal": true,
        "Client": "f01234",
        "Provider": "f01234",
        "Label": "",
        "StartEpoch": 10101,
        "EndEpoch": 10101,
        "StoragePricePerEpoch": "0",
        "ProviderCollateral": "0",
        "ClientCollateral": "0"
      },
      "ClientSignature": {
        "Type": 2,
        "Data": "Ynl0ZSBhcnJheQ=="
      }
    },
    "DealDataRoot": null,
    "Transfer": {
      "Type": "string value",
      "ClientID": "string value",
      "Params": "Ynl0ZSBhcnJheQ==",
      "Size": 42
    },
    "RemoveUnsealedCopy": true,
    "SkipIPNIAnnounce": true
  }
]
```

Response:

```json
{
  "Accepted": true,
  "Reason": "string value"
}
```

### BoostIndexerAnnounceAllDeals

There are not yet any comments for this method.

Perms: admin

Inputs: `null`

Response: `{}`

### BoostIndexerAnnounceDeal

Perms: admin

Inputs:

```json
[
  {
    "DealUuid": "07070707-0707-0707-0707-070707070707",
    "CreatedAt": "0001-01-01T00:00:00Z",
    "ClientDealProposal": {
      "Proposal": {
        "PieceCID": null,
        "PieceSize": 1032,
        "VerifiedDeal": true,
        "Client": "f01234",
        "Provider": "f01234",
        "Label": "",
        "StartEpoch": 10101,
        "EndEpoch": 10101,
        "StoragePricePerEpoch": "0",
        "ProviderCollateral": "0",
        "ClientCollateral": "0"
      },
      "ClientSignature": {
        "Type": 2,
        "Data": "Ynl0ZSBhcnJheQ=="
      }
    },
    "IsOffline": true,
    "CleanupData": true,
    "ClientPeerID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "DealDataRoot": null,
    "InboundFilePath": "string value",
    "Transfer": {
      "Type": "string value",
      "ClientID": "string value",
      "Params": "Ynl0ZSBhcnJheQ==",
      "Size": 42
    },
    "ChainDealID": 5432,
    "PublishCID": null,
    "SectorID": 9,
    "Offset": 1032,
    "Length": 1032,
    "Checkpoint": 1,
    "CheckpointAt": "0001-01-01T00:00:00Z",
    "Err": "string value",
    "Retry": "auto",
    "NBytesReceived": 9,
    "FastRetrieval": true,
    "AnnounceToIPNI": true
  }
]
```

Response: `null`

### BoostIndexerAnnounceDealRemoved

Perms: admin

Inputs:

```json
[
  null
]
```

Response: `null`

### BoostIndexerAnnounceLatest

Perms: admin

Inputs: `null`

Response: `null`

### BoostIndexerAnnounceLatestHttp

Perms: admin

Inputs:

```json
[
  [
    "string value"
  ]
]
```

Response: `null`

### BoostIndexerAnnounceLegacyDeal

Perms: admin

Inputs:

```json
[
  null
]
```

Response: `null`

### BoostIndexerListMultihashes

Perms: admin

Inputs:

```json
[
  "Ynl0ZSBhcnJheQ=="
]
```

Response:

```json
[
  "Bw=="
]
```

### BoostLegacyDealByProposalCid

Perms: admin

Inputs:

```json
[
  null
]
```

Response:

```json
{
  "Proposal": {
    "PieceCID": null,
    "PieceSize": 1032,
    "VerifiedDeal": true,
    "Client": "f01234",
    "Provider": "f01234",
    "Label": "",
    "StartEpoch": 10101,
    "EndEpoch": 10101,
    "StoragePricePerEpoch": "0",
    "ProviderCollateral": "0",
    "ClientCollateral": "0"
  },
  "ClientSignature": {
    "Type": 2,
    "Data": "Ynl0ZSBhcnJheQ=="
  },
  "ProposalCid": null,
  "AddFundsCid": null,
  "PublishCid": null,
  "Miner": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "Client": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "State": 42,
  "PiecePath": "",
  "MetadataPath": "",
  "SlashEpoch": 10101,
  "FastRetrieval": true,
  "Message": "string value",
  "FundsReserved": "0",
  "Ref": {
    "TransferType": "string value",
    "Root": null,
    "PieceCid": null,
    "PieceSize": 1024,
    "RawBlockSize": 42
  },
  "AvailableForRetrieval": true,
  "DealID": 5432,
  "CreationTime": "0001-01-01T00:00:00Z",
  "TransferChannelId": {
    "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "ID": 3
  },
  "SectorNumber": 9,
  "InboundCAR": "string value"
}
```

### BoostOfflineDealWithData

Perms: admin

Inputs:

```json
[
  "07070707-0707-0707-0707-070707070707",
  "string value",
  true
]
```

Response:

```json
{
  "Accepted": true,
  "Reason": "string value"
}
```

## Log

### LogList

Perms: write

Inputs: `null`

Response:

```json
[
  "string value"
]
```

### LogSetLevel

Perms: write

Inputs:

```json
[
  "string value",
  "string value"
]
```

Response: `{}`

## Market

### MarketGetAsk

Perms: read

Inputs: `null`

Response:

```json
{
  "Ask": {
    "Price": "0",
    "VerifiedPrice": "0",
    "MinPieceSize": 1032,
    "MaxPieceSize": 1032,
    "Miner": "f01234",
    "Timestamp": 10101,
    "Expiry": 10101,
    "SeqNo": 42
  },
  "Signature": {
    "Type": 2,
    "Data": "Ynl0ZSBhcnJheQ=="
  }
}
```

## Net

### ID

Perms: read

Inputs: `null`

Response: `"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"`

### NetAddrsListen

Perms: read

Inputs: `null`

Response:

```json
{
  "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "Addrs": [
    "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
  ]
}
```

### NetAgentVersion

Perms: read

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response: `"string value"`

### NetAutoNatStatus

Perms: read

Inputs: `null`

Response:

```json
{
  "Reachability": 1,
  "PublicAddrs": [
    "string value"
  ]
}
```

### NetBandwidthStats

Perms: read

Inputs: `null`

Response:

```json
{
  "TotalIn": 9,
  "TotalOut": 9,
  "RateIn": 12.3,
  "RateOut": 12.3
}
```

### NetBandwidthStatsByPeer

Perms: read

Inputs: `null`

Response:

```json
{
  "12D3KooWSXmXLJmBR1M7i9RW9GQPNUhZSzXKzxDHWtAgNuJAbyEJ": {
    "TotalIn": 174000,
    "TotalOut": 12500,
    "RateIn": 100,
    "RateOut": 50
  }
}
```

### NetBandwidthStatsByProtocol

Perms: read

Inputs: `null`

Response:

```json
{
  "/fil/hello/1.0.0": {
    "TotalIn": 174000,
    "TotalOut": 12500,
    "RateIn": 100,
    "RateOut": 50
  }
}
```

### NetBlockAdd

Perms: admin

Inputs:

```json
[
  {
    "Peers": [
      "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
    ],
    "IPAddrs": [
      "string value"
    ],
    "IPSubnets": [
      "string value"
    ]
  }
]
```

Response: `{}`

### NetBlockList

Perms: read

Inputs: `null`

Response:

```json
{
  "Peers": [
    "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
  ],
  "IPAddrs": [
    "string value"
  ],
  "IPSubnets": [
    "string value"
  ]
}
```

### NetBlockRemove

Perms: admin

Inputs:

```json
[
  {
    "Peers": [
      "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
    ],
    "IPAddrs": [
      "string value"
    ],
    "IPSubnets": [
      "string value"
    ]
  }
]
```

Response: `{}`

### NetConnect

Perms: write

Inputs:

```json
[
  {
    "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "Addrs": [
      "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
    ]
  }
]
```

Response: `{}`

### NetConnectedness

Perms: read

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response: `1`

### NetDisconnect

Perms: write

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response: `{}`

### NetFindPeer

Perms: read

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response:

```json
{
  "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "Addrs": [
    "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
  ]
}
```

### NetLimit

Perms: read

Inputs:

```json
[
  "string value"
]
```

Response:

```json
{
  "Memory": 9,
  "Streams": 123,
  "StreamsInbound": 123,
  "StreamsOutbound": 123,
  "Conns": 123,
  "ConnsInbound": 123,
  "ConnsOutbound": 123,
  "FD": 123
}
```

### NetPeerInfo

Perms: read

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response:

```json
{
  "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
  "Agent": "string value",
  "Addrs": [
    "string value"
  ],
  "Protocols": [
    "string value"
  ],
  "ConnMgrMeta": {
    "FirstSeen": "0001-01-01T00:00:00Z",
    "Value": 123,
    "Tags": {
      "name": 42
    },
    "Conns": {
      "name": "2021-03-08T22:52:18Z"
    }
  }
}
```

### NetPeers

Perms: read

Inputs: `null`

Response:

```json
[
  {
    "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "Addrs": [
      "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
    ]
  }
]
```

### NetPing

Perms: read

Inputs:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

Response: `60000000000`

### NetProtectAdd

Perms: admin

Inputs:

```json
[
  [
    "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
  ]
]
```

Response: `{}`

### NetProtectList

Perms: read

Inputs: `null`

Response:

```json
[
  "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
```

### NetProtectRemove

Perms: admin

Inputs:

```json
[
  [
    "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
  ]
]
```

Response: `{}`

### NetPubsubScores

Perms: read

Inputs: `null`

Response:

```json
[
  {
    "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
    "Score": {
      "Score": 12.3,
      "Topics": {
        "/blocks": {
          "TimeInMesh": 60000000000,
          "FirstMessageDeliveries": 122,
          "MeshMessageDeliveries": 1234,
          "InvalidMessageDeliveries": 3
        }
      },
      "AppSpecificScore": 12.3,
      "IPColocationFactor": 12.3,
      "BehaviourPenalty": 12.3
    }
  }
]
```

### NetSetLimit

Perms: admin

Inputs:

```json
[
  "string value",
  {
    "Memory": 9,
    "Streams": 123,
    "StreamsInbound": 123,
    "StreamsOutbound": 123,
    "Conns": 123,
    "ConnsInbound": 123,
    "ConnsOutbound": 123,
    "FD": 123
  }
]
```

Response: `{}`

### NetStat

Perms: read

Inputs:

```json
[
  "string value"
]
```

Response:

```json
{
  "System": {
    "NumStreamsInbound": 123,
    "NumStreamsOutbound": 123,
    "NumConnsInbound": 123,
    "NumConnsOutbound": 123,
    "NumFD": 123,
    "Memory": 9
  },
  "Transient": {
    "NumStreamsInbound": 123,
    "NumStreamsOutbound": 123,
    "NumConnsInbound": 123,
    "NumConnsOutbound": 123,
    "NumFD": 123,
    "Memory": 9
  },
  "Services": {
    "abc": {
      "NumStreamsInbound": 1,
      "NumStreamsOutbound": 2,
      "NumConnsInbound": 3,
      "NumConnsOutbound": 4,
      "NumFD": 5,
      "Memory": 123
    }
  },
  "Protocols": {
    "abc": {
      "NumStreamsInbound": 1,
      "NumStreamsOutbound": 2,
      "NumConnsInbound": 3,
      "NumConnsOutbound": 4,
      "NumFD": 5,
      "Memory": 123
    }
  },
  "Peers": {
    "abc": {
      "NumStreamsInbound": 1,
      "NumStreamsOutbound": 2,
      "NumConnsInbound": 3,
      "NumConnsOutbound": 4,
      "NumFD": 5,
      "Memory": 123
    }
  }
}
```

## Backup

### OnlineBackup

There are not yet any comments for this method.

Perms: admin

Inputs:

```json
[
  "string value"
]
```

Response: `{}`

## PieceDirectory

### PdBuildIndexForPieceCid

There are not yet any comments for this method.

Perms: admin

Inputs:

```json
[
  null
]
```

Response: `{}`

### PdCleanup

Perms: admin

Inputs: `null`

Response: `{}`

### PdRemoveDealForPiece

Perms: admin

Inputs:

```json
[
  null,
  "string value"
]
```

Response: `{}`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boost.filecoin.io/deployment/boost-architecture/json-rpc-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
