Elis-API
Bitcoin API call list (as of version 0.3.20.2) with code samples and returned values.
Contents
API Calls
API Calls to JSON-RPC are sent using POST method and parameters are sent as JSON object.
Example Request
When requesting something from the JSON-RPC server the request is sent to the server with the following URL: http://user:pass@localhost:8332/ with post data that looks something like this:
{"method":"listreceivedbyaccount","params":[0],"id":"listreceivedbyaccount"}:
The Bitcoind server uses JSON notation instead of using regular POST parameters which can cause confusions sometime. Note the trailing colon on the post data above.
The JSON object that is being sent to the server is composed of 3 elements: method, params, and id.
method is what method you want to invoke, this is a simple string representing the method you’re invoking.
params is the Array parameters that you’re sending with the method invocation. Note that these parameters are sent as an Array notation and not Object notation.
id is used by the app requesting, and I usually just send the method name as the ID
Calls List
Required arguments are denoted inside < and > Optional arguments are inside [ and ].
backupwallet
Safely copies wallet.dat to destination, which can be a directory or a path with filename.
Arguments
[0] <Destination> String The destination of the wallet file it will be copied to. This needs to be a valid directory in your file system passed in linux style (forward slashes (/) as separators – linux style, not backward slashes () – windows style). The directory must not have a file named wallet.dat otherwise the operation will fail. Example: "d:/wallet-backup/"
Example Request
{"method":"backupwallet","params":["d:/wallet-backup/"],"id":"backupwallet"}:
Result
Success
result = null
{ "result": null, "error": null, "id": "backupwallet" }
Error
{ "result": null, "error": { "code": -1, "message": "boost::filesystem::copy_file: The file exists: "C:\Users\Eli\AppData\Roaming\Bitcoin\testnet\wallet.dat", "d:\wallet-backup\wallet.dat"" }, "id": "backupwallet" }
There are other errors that can occur, for example if the directory provided is incorrect.
getaccount
Returns the account associated with the given address.
Arguments
[0] <Bitcoin Address> String The address being checked. Example: "n3CoNg6qBkJauJq5558PrfEHJd8f1emkQZ” (note that this a testnet address), ""
Example Request
{"method":"getaccount","params":["n3CoNg6qBkJauJq5558PrfEHJd8f1emkQZ"],"id":"getaccount"}:
Result
result = String the account that the address is associated with.
Note that some addresses in a bitcoin wallet are not associated with any given account and in those cases the result will be an empty string (i.e. the global account).
Success
{ "result": "Testnet Faucet", "error": null, "id": "getaccount" }
Error
The only time that this method returns an error is when the first argument ([0] Bitcoin Address) is not supplied. In any other case the method will return a successful result with an empty "result" value indicating that the address belongs to the global account, even if no address supplied (i.e. empty string: "") or a bad address altogether (i.e. "eli").
{ "result": null, "error": { "code": -1, "message": "getaccount <bitcoinaddress>nReturns the account associated with the given address." }, "id": "getaccount" }
getaccountaddress
Returns the current bitcoin address for receiving payments to this account.
Arguments
[0] <Account> String The account that you want to get an address for. An empty string is considered as the global account and will return a valid address. Example: "Testnet Faucet", ""
Example Request
{"method":"getaccountaddress","params":["Testnet Faucet"],"id":"getaccountaddress"}:
Result
Success
result = String an address associated with this account.
{ "result": "mpFrRfLZRWCKzG2VmmxajJLcGpchsYiFQo", "error": null, "id": "getaccountaddress" }
Error
{ "result": null, "error": { "code": -1, "message": "getaccountaddress <account>nReturns the current bitcoin address for receiving payments to this account." }, "id": "getaccountaddress" }
This error is only returned if no arguments supplied at all (not even an empty string).
getaddressesbyaccount
Returns the list of addresses for the given account.
Arguments
[0] <Account> String The account that you want to get addresses for. An empty string is considered as the global account and will return a valid address. Example: "Testnet Faucet", ""
Example Request
{"method":"getaddressesbyaccount","params":["Testnet Faucet"],"id":"getaddressesbyaccount"}:
Result
Success
result = Array An array of addresses associated with the account.
{ "result": [ "mpFrRfLZRWCKzG2VmmxajJLcGpchsYiFQo", "mv97croRs1krPoTXsfoSnxT7YhUn4zECUs" ], "error": null, "id": "getaddressesbyaccount" }
Error
{ "result": null, "error": { "code": -1, "message": "getaddressesbyaccount <account>nReturns the list of addresses for the given account." }, "id": "getaddressesbyaccount" }
This error is only returned if no arguments supplied at all (not even an empty string).
getbalance
If [Account] is not specified, returns the server’s total available balance. If [Account] is specified, returns the balance in the account.
Arguments
[0] [Account] String The account that you want to balance. An empty string is considered as the global account and will return a the balance of the global account. A null value will return the entire balance available for the server. Example: "Testnet Faucet", "", null
[1] [Minimum Confirmations] Integer The minimum confirmations you want to consider when requesting balance. Default value is 1. If 0 is supplied even unconfirmed transactions will be considered and will show in the balance. Example: 1, 0, null
Example Request
{"method":"getbalance","params":[],"id":"getbalance"}:
Result
Success
result = Float A float representing the balance that the account or the server has to it’s disposal.
{ "result": 256.4985, "error": null, "id": "getbalance" }
Error
No error should be returned with this method.
getblockbycount
Dumps the block existing at specified height. Note: this is not available in the official release
Arguments
[0] Height