Get Account Balance
Retrieve every asset balance held by the authenticated user — both fiat and crypto.
warning
For all transactions related to the private endpoint, you must authorize before sending your request.
For more information you can check our Authentication V1 article.
Get Account Balance
GET /api/v1/users/balances
Query Parameters
| Name | Type | Description |
|---|---|---|
| symbol | string | Optional. Filters the result to a single asset symbol, e.g. BTC, TRY. Must be a symbol the platform knows — see Get Currencies. |
An unknown symbol returns 400 symbol-not-found.
Headers
| Name | Type | Description |
|---|---|---|
| X-PCK* | string | API public key. |
| X-Stamp* | integer | Current time in milliseconds since the Unix epoch (UTC). |
| X-Signature* | string | HMAC-SHA256 signature. See Authentication V1. |
| X-Nonce | integer | Optional. Backward tolerance for X-Stamp in milliseconds. Default 5000, maximum 60000. |
This endpoint requires the Total Funds API key permission.
- 200: OK Success
- 400: symbol not found
{
"data": [
{
"asset": "TRY",
"assetName": "Türk Lirası",
"balance": "27223.7283250757643288",
"locked": "4874.3628685722294523",
"free": "22349.3654565035348765",
"orderFund": "4874.3628685722294523",
"requestFund": "0",
"precision": 2,
"timestamp": 1735866257711,
"averageCosts": [
{ "symbol": "TRY", "cost": null },
{ "symbol": "USDT", "cost": null }
]
},
{
"asset": "BTC",
"assetName": "Bitcoin",
"balance": "9.7502186644553258",
"locked": "3.3109771999999998",
"free": "6.439241464455326",
"orderFund": "3.3109771999999998",
"requestFund": "0",
"precision": 8,
"timestamp": 1735866257711,
"averageCosts": [
{ "symbol": "TRY", "cost": "1245000.12" },
{ "symbol": "USDT", "cost": "42500.55" }
]
}
],
"success": true,
"message": null,
"code": 0
}
{
"title": "Symbol Not Found",
"type": "symbol-not-found",
"status": 400,
"detail": "Symbol 'XYZ' not found"
}
| Field | Type | Description |
|---|---|---|
| asset | string | Asset symbol, e.g. BTC. |
| assetName | string | Full name of the asset. |
| balance | string | Total balance: free plus locked. |
| locked | string | Reserved amount: orderFund plus requestFund. |
| free | string | Amount available to trade or withdraw. |
| orderFund | string | Amount reserved by open orders. |
| requestFund | string | Amount reserved by pending withdrawal requests. |
| precision | int | Number of decimals used for the asset. |
| timestamp | long | Time of the response, milliseconds since the Unix epoch. |
| averageCosts | array | Average cost of the asset in TRY and in USDT (symbol, cost). |
Note that timestamp is expressed in milliseconds since the Unix epoch. averageCosts always contains one entry for TRY and one for USDT; cost is null when no average cost has been recorded for that quote asset.
Code Example
- curl
- C#
curl -X GET "https://api.global.btcturk.com/api/v1/users/balances" \
-H "X-PCK: YOUR_API_PUBLIC_KEY" \
-H "X-Stamp: 1735866257711" \
-H "X-Signature: COMPUTED_SIGNATURE" \
-H "Content-Type: application/json"
var apiKey = "YOUR_API_PUBLIC_KEY";
var apiSecret = "YOUR_API_SECRET";
var stamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
var message = apiKey + stamp;
using var hmac = new HMACSHA256(Convert.FromBase64String(apiSecret));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(message)));
using var client = new HttpClient { BaseAddress = new Uri("https://api.global.btcturk.com") };
client.DefaultRequestHeaders.Add("X-PCK", apiKey);
client.DefaultRequestHeaders.Add("X-Stamp", stamp);
client.DefaultRequestHeaders.Add("X-Signature", signature);
var response = await client.GetAsync("/api/v1/users/balances");
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);