curl --request POST \
--url https://api.kraken.com/0/private/Balance \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"rebase_multiplier": "rebased"
}
'import requests
url = "https://api.kraken.com/0/private/Balance"
payload = {
"nonce": 123,
"rebase_multiplier": "rebased"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({nonce: 123, rebase_multiplier: 'rebased'})
};
fetch('https://api.kraken.com/0/private/Balance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/Balance"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"rebase_multiplier\": \"rebased\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [],
"result": {
"ZUSD": "171288.6158",
"ZEUR": "504861.8946",
"XXBT": "1011.1908877900",
"XETH": "818.5500000000",
"USDT": "500000.00000000",
"DAI": "9999.9999999999",
"DOT": "2.5000000000",
"ETH2.S": "198.3970800000",
"ETH2": "2.5885574330",
"USD.M": "1213029.2780"
}
}Get Account Balance
Retrieve all cash balances, net of pending withdrawals.
Pass account_id to retrieve balances for a specific wallet. Omit it to use the authenticated user’s default wallet. Use List Wallet Accounts to obtain wallet account IDs.
Note on Staking/Earn assets: We have begun to migrate assets from our legacy Staking system over to a new Earn system. As such, the following assets may appear in your balances and ledger. Please see our Support article for more details. Note that these assets are “read-only”, to interact with your balances in them please use the base asset (e.g. USDT to transact with your USDT and USDT.F balances).
Symbol Extensions:
.B: balances in new yield-bearing products, similar to.S(staked) and.M(opt-in rewards) balances.F: balances earning automatically in Kraken Rewards.T: tokenized assets.
API Key Permissions Required: Funds permissions - Query
curl --request POST \
--url https://api.kraken.com/0/private/Balance \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"rebase_multiplier": "rebased"
}
'import requests
url = "https://api.kraken.com/0/private/Balance"
payload = {
"nonce": 123,
"rebase_multiplier": "rebased"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({nonce: 123, rebase_multiplier: 'rebased'})
};
fetch('https://api.kraken.com/0/private/Balance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/Balance"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"rebase_multiplier\": \"rebased\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [],
"result": {
"ZUSD": "171288.6158",
"ZEUR": "504861.8946",
"XXBT": "1011.1908877900",
"XETH": "818.5500000000",
"USDT": "500000.00000000",
"DAI": "9999.9999999999",
"DOT": "2.5000000000",
"ETH2.S": "198.3970800000",
"ETH2": "2.5885574330",
"USD.M": "1213029.2780"
}
}Authorizations
The "API-Key" header should contain your API key.
Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path.
Query Parameters
Public wallet account ID. Omit to use the authenticated user's default wallet. See List Wallet Accounts.
Body
Was this page helpful?