Ledger balances
Historical Balances
How to retrieve accurate historical balance information.
GET
/
balances
/
{balance_id}
/
at
Historical Balances
curl --request GET \
--url http://localhost:5001/balances/{balance_id}/at \
--header 'X-blnk-key: <api-key>'import requests
url = "http://localhost:5001/balances/{balance_id}/at"
headers = {"X-blnk-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-blnk-key': '<api-key>'}};
fetch('http://localhost:5001/balances/{balance_id}/at', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "5001",
CURLOPT_URL => "http://localhost:5001/balances/{balance_id}/at",
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-blnk-key: <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 := "http://localhost:5001/balances/{balance_id}/at"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-blnk-key", "<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("http://localhost:5001/balances/{balance_id}/at")
.header("X-blnk-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:5001/balances/{balance_id}/at")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["X-blnk-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)",
"error_detail": {
"code": "BAL_INVALID_TIMESTAMP",
"message": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)"
}
}
{
"error": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found",
"error_detail": {
"code": "BAL_NOT_FOUND",
"message": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found"
}
}
If you’re using the auto-provisioned
Enterprise Core instance included with your Production License deployment, set the base URL to: https://ENTERPRISE_PUBLIC_URL/core.If you’re connecting to a different Core instance, use the publicly accessible base URL for that instance instead.Authorization
If set, the API uses an API key for authentication. Include the following header in your requests:X-blnk-key: <api-key>.
Replace <api-key> with your secret API key. Ensure the key is kept secure and not exposed in public repositories or client-side code.
See also: Scoped API keys and Secure your Blnk server.
Body
string
Specifies the unique ID of the balance being retrieved.
string
required
Specifies the exact date and time for which a historical balance is requestedAlways format the date input as ‘YYYY-MM-DDTHH:MM:SS+00:00’ (e.g., 2024-04-22T15:28:03+00:00), where +00:00 specifies the timezone. It is UTC by default.
GET http://YOUR_BLNK_INSTANCE_URL/balances/{balance_id}/at?timestamp=2025-02-24T08:55:26Z
boolean
When set to
true, it indicates that the balance should be reconstructed directly from its transactions, bypassing balance snapshots.{
"error": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)",
"error_detail": {
"code": "BAL_INVALID_TIMESTAMP",
"message": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)"
}
}
{
"error": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found",
"error_detail": {
"code": "BAL_NOT_FOUND",
"message": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found"
}
}
Need help?
We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool. To ask questions or discuss issues, please contact us or join our Discord community.Was this page helpful?
⌘I
Historical Balances
curl --request GET \
--url http://localhost:5001/balances/{balance_id}/at \
--header 'X-blnk-key: <api-key>'import requests
url = "http://localhost:5001/balances/{balance_id}/at"
headers = {"X-blnk-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-blnk-key': '<api-key>'}};
fetch('http://localhost:5001/balances/{balance_id}/at', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "5001",
CURLOPT_URL => "http://localhost:5001/balances/{balance_id}/at",
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-blnk-key: <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 := "http://localhost:5001/balances/{balance_id}/at"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-blnk-key", "<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("http://localhost:5001/balances/{balance_id}/at")
.header("X-blnk-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:5001/balances/{balance_id}/at")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["X-blnk-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)",
"error_detail": {
"code": "BAL_INVALID_TIMESTAMP",
"message": "invalid timestamp format. Please use ISO 8601 format (e.g., 2024-01-01T15:04:05Z)"
}
}
{
"error": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found",
"error_detail": {
"code": "BAL_NOT_FOUND",
"message": "Balance with ID 'bln_a3f8c2e1-9d4b-4f7a-b6e2-1c8d5f0a7b3e' not found"
}
}