curl --request POST \
--url https://public-api.birdeye.so/token/v1/transfer/total \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"limit": 100
}
'import requests
url = "https://public-api.birdeye.so/token/v1/transfer/total"
payload = {
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"limit": 100
}
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({
token_address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
time_from: 1727788070,
time_to: 1727788076,
from_amount: 10.01,
to_amount: 10.001,
from_value: 1.001,
to_value: 10000,
from_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
to_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
limit: 100
})
};
fetch('https://public-api.birdeye.so/token/v1/transfer/total', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"total": 10
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}Token - Transfer Total
Retrieve the total number of transfers for a specified token.
curl --request POST \
--url https://public-api.birdeye.so/token/v1/transfer/total \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"limit": 100
}
'import requests
url = "https://public-api.birdeye.so/token/v1/transfer/total"
payload = {
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"limit": 100
}
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({
token_address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
time_from: 1727788070,
time_to: 1727788076,
from_amount: 10.01,
to_amount: 10.001,
from_value: 1.001,
to_value: 10000,
from_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
to_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
limit: 100
})
};
fetch('https://public-api.birdeye.so/token/v1/transfer/total', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"total": 10
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}- Usage Note
- Accessibility
- Chain Supported
Cheap transfer-count summary for one Solana token.
- Solana transfer data is available from epoch
257(2021-11-12). - Use the same token and transfer filters as the transfer-list endpoint when you only need aggregate counts.
- This endpoint returns totals, not the underlying transfer rows.
- Standard
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
1 CUper request.
Use Cases 💡
Use Cases 💡
- Count token transfers before loading a heavier transfer list.
- Show transfer activity totals in dashboards, badges, or quick summaries.
- Prefilter tokens with unusual transfer intensity before deeper analysis.
How to Use 🛠️
How to Use 🛠️
- Set
x-chain=solana. - Send the token mint and any transfer filters in the POST body.
- Use the returned count to decide whether you need the full transfer list.
Best Practices ✅
Best Practices ✅
- Use this endpoint as a cheap preflight before paginating transfer rows.
- Keep the filter set identical to the transfer-list call if you plan to compare count and rows.
Limitations ⚠️
Limitations ⚠️
- Solana only.
- Historical coverage starts from epoch
257(2021-11-12). - Returns totals only, not transfer row details.
Authorizations
API key for authentication
Headers
Solana network only.
solana Body
Address of the token to retrieve transfers for.
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
Start of the transfer time range as a Unix timestamp.
1727788070
End of the transfer time range as a Unix timestamp.
1727788076
Minimum token amount to include.
10.01
Maximum token amount to include.
10.001
Minimum transfer value in USD to include.
1.001
Maximum transfer value in USD to include.
10000
Address of the sender wallet.
"41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu"
Address of the recipient wallet.
"41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu"
Was this page helpful?

