Current Token Balances by Owner
curl --request GET \
--url https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current \
--header 'apikey: <api-key>'import requests
url = "https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current"
headers = {"apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {apikey: '<api-key>'}};
fetch('https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current', 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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"apikey: <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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("apikey", "<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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current")
.header("apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"offset": 0,
"limit": 5,
"result": [
{
"as_of_datetime": "2025-12-11 20:24:50.914",
"account_owner": "4G1mhdPXaUUf2yvCHnZSejDCpPxS7ymPzjYHNfzJqdE9",
"token_address": "EWM4k1APF9T3w4jmYM9PcCGbLgQHPKoECeg9azrnwm6A",
"token_account": "D3jScakVydRU6GvvHa87giakZjdAv7XscjvAV31tyUVW",
"balance": 85000103,
"balance_source": 85000103,
"datetime_last_updated": "2025-12-11 20:24:50.914",
"block_slot_last_updated": 386046164
},
{
"as_of_datetime": "2025-12-11 20:24:50.914",
"account_owner": "4G1mhdPXaUUf2yvCHnZSejDCpPxS7ymPzjYHNfzJqdE9",
"token_address": "orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE",
"token_account": "12QCfo5SdFuyC9P5oioken91gCYK5vnRbXaDVuV5KLpZ",
"balance": 12.956933,
"balance_source": 12956933,
"datetime_last_updated": "2025-12-11 20:24:50.914",
"block_slot_last_updated": 386046164
}
],
"count": 7
}Current
Current Token Balances by Owner
Get current real-time SPL token balances for a wallet owner from Solana RPC
GET
/
api
/
v1
/
customer
/
solana
/
token-balances
/
account-owner
/
{account_owner}
/
current
Current Token Balances by Owner
curl --request GET \
--url https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current \
--header 'apikey: <api-key>'import requests
url = "https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current"
headers = {"apikey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {apikey: '<api-key>'}};
fetch('https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current', 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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"apikey: <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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("apikey", "<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-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current")
.header("apikey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-gateway.sonarx.com/api/v1/customer/solana/token-balances/account-owner/{account_owner}/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["apikey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"offset": 0,
"limit": 5,
"result": [
{
"as_of_datetime": "2025-12-11 20:24:50.914",
"account_owner": "4G1mhdPXaUUf2yvCHnZSejDCpPxS7ymPzjYHNfzJqdE9",
"token_address": "EWM4k1APF9T3w4jmYM9PcCGbLgQHPKoECeg9azrnwm6A",
"token_account": "D3jScakVydRU6GvvHa87giakZjdAv7XscjvAV31tyUVW",
"balance": 85000103,
"balance_source": 85000103,
"datetime_last_updated": "2025-12-11 20:24:50.914",
"block_slot_last_updated": 386046164
},
{
"as_of_datetime": "2025-12-11 20:24:50.914",
"account_owner": "4G1mhdPXaUUf2yvCHnZSejDCpPxS7ymPzjYHNfzJqdE9",
"token_address": "orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE",
"token_account": "12QCfo5SdFuyC9P5oioken91gCYK5vnRbXaDVuV5KLpZ",
"balance": 12.956933,
"balance_source": 12956933,
"datetime_last_updated": "2025-12-11 20:24:50.914",
"block_slot_last_updated": 386046164
}
],
"count": 7
}This endpoint returns live data from the Solana blockchain. For historical balances, use the standard historical endpoint.
Authorizations
API key for authentication
Path Parameters
The Solana wallet owner address (base58 encoded, 32-44 characters)
Example:
"4G1mhdPXaUUf2yvCHnZSejDCpPxS7ymPzjYHNfzJqdE9"
Query Parameters
Number of results to skip for pagination (0-indexed)
Required range:
x >= 0Number of results per page (minimum: 1, maximum: 1000)
Required range:
1 <= x <= 1000⌘I