Account
GET /v1/balance — Account Balance and Trading Status
Check your CSBoard balance in USD, how much is settled versus held, and whether trading is enabled for your API key.
GET
/
balance
Account balance and trading status
curl --request GET \
--url https://csboard.com/v1/balance \
--header 'Authorization: Bearer <token>'import requests
url = "https://csboard.com/v1/balance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://csboard.com/v1/balance', 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://csboard.com/v1/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://csboard.com/v1/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://csboard.com/v1/balance")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://csboard.com/v1/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"currency": "USD",
"balance_usd": 1240.55,
"trading_enabled": true,
"settled_balance_usd": 980.1,
"held_usd": 260.45,
"held_until": "2026-07-06T12:00:00Z"
}{
"code": "missing_api_key",
"detail": "Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"
}{
"code": "rate_limit_exceeded",
"detail": "Rate limit of 100 requests/min exceeded."
}The balance endpoint returns your current balance in USD along with the breakdown that matters for automated buying: how much is settled versus how much is currently held. Settled funds are reversal-safe and available to spend on reversal-safe purchases. Use
trading_enabled to confirm buying is turned on for the key before you attempt an order.
Authentication required. Send your key as Authorization: Bearer csb_pub_....
Parameters
This endpoint takes no query parameters.Response fields
string
required
Always
"USD". All amounts are denominated in US dollars.number
required
Your total balance in USD.
boolean
required
Whether buying is enabled for this API key. If
false, purchase endpoints return trading_not_enabled.number
required
The portion of your balance that is settled and reversal-safe. This is what you can spend on reversal-safe purchases such as
POST /v1/market/buy.number
required
The portion of your balance currently held.
datetime | null
required
ISO 8601 timestamp of when the held portion clears, or
null if nothing is held.Example request
curl https://csboard.com/v1/balance \
-H "Authorization: Bearer csb_pub_..."
Example response
{
"currency": "USD",
"balance_usd": 1240.55,
"trading_enabled": true,
"settled_balance_usd": 980.10,
"held_usd": 260.45,
"held_until": "2026-07-06T12:00:00Z"
}
Error codes
| HTTP status | Code | Meaning |
|---|---|---|
| 401 | missing_api_key / invalid_api_key | Missing or invalid API key. |
| 429 | rate_limit_exceeded | Too many requests. Back off for the Retry-After header value. |
Check
settled_balance_usd, not balance_usd, before calling reversal-safe purchase endpoints — held funds cannot be spent there.Authorizations
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile.
Response
Current balance and trading status.
Example:
"USD"
Total balance in USD.
Whether buying is enabled for this key.
Portion of the balance that is settled (reversal-safe) and spendable on reversal-safe purchases.
Portion of the balance currently held.
When the held portion clears, or null if nothing is held.
⌘I
Account balance and trading status
curl --request GET \
--url https://csboard.com/v1/balance \
--header 'Authorization: Bearer <token>'import requests
url = "https://csboard.com/v1/balance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://csboard.com/v1/balance', 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://csboard.com/v1/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://csboard.com/v1/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://csboard.com/v1/balance")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://csboard.com/v1/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"currency": "USD",
"balance_usd": 1240.55,
"trading_enabled": true,
"settled_balance_usd": 980.1,
"held_usd": 260.45,
"held_until": "2026-07-06T12:00:00Z"
}{
"code": "missing_api_key",
"detail": "Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"
}{
"code": "rate_limit_exceeded",
"detail": "Rate limit of 100 requests/min exceeded."
}