curl --request GET \
--url https://public-api.birdeye.so/defi/v3/token/list/scroll \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/defi/v3/token/list/scroll"
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/defi/v3/token/list/scroll', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"items": [
{
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"creation_time": 1602610673,
"logo_uri": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"extensions": {
"website": "https://www.circle.com/en/usdc",
"twitter": "https://twitter.com/circle",
"github": "https://github.com/centrehq/centre-tokens",
"discord": "https://discord.com/invite/buildoncircle",
"serum_v3_usdt": "77quYg4MGneUdjgXCunt9GgM1usmrxKY31twEy3WHwcS",
"telegram": null,
"description": "USDC is a fully collateralized US dollar stablecoin. USDC is the bridge between dollars and trading on cryptocurrency exchanges. The technology behind CENTRE makes it possible to exchange value between people, businesses and financial institutions just like email between mail services and texts between SMS providers. We believe by removing artificial economic borders, we can create a more inclusive global economy.",
"medium": "https://medium.com/centre-blog",
"coingecko_id": "usd-coin"
},
"market_cap": 9359949288.472162,
"fdv": 9359949288.472162,
"total_supply": 9361475558.537651,
"circulating_supply": 9361475558.537651,
"liquidity": 717266609.8997043,
"last_trade_unix_time": 1773821608,
"global_fees_paid": 50,
"volume_1m_usd": 1783949.8016073245,
"volume_5m_usd": 6593930.865015753,
"volume_30m_usd": 37151797.047260106,
"volume_1m_change_percent": -16.712719155491957,
"volume_5m_change_percent": 22.319717252902382,
"volume_30m_change_percent": -7.328161152300243,
"volume_1h_usd": 71241764.65583831,
"volume_1h_change_percent": 5.1849793666244945,
"volume_2h_usd": 131380409.39402528,
"volume_2h_change_percent": 4.024396952248327,
"volume_4h_usd": 260864825.9415995,
"volume_4h_change_percent": -1.5700141357838566,
"volume_8h_usd": 497659947.6690345,
"volume_8h_change_percent": -6.21062719905141,
"volume_24h_usd": 1561358883.882102,
"volume_24h_change_percent": -17.59907485415478,
"volume_7d_usd": 11002942936.987179,
"volume_7d_change_percent": 0.19602006660813098,
"volume_30d_usd": 50881158726.32789,
"volume_30d_change_percent": -44.776825872610445,
"trade_1m_count": 3106,
"trade_5m_count": 13823,
"trade_30m_count": 78255,
"trade_1h_count": 152533,
"trade_2h_count": 287556,
"trade_4h_count": 622509,
"trade_8h_count": 1262789,
"trade_24h_count": 3805792,
"trade_7d_count": 26859044,
"trade_30d_count": 106739919,
"buy_24h": 1866645,
"buy_24h_change_percent": -13.838975176566759,
"volume_buy_24h_usd": 785187030.2092333,
"volume_buy_24h_change_percent": -17.483967313700145,
"buy_7d": 13111982,
"buy_7d_change_percent": -1.1499550907164513,
"volume_buy_7d_usd": 5497050486.576448,
"volume_buy_7d_change_percent": -0.11422541847775614,
"buy_30d": 52384055,
"buy_30d_change_percent": -19.06397767685987,
"volume_buy_30d_usd": 25530963641.516197,
"volume_buy_30d_change_percent": -44.845365851293614,
"sell_24h": 1939147,
"sell_24h_change_percent": -14.558761843663639,
"volume_sell_24h_usd": 776171853.6728687,
"volume_sell_24h_change_percent": -17.71518694174977,
"sell_7d": 13747062,
"sell_7d_change_percent": -0.7381533105196504,
"volume_sell_7d_usd": 5505892450.410731,
"volume_sell_7d_change_percent": 0.507695573136195,
"sell_30d": 54355864,
"sell_30d_change_percent": -17.98159868592781,
"volume_sell_30d_usd": 25350195084.81169,
"volume_sell_30d_change_percent": -44.70762485154118,
"unique_wallet_24h": 97794,
"unique_wallet_24h_change_percent": -0.9299781181619255,
"price": 0.9998369626608599,
"price_change_1m_percent": 0.0006212696240536864,
"price_change_5m_percent": 0.001696571468846449,
"price_change_30m_percent": -0.005174309814692479,
"price_change_1h_percent": -0.007304391309228121,
"price_change_2h_percent": -0.004304250424063729,
"price_change_4h_percent": -0.006304364350449888,
"price_change_8h_percent": -0.014304019994411629,
"price_change_24h_percent": -0.0036305799372838227,
"price_change_7d_percent": -0.010137765388845308,
"price_change_30d_percent": -0.01030435217514935,
"holder": 6354377,
"recent_listing_time": null,
"is_scaled_ui_token": false,
"multiplier": null
}
],
"hasNext": true
}
}Token - List (V3) Scroll
Retrieve up to 5,000 tokens per batch. For the first request, apply any filter parameters except scroll_id. For subsequent requests, provide only the scroll_id parameter using the next_scroll_id value returned previously. Limited to 1 scroll_id per account per 30 seconds.
curl --request GET \
--url https://public-api.birdeye.so/defi/v3/token/list/scroll \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/defi/v3/token/list/scroll"
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/defi/v3/token/list/scroll', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"items": [
{
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"creation_time": 1602610673,
"logo_uri": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"extensions": {
"website": "https://www.circle.com/en/usdc",
"twitter": "https://twitter.com/circle",
"github": "https://github.com/centrehq/centre-tokens",
"discord": "https://discord.com/invite/buildoncircle",
"serum_v3_usdt": "77quYg4MGneUdjgXCunt9GgM1usmrxKY31twEy3WHwcS",
"telegram": null,
"description": "USDC is a fully collateralized US dollar stablecoin. USDC is the bridge between dollars and trading on cryptocurrency exchanges. The technology behind CENTRE makes it possible to exchange value between people, businesses and financial institutions just like email between mail services and texts between SMS providers. We believe by removing artificial economic borders, we can create a more inclusive global economy.",
"medium": "https://medium.com/centre-blog",
"coingecko_id": "usd-coin"
},
"market_cap": 9359949288.472162,
"fdv": 9359949288.472162,
"total_supply": 9361475558.537651,
"circulating_supply": 9361475558.537651,
"liquidity": 717266609.8997043,
"last_trade_unix_time": 1773821608,
"global_fees_paid": 50,
"volume_1m_usd": 1783949.8016073245,
"volume_5m_usd": 6593930.865015753,
"volume_30m_usd": 37151797.047260106,
"volume_1m_change_percent": -16.712719155491957,
"volume_5m_change_percent": 22.319717252902382,
"volume_30m_change_percent": -7.328161152300243,
"volume_1h_usd": 71241764.65583831,
"volume_1h_change_percent": 5.1849793666244945,
"volume_2h_usd": 131380409.39402528,
"volume_2h_change_percent": 4.024396952248327,
"volume_4h_usd": 260864825.9415995,
"volume_4h_change_percent": -1.5700141357838566,
"volume_8h_usd": 497659947.6690345,
"volume_8h_change_percent": -6.21062719905141,
"volume_24h_usd": 1561358883.882102,
"volume_24h_change_percent": -17.59907485415478,
"volume_7d_usd": 11002942936.987179,
"volume_7d_change_percent": 0.19602006660813098,
"volume_30d_usd": 50881158726.32789,
"volume_30d_change_percent": -44.776825872610445,
"trade_1m_count": 3106,
"trade_5m_count": 13823,
"trade_30m_count": 78255,
"trade_1h_count": 152533,
"trade_2h_count": 287556,
"trade_4h_count": 622509,
"trade_8h_count": 1262789,
"trade_24h_count": 3805792,
"trade_7d_count": 26859044,
"trade_30d_count": 106739919,
"buy_24h": 1866645,
"buy_24h_change_percent": -13.838975176566759,
"volume_buy_24h_usd": 785187030.2092333,
"volume_buy_24h_change_percent": -17.483967313700145,
"buy_7d": 13111982,
"buy_7d_change_percent": -1.1499550907164513,
"volume_buy_7d_usd": 5497050486.576448,
"volume_buy_7d_change_percent": -0.11422541847775614,
"buy_30d": 52384055,
"buy_30d_change_percent": -19.06397767685987,
"volume_buy_30d_usd": 25530963641.516197,
"volume_buy_30d_change_percent": -44.845365851293614,
"sell_24h": 1939147,
"sell_24h_change_percent": -14.558761843663639,
"volume_sell_24h_usd": 776171853.6728687,
"volume_sell_24h_change_percent": -17.71518694174977,
"sell_7d": 13747062,
"sell_7d_change_percent": -0.7381533105196504,
"volume_sell_7d_usd": 5505892450.410731,
"volume_sell_7d_change_percent": 0.507695573136195,
"sell_30d": 54355864,
"sell_30d_change_percent": -17.98159868592781,
"volume_sell_30d_usd": 25350195084.81169,
"volume_sell_30d_change_percent": -44.70762485154118,
"unique_wallet_24h": 97794,
"unique_wallet_24h_change_percent": -0.9299781181619255,
"price": 0.9998369626608599,
"price_change_1m_percent": 0.0006212696240536864,
"price_change_5m_percent": 0.001696571468846449,
"price_change_30m_percent": -0.005174309814692479,
"price_change_1h_percent": -0.007304391309228121,
"price_change_2h_percent": -0.004304250424063729,
"price_change_4h_percent": -0.006304364350449888,
"price_change_8h_percent": -0.014304019994411629,
"price_change_24h_percent": -0.0036305799372838227,
"price_change_7d_percent": -0.010137765388845308,
"price_change_30d_percent": -0.01030435217514935,
"holder": 6354377,
"recent_listing_time": null,
"is_scaled_ui_token": false,
"multiplier": null
}
],
"hasNext": true
}
}- Usage Note
- Accessibility
- Chain Supported
High-volume token crawl with scroll sessions.
- Use this endpoint when normal offset pagination is not enough and you need to walk a large filtered token universe.
limitsupports1to5000items per request.- Initial request: send your filters without
scroll_id. - Subsequent requests: send only the returned
scroll_idand continue the same crawl session. - Each account is limited by active scroll-session rules; an active scroll expires after about 30 seconds of inactivity, and an empty
itemspage ends the session.
- Business
- Enterprise
All chains ⛓️ ✨
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
300 CUper request.
Use Cases 💡
Use Cases 💡
- Crawl large token universes for offline indexing, warehousing, or scheduled refresh pipelines.
- Export broad market slices that are too large for interactive offset pagination.
- Build internal ranking datasets or research snapshots at chain scale.
- Feed downstream enrichment jobs with token candidates from a consistent filtered population.
How to Use 🛠️
How to Use 🛠️
- Set
x-chainand send your initial filter set withoutscroll_id. - Store the returned
next_scroll_id. - Continue by calling the same endpoint with that
scroll_id. - Stop when
itemsis empty, then start a new initial request if you need a fresh crawl.
Best Practices ✅
Best Practices ✅
- Treat scroll sessions as short-lived pipelines; consume pages promptly instead of leaving them idle.
- Use stable filters for one crawl session so downstream datasets stay internally consistent.
- Reserve this endpoint for backend jobs, not end-user UI pagination, because CU cost is high and session state is temporary.
Authorizations
API key for authentication
Headers
Solana, Base, BSC, Ethereum, Monad, Fogo, Mantle, Hyperevm, Megaeth, Robinhood network.
solana, base, bsc, ethereum, monad, fogo, mantle, hyperevm, megaeth, robinhood Query Parameters
Number of items per page.
1 <= x <= 5000Assign scroll_id to continue fetching data from previous scroll request
Specify the sort field.
liquidity, market_cap, fdv, recent_listing_time, last_trade_unix_time, holder, volume_1m_usd, volume_5m_usd, volume_30m_usd, volume_1h_usd, volume_2h_usd, volume_4h_usd, volume_8h_usd, volume_24h_usd, volume_7d_usd, volume_30d_usd, volume_1m_change_percent, volume_5m_change_percent, volume_30m_change_percent, volume_1h_change_percent, volume_2h_change_percent, volume_4h_change_percent, volume_8h_change_percent, volume_24h_change_percent, volume_7d_change_percent, volume_30d_change_percent, price_change_1m_percent, price_change_5m_percent, price_change_30m_percent, price_change_1h_percent, price_change_2h_percent, price_change_4h_percent, price_change_8h_percent, price_change_24h_percent, price_change_7d_percent, price_change_30d_percent, trade_1m_count, trade_5m_count, trade_30m_count, trade_1h_count, trade_2h_count, trade_4h_count, trade_8h_count, trade_24h_count, trade_7d_count, trade_30d_count, global_fees_paid Specify the sort order.
desc, asc Specify the lower bound of liquidity. Filter for records with liquidity greater than the minimum liquidity value, including those with liquidity equal to the minimum.
Specify the upper bound of liquidity. Filter for records with liquidity less than the maximum liquidity value, including those with liquidity equal to the maximum.
Specify the lower bound of market cap. Filter for records with market cap greater than the minimum market cap value, including those with market cap equal to the minimum.
Specify the upper bound of market cap. Filter for records with market cap less than the maximum market cap value, including those with market cap equal to the maximum.
Specify the lower bound of FDV. Filter for records with FDV greater than the minimum FDV value, including those with FDV equal to the minimum.
Specify the upper bound of FDV. Filter for records with FDV less than the maximum FDV value, including those with FDV equal to the maximum.
Specify the lower bound of recent listing time. Filter for records with recent listing time greater than the minimum recent listing time value, including those with recent listing time equal to the minimum.
1 <= x <= 10000000000Specify the upper bound of recent listing time. Filter for records with recent listing time less than the maximum recent listing time value, including those with recent listing time equal to the maximum.
1 <= x <= 10000000000Specify the lower bound of last trade time. Filter for records with last trade time greater than the minimum last trade time value, including those with last trade time equal to the minimum.
1 <= x <= 10000000000Specify the upper bound of last trade time. Filter for records with last trade time less than the maximum last trade time value, including those with last trade time equal to the maximum.
1 <= x <= 10000000000Specify the minimum number of holders. Filter for records with holder count greater than the minimum holder count value, including those with holder count equal to the minimum.
Specify the minimum volume in the last minute. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last 5 minutes. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last 30 minutes. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last hour. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last two hours. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last four hours. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last eight hours. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last 24 hours. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last 7 days. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum volume in the last 30 days. Filter for records with volume greater than the minimum volume value, including those with volume equal to the minimum.
Specify the minimum all-time global fee paid amount in SOL.
Specify the minimum volume change percentage in the last minute. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last 5 minutes. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last 30 minutes. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last hour. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last two hours. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last four hours. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last eight hours. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last 24 hours. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last 7 days. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum volume change percentage in the last 30 days. Filter for records with volume change percentage greater than the minimum volume change percentage value, including those with volume change percentage equal to the minimum.
Specify the minimum price change percentage in the last minute. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last 5 minutes. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last 30 minutes. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last hour. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last two hours. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last four hours. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last eight hours. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last 24 hours. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last 7 days. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum price change percentage in the last 30 days. Filter for records with price change percentage greater than the minimum price change percentage value, including those with price change percentage equal to the minimum.
Specify the minimum number of trades in the last minute. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the 5 minutes. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last 30 minutes. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last hour. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last two hours. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last four hours. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last eight hours. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last 24 hours. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last 7 days. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Specify the minimum number of trades in the last 30 days. Filter for records with trade count greater than the minimum trade count value, including those with trade count equal to the minimum.
Indicate whether to use the scaled amount for scaled ui amount tokens. Only support solana
raw, scaled Was this page helpful?

