curl --request GET \
--url https://public-api.birdeye.so/token/v1/chart/tag-holdings \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/token/v1/chart/tag-holdings"
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://public-api.birdeye.so/token/v1/chart/tag-holdings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"bundler": [
{
"total_holder": 2,
"total_holding": 0.000002,
"time": 1700697600
}
],
"sniper": [
{
"total_holder": 1,
"total_holding": 0,
"time": 1700697600
}
]
},
"success": true
}{
"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 - Tag Holdings Chart
Retrieve timestamped holder and holding data grouped by Solana holder tag type. Each tag returns up to 100 chart points.
curl --request GET \
--url https://public-api.birdeye.so/token/v1/chart/tag-holdings \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/token/v1/chart/tag-holdings"
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://public-api.birdeye.so/token/v1/chart/tag-holdings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"bundler": [
{
"total_holder": 2,
"total_holding": 0.000002,
"time": 1700697600
}
],
"sniper": [
{
"total_holder": 1,
"total_holding": 0,
"time": 1700697600
}
]
},
"success": true
}{
"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
Holder and holding trends grouped by wallet tag.
tag_typesupportsbundlerandsniper. Omit it to return all supported tag series.chart_typecontrols the time interval and supports1d,1h, and1m.time_fromandtime_toare unix timestamps in seconds.time_todefaults to now.- Each tag series contains timestamped points with
total_holder,total_holding, andtime.
Reading the numbers. total_holder is the number of wallets with the tag that hold the token at that point. total_holding is the token amount held by that tagged cohort.
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
20 CUper request.
Wallet Tag Definitions 🏷️
Wallet Tag Definitions 🏷️
- dev — The wallet that created the token: the mint creator from the initialize-mint transaction.
- sniper — A wallet that bought within the first
nblocks of the token, counted from the token’s first swap. On Solana,n = 5; a buy qualifies when its slot is withinfirst_trade_slot + 5.
- bundler — Coordinated buying detected in either level:
- Level 1: at least 4 buy transactions in the same slot.
- Level 2: at least 3 distinct wallets buying across adjacent slots, where max slot gap is 1.
- insider — A wallet that received the token directly from the Chef wallet via token transfer, not via a swap.
- smart_trader — A non-bot wallet ranked in Top Realized PnL over the last 90 days with realized PnL > $10,000. Wallets identified as bots are excluded before ranking and never receive this tag.
Use Cases 💡
Use Cases 💡
- Turn holder labels into a living time series: watch bundler and sniper cohorts expand, shrink, accumulate, or distribute over time.
- Build launch-quality charts that show whether suspicious early cohorts are still holding meaningful supply after trading begins.
- Detect changing risk posture when tagged holder count falls while tagged holding remains high, or when holding drops sharply across a short window.
- Pair tag holdings with price and volume charts to understand whether labeled wallets are supporting momentum or selling into demand.
- Create narrative research panels that show how token ownership evolves from launch concentration toward broader or riskier distribution.
How to Use 🛠️
How to Use 🛠️
- Provide a Solana
token_address. - Choose
chart_type=1m,1h, or1dbased on the granularity you need. - Use
tag_type=bundler,tag_type=sniper, or omittag_typeto return all supported tags. - Use
time_fromandtime_toto focus on a launch window, volatility event, or post-launch period. - Plot
total_holderandtotal_holdingtogether to see both cohort size and token exposure.
Best Practices ✅
Best Practices ✅
- Compare holder count and holding amount together; a small holder count with high holding can signal concentrated tagged exposure.
- Align tag-holding changes with price and volume candles to see whether tagged cohorts accumulated before momentum or distributed into demand.
- Use this endpoint for time-series cohort behavior, then use holder-positions when you need the exact wallets.
- Keep the chart window focused; shorter windows make launch and exit patterns easier to interpret.
Limitations ⚠️
Limitations ⚠️
- Solana only.
- Supported
tag_typevalues arebundlerandsniper. - Supported
chart_typevalues are1d,1h, and1m. - Each tag returns up to 100 chart points.
- This endpoint returns tagged cohort trends, not individual wallet-level positions.
Authorizations
API key for authentication
Headers
Solana network only.
solana Query Parameters
Token contract address.
Chart interval: 1d, 1h, 1m.
1d, 1h, 1m Comma-separated holder tag types. Omit to return all supported tag types.
bundler, sniper ["bundler", "sniper"]
Start time using unix timestamp in seconds. Defaults to 3 months before the current time.
1 <= x <= 10000000000End time using unix timestamp in seconds. Defaults to the current time.
1 <= x <= 10000000000Response
JSON object containing holder chart data grouped by tag type
Was this page helpful?

