Price - Multiple
curl --request POST \
--url https://public-api.birdeye.so/defi/multi_price \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"list_address": "So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
}
'import requests
url = "https://public-api.birdeye.so/defi/multi_price"
payload = { "list_address": "So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
list_address: 'So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263'
})
};
fetch('https://public-api.birdeye.so/defi/multi_price', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"So11111111111111111111111111111111111111112": {
"isScaledUiToken": false,
"value": 127.32916175338693,
"updateUnixTime": 1726673192,
"updateHumanTime": "2024-09-18T15:26:32",
"priceInNative": 1,
"priceChange24h": -5.833510393308625,
"liquidity": 7026264396
},
"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263": {
"isScaledUiToken": false,
"value": 0.00001598090539282,
"updateUnixTime": 1726673185,
"updateHumanTime": "2024-09-18T15:26:25",
"priceInNative": 1.2583e-7,
"priceChange24h": -4.766925300538944,
"liquidity": 1234414
}
}
}Price & OHLCV
Price - Multiple
Retrieve the latest price information for multiple tokens. Maximum 100 tokens
POST
/
defi
/
multi_price
Price - Multiple
curl --request POST \
--url https://public-api.birdeye.so/defi/multi_price \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"list_address": "So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
}
'import requests
url = "https://public-api.birdeye.so/defi/multi_price"
payload = { "list_address": "So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
list_address: 'So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263'
})
};
fetch('https://public-api.birdeye.so/defi/multi_price', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"So11111111111111111111111111111111111111112": {
"isScaledUiToken": false,
"value": 127.32916175338693,
"updateUnixTime": 1726673192,
"updateHumanTime": "2024-09-18T15:26:32",
"priceInNative": 1,
"priceChange24h": -5.833510393308625,
"liquidity": 7026264396
},
"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263": {
"isScaledUiToken": false,
"value": 0.00001598090539282,
"updateUnixTime": 1726673185,
"updateHumanTime": "2024-09-18T15:26:25",
"priceInNative": 1.2583e-7,
"priceChange24h": -4.766925300538944,
"liquidity": 1234414
}
}
}- Usage Note
- Accessibility
- Chain Supported
Batch spot pricing with request-body input.
- This is the POST variant of
Price - Multipleand is useful when the token list is easier to send in a JSON payload. - Always use checksum contract addresses on EVM chains and canonical token mint addresses on Solana-like chains.
- Maximum batch size is
100token addresses per request. include_liquidity=truerequests price plus liquidity context for each token when available.- Individual response entries may be
nullor partial if a token is unknown, unsupported, or not yet indexed.
- Lite
- Starter
- Premium
- Business
- Enterprise
All chains ⛓️ ✨
Compute Unit ⚙️
Compute Unit ⚙️
- Batch CU is calculated as
ceil(3 * count^0.8).
Use Cases 💡
Use Cases 💡
- Price many tokens from backend jobs, refresh workers, or API gateways that already hold JSON arrays.
- Hydrate portfolio pages, watchlists, and token grids with one network round trip.
- Support screening systems that need current price snapshots before ranking or filtering assets.
- Lower request overhead when multiple app surfaces need the same batch at once.
How to Use 🛠️
How to Use 🛠️
- Set
x-chainfor the target network. - Send the token list in the POST body using the documented request schema.
- Keep the request under
100addresses. - Use the GET variant when a simple comma-separated query string is more convenient.
Best Practices ✅
Best Practices ✅
- Normalize addresses before batching so you do not waste slots on duplicates or invalid casing.
- Reuse the same batch response across multiple UI components during the same refresh cycle.
- Prefer this POST form when URL length becomes awkward with large token sets.
Authorizations
API key for authentication
Headers
A chain name listed in supported networks.
Available options:
solana, ethereum, bsc, base, robinhood, sui, mantle, hyperevm, arbitrum, avalanche, optimism, polygon, zksync, monad, aptos, fogo, megaeth Query Parameters
Specify the liquidity value to check.
Specify whether to include liquidity in the response.
Available options:
true, false Indicate whether to use the scaled amount for scaled ui amount tokens. Only support solana
Available options:
raw, scaled, both Body
application/json
list_address
string
default:So11111111111111111111111111111111111111112,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
required
Response
JSON object containing price values and update time of multiple tokens
Was this page helpful?

