Get Account Balance
Retrieve all cash balances.
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.
All asset information can be viewed with the Account Balance endpoint.
You can use the /api/v1/users/balances
enpoint for account balance information.
Response
{
"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 // Milliseconds since unix epoch
},
{
"asset": "BTC",
"assetname": "Bitcoin",
"balance": "9,7502186644553258",
"locked": "3,3109771999999998",
"free": "6,439241464455326",
"orderFund": "3,3109771999999998",
"requestFund": "0",
"precision": 8,
"timestamp": 1735866257711
},
...
],
"success": true,
"message": null,
"code": 0
}
Get Account Balance
GET
https://api.btcturk.com/api/v1/users/balances
Headers
X-PCK*
string
API public key. You can create the API key from the Account > API Access page in your exchange account.
X-Stamp*
integer
Nonce must be current timestamp in milliseconds. It is a must to sync your current time with API server time which is in miliseconds format. Our servers are using UTC timezone.
X-Signature*
string
Signature is a HMAC-SHA256 encoded message. The HMAC-SHA256 code must be generated using a private key that contains a timestamp as nonce and your API key.
{
"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
},
{
"asset": "BTC",
"assetname": "Bitcoin",
"balance": "9,7502186644553258",
"locked": "3,3109771999999998",
"free": "6,439241464455326",
"orderFund": "3,3109771999999998",
"requestFund": "0",
"precision": 8,
"timestamp": 1735866257711
},
...
],
"success": true,
"message": null,
"code": 0
}
Account Balance Code Example
// You can download ApiClient .net core complete library from github https://github.com/BTCTrader/broker-api-csharp-v2
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var publicKey = configuration["publicKey"];
var privateKey = configuration["privateKey"];
var resourceUrl = configuration["resourceUrl"];
var apiClientV1 = new ApiClientV1(publicKey, privateKey, resourceUrl);
var balances = apiClientV1.GetBalances();
if (balances.Result != null && balances.Result.Success)
{
foreach (var balance in balances.Result.Data)
{
Console.WriteLine(balance.ToString());
}
}
<?php
$base = "https://api.btcturk.com";
$apiKey = "YOUR_API_PUBLIC_KEY";
$apiSecret = "YOUR_API_SECRET";
$method = "/api/v1/users/balances";
$uri = $base.$method;
$nonce = time()*1000;
$message = $apiKey.$nonce;
$signatureBytes = hash_hmac("sha256", $message, base64_decode($apiSecret), true);
$signature = base64_encode($signatureBytes);
$headers = array(
"X-PCK: ".$apiKey,
"X-Stamp: ".$nonce,
"X-Signature: ".$signature,
"Cache-Control: no-cache",
"Content-Type: application/json");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_HTTP_VERSION, "CURL_HTTP_VERSION_1_2");
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
print_r(curl_error($ch));
}
$answer = json_decode($result);
print_r($answer);
import time, base64, hmac, hashlib, requests, json
base = "https://api.btcturk.com"
method = "/api/v1/users/balances"
uri = base+method
apiKey = "YOUR_API_PUBLIC_KEY"
apiSecret = "YOUR_API_SECRET"
apiSecret = base64.b64decode(apiSecret)
stamp = str(int(time.time())*1000)
data = "{}{}".format(apiKey, stamp).encode("utf-8")
signature = hmac.new(apiSecret, data, hashlib.sha256).digest()
signature = base64.b64encode(signature)
headers = {"X-PCK": apiKey, "X-Stamp": stamp, "X-Signature": signature, "Content-Type" : "application/json"}
result = requests.get(url=uri, headers=headers)
result = result.json()
print(json.dumps(result, indent=2))
publicKey := "PUBLIC_KEY_HERE"
privateKey := "PRIVATE_KEY_HERE"
base = "https://api.btcturk.com"
method = "/api/v1/users/balances"
uri = base + method
key, error := base64.StdEncoding.DecodeString(privateKey)
if error != nil {
return error
}
nonce := fmt.Sprint(time.Now().UTC().UnixMilli())
message := publicKey + nonce
hmac := hmac.New(sha256.New, key)
hmac.Write([]byte(message))
signature := base64.StdEncoding.EncodeToString(hmac.Sum(nil))
request, _ := http.NewRequest("GET", uri, nil)
request.Header.Set("X-PCK", publicKey)
request.Header.Set("X-Stamp", nonce)
request.Header.Set("X-Signature", signature)
request.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(request)
defer response.Body.Close()
body, _ := ioutil.ReadAll(response.Body)
fmt.Println(response)
fmt.Println(string(body))
const API_KEY = "API_KEY_HERE"
const API_SECRET = "API_SECRET_HERE"
const base = 'https://api.btcturk.com'
const method = '/api/v1/users/balances'
const uri = base+method;
const options = {method: 'GET', headers: authentication()};
fetch(uri, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
function authentication() {
const stamp = (new Date()).getTime()
const data = Buffer.from(`${API_KEY}${stamp}`, 'utf8')
const buffer = crypto.createHmac('sha256', Buffer.from(API_SECRET, 'base64'))
buffer.update(data)
const digest = buffer.digest()
const signature = Buffer.from(digest.toString('base64'), 'utf8').toString('utf8')
return {
"Content-type": 'application/json',
"X-PCK": API_KEY,
"X-Stamp": stamp.toString(),
"X-Signature": signature,
}
}
public_key = 'PUBLIC_KEY_HERE'
private_key = 'PRIVATE_KEY_HERE'
uri = URI.parse("https://api.btcturk.com/api/v1/users/balances")
timestamp = Time.now.to_i*1000
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
data = public_key + timestamp.to_s
private_key = Base64.decode64(private_key).strip
digest = OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), private_key, data)
sign = Base64.encode64(digest).strip
request['Content-type'] = 'application/json'
request['X-PCK'] = public_key
request['X-Stamp'] = timestamp.to_s
request['X-Signature'] = sign
response = http.request(request)
puts response.read_body
Last updated