Read listed and selected token balances
curl --request GET \
--url https://api.route.fun/api/v2/wallets/{address}/balancesconst options = {method: 'GET'};
fetch('https://api.route.fun/api/v2/wallets/{address}/balances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.route.fun/api/v2/wallets/{address}/balances"
response = requests.get(url)
print(response.text){
"tokens": [
{
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"verified": true,
"balance": "<string>"
}
],
"wallet": "<string>",
"chainId": 4663,
"blockNumber": "<string>",
"coverage": "listed-and-selected",
"failed": 123
}Data
Read listed and selected token balances
No API key required. 30 requests per minute per caller, with separate shared data capacity. Search covers listed tokens or an exact contract address. Balances cover listed and selected tokens, not every wallet asset, and report partial failures. Transaction status reports chain inclusion and finality; not_found is not proof a transaction was never submitted. It does not verify a swap against its quote.
GET
/
api
/
v2
/
wallets
/
{address}
/
balances
Read listed and selected token balances
curl --request GET \
--url https://api.route.fun/api/v2/wallets/{address}/balancesconst options = {method: 'GET'};
fetch('https://api.route.fun/api/v2/wallets/{address}/balances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.route.fun/api/v2/wallets/{address}/balances"
response = requests.get(url)
print(response.text){
"tokens": [
{
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"verified": true,
"balance": "<string>"
}
],
"wallet": "<string>",
"chainId": 4663,
"blockNumber": "<string>",
"coverage": "listed-and-selected",
"failed": 123
}No API key required.
API overview