curl --request GET \
--url https://api.amberdata.com/blockchains/addresses/balances \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/blockchains/addresses/balances"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.amberdata.com/blockchains/addresses/balances', 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://api.amberdata.com/blockchains/addresses/balances",
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-api-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 := "https://api.amberdata.com/blockchains/addresses/balances"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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("https://api.amberdata.com/blockchains/addresses/balances")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/blockchains/addresses/balances")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"title": "OK",
"description": "Successful request",
"payload": {
"0x3f7bb687ab9f04b055f4d326977f17471270499c": {
"balance": "492231474000",
"balanceIn": "3182796362466409764",
"balanceOut": "3182795870234935764",
"price": {
"balance": {
"currency": "usd",
"quote": "3045.10978468",
"total": "0.00149890"
}
},
"tokens": [
{
"decimals": 18,
"name": "Sign",
"symbol": "SIGN",
"amount": "21000000000000000000",
"timestamp": "2025-06-17T13:39:11.000Z",
"address": "0x868fced65edbf0056c4163515dd840e9f287a4c3"
},
{
"decimals": 0,
"name": "Seeing Signs",
"symbol": "$IGN",
"amount": "0",
"timestamp": "2025-12-04T20:03:35.000Z",
"address": "0xbc37ee54f066e79c23389c55925f877f79f3cb84"
},
{
"decimals": 18,
"name": "Wrapped Ether",
"symbol": "WETH",
"amount": "0",
"timestamp": "2025-12-04T20:12:23.000Z",
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
]
},
"0x3b0684dcfb5c0d50e75d512b4562b440c96a1b8d": {
"balance": "197722156918921153",
"balanceIn": "200000003000000006",
"balanceOut": "2277846081078853",
"tokens": [
{
"decimals": 18,
"name": "Gemini3",
"symbol": "Gemini3",
"amount": "10000000000000000000",
"timestamp": "2025-11-27T10:10:59.000Z",
"address": "0xa62c5ef5dc67b6b38b3d14c79efca2c27eca8518"
},
{
"decimals": 18,
"name": "ePEPE",
"symbol": "ePEPE",
"amount": "20000000000000000000",
"timestamp": "2025-11-27T10:10:59.000Z",
"address": "0xdc5cb57711ac6ea18bc9e07404a3fa2a9b4913e9"
},
{
"decimals": 18,
"name": "SPX",
"symbol": "SPX",
"amount": "10000000000000000000",
"timestamp": "2025-11-27T09:08:23.000Z",
"address": "0xdd0d0781fd0045ccb8c4f56ab4229a37f8e86e42"
}
]
}
}
}"Unauthorized""Unknown address or address is not a contract"Account & Token Balances Latest Batch - Multiple Wallets
Retrieves the latest account and token balances for the specified addresses. This is useful if you want to get an entire portfolio’s summary in a single call. Get totals for ETH & all token amounts with market prices.
curl --request GET \
--url https://api.amberdata.com/blockchains/addresses/balances \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/blockchains/addresses/balances"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.amberdata.com/blockchains/addresses/balances', 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://api.amberdata.com/blockchains/addresses/balances",
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-api-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 := "https://api.amberdata.com/blockchains/addresses/balances"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-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("https://api.amberdata.com/blockchains/addresses/balances")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/blockchains/addresses/balances")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"title": "OK",
"description": "Successful request",
"payload": {
"0x3f7bb687ab9f04b055f4d326977f17471270499c": {
"balance": "492231474000",
"balanceIn": "3182796362466409764",
"balanceOut": "3182795870234935764",
"price": {
"balance": {
"currency": "usd",
"quote": "3045.10978468",
"total": "0.00149890"
}
},
"tokens": [
{
"decimals": 18,
"name": "Sign",
"symbol": "SIGN",
"amount": "21000000000000000000",
"timestamp": "2025-06-17T13:39:11.000Z",
"address": "0x868fced65edbf0056c4163515dd840e9f287a4c3"
},
{
"decimals": 0,
"name": "Seeing Signs",
"symbol": "$IGN",
"amount": "0",
"timestamp": "2025-12-04T20:03:35.000Z",
"address": "0xbc37ee54f066e79c23389c55925f877f79f3cb84"
},
{
"decimals": 18,
"name": "Wrapped Ether",
"symbol": "WETH",
"amount": "0",
"timestamp": "2025-12-04T20:12:23.000Z",
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
]
},
"0x3b0684dcfb5c0d50e75d512b4562b440c96a1b8d": {
"balance": "197722156918921153",
"balanceIn": "200000003000000006",
"balanceOut": "2277846081078853",
"tokens": [
{
"decimals": 18,
"name": "Gemini3",
"symbol": "Gemini3",
"amount": "10000000000000000000",
"timestamp": "2025-11-27T10:10:59.000Z",
"address": "0xa62c5ef5dc67b6b38b3d14c79efca2c27eca8518"
},
{
"decimals": 18,
"name": "ePEPE",
"symbol": "ePEPE",
"amount": "20000000000000000000",
"timestamp": "2025-11-27T10:10:59.000Z",
"address": "0xdc5cb57711ac6ea18bc9e07404a3fa2a9b4913e9"
},
{
"decimals": 18,
"name": "SPX",
"symbol": "SPX",
"amount": "10000000000000000000",
"timestamp": "2025-11-27T09:08:23.000Z",
"address": "0xdd0d0781fd0045ccb8c4f56ab4229a37f8e86e42"
}
]
}
}
}"Unauthorized""Unknown address or address is not a contract"Authorizations
Headers
The id of the blockchain
bitcoin-mainnet, bitcoin-abc-mainnet, ethereum-mainnet, litecoin-mainnet, polygon-mainnet Query Parameters
A comma separated list of addresses. NOTE: Max 200 addresses per request!
Get balances for addresses at a specific block height. (NOTE: does not support token holdings for Ethereum at this time.)
Indicates whether or not to include price data with the results. Options: true, false.
The currency of the price information (usd or btc.) - only used in conjunction with includePrice.
[Optional] Time format of the timestamps in the return payload.
[Defaults] milliseconds | ms* | iso | iso8601 | hr | human_readable
Was this page helpful?