curl --request GET \
--url https://calibri.io/api/v2/atlas/account/balances/{currency} \
--header 'X-Auth-Apikey: <api-key>'import requests
url = "https://calibri.io/api/v2/atlas/account/balances/{currency}"
headers = {"X-Auth-Apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Auth-Apikey': '<api-key>'}};
fetch('https://calibri.io/api/v2/atlas/account/balances/{currency}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://calibri.io/api/v2/atlas/account/balances/{currency}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Auth-Apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://calibri.io/api/v2/atlas/account/balances/{currency}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Auth-Apikey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://calibri.io/api/v2/atlas/account/balances/{currency}")
.header("X-Auth-Apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/atlas/account/balances/{currency}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Auth-Apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"balance": "0",
"balance_safe": "1250.00",
"currency": "usdc",
"locked": "0",
"locked_safe": "61.68",
"redeemable_safe": "318.00",
"address_eoa": "0xE1188438C85C98aADFf1a88f97764E607B4978C3",
"balance_eoa": "42.10"
}Balance by currency
One currency’s balance. Same shape as a list element — prefer balance_safe / locked_safe / redeemable_safe over the always-zero operator pool fields.
curl --request GET \
--url https://calibri.io/api/v2/atlas/account/balances/{currency} \
--header 'X-Auth-Apikey: <api-key>'import requests
url = "https://calibri.io/api/v2/atlas/account/balances/{currency}"
headers = {"X-Auth-Apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Auth-Apikey': '<api-key>'}};
fetch('https://calibri.io/api/v2/atlas/account/balances/{currency}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://calibri.io/api/v2/atlas/account/balances/{currency}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Auth-Apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://calibri.io/api/v2/atlas/account/balances/{currency}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Auth-Apikey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://calibri.io/api/v2/atlas/account/balances/{currency}")
.header("X-Auth-Apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/atlas/account/balances/{currency}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Auth-Apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"balance": "0",
"balance_safe": "1250.00",
"currency": "usdc",
"locked": "0",
"locked_safe": "61.68",
"redeemable_safe": "318.00",
"address_eoa": "0xE1188438C85C98aADFf1a88f97764E607B4978C3",
"balance_eoa": "42.10"
}Authorizations
HMAC-signed API key. Send X-Auth-Apikey, X-Auth-Nonce and X-Auth-Signature.
Path Parameters
Response
Operator-held pool. Calibri does not operate one, so this is always "0"; retained for schema stability. There is no total field — earlier docs claimed one, and the serializer has never emitted it.
"0"
Available balance — the off-chain mirror of the USDC in your on-chain Safe. This is the figure that matters.
"1250.00"
Currency code, e.g. usdc.
"usdc"
Operator-held pool. Always "0".
"0"
Reserved by resting signed orders and their taker-fee reserve. Released when an order fills, rests, or is cancelled.
"61.68"
Winnings you have made but NOT yet collected. When a market resolves in your favour the payout stays in the ConditionalTokens contract until you redeem it — only you can, from your own Safe. This is NOT spendable: it is not part of balance_safe and cannot back an order until you redeem, at which point it moves into balance_safe.
"318.00"
The linked wallet address the balance above belongs to.
"0xE1188438C85C98aADFf1a88f97764E607B4978C3"
Raw on-chain balance of the linked wallet, when the scanner has seen it. OMITTED rather than zeroed when unknown — the funding panel shows a dash for "no reading yet", which is not the same as an empty wallet.
"42.10"