io.b3os/dexscreener 1.0.0 · crypto, market-data, defi, ethereum, base, solana, bsc · MIT

Decentralized-exchange market data from DEX Screener across many chains: pairs for a token (price in USD and native, liquidity, volume, buys and sells, price change, FDV, market cap), pairs by pool address, pair search, newly listed token profiles and the most boosted tokens. Keyless public API, read-only.

Every call's result carries upstream_status and timing: validate_ms, inject_ms, render_ms, upstream_ms, map_ms and total_ms. upstream is the service's time; the others are B3OS's own (call actions). The snippets below show no timing values, because a fixture records none.

Connection

No credential: a keyless public API. Calls name no connection.

Hosts it reaches: api.dexscreener.com.

Actions

ActionEffectMCP toolTitle
get-token-pairsreaddexscreener__get-token-pairsGet Token Pairs
get-pairs-by-addressreaddexscreener__get-pairs-by-addressGet Pairs by Address
search-pairsreaddexscreener__search-pairsSearch pairs
get-boosted-tokensreaddexscreener__get-boosted-tokensGet Boosted Tokens
get-latest-profilesreaddexscreener__get-latest-profilesGet Latest Token Profiles

get-token-pairs

Get Token Pairs. Every DEX pair (pool) that trades the given tokens on one chain, with price in USD and in the quote token, liquidity, 5-minute to 24-hour volume, buy and sell counts, price change, FDV, market cap and pair creation time. Up to 30 token addresses per call; use it for a token's live price and where it trades.

Ref io.b3os/dexscreener/get-token-pairs@1.0.0 · effect read · no connection · MCP tool dexscreener__get-token-pairs

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/dexscreener/get-token-pairs@1", "input": { "chainId": "solana", "tokenAddresses": "So11111111111111111111111111111111111111112,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } }'

Output, labeled fixture: Get Token Pairs (response recorded 2026-10-26). From the bundle's fixtures/get-token-pairs.json, not a live call.

json
{ "pairs": [ { "chainId": "solana", "dexId": "orca", "url": "https://dexscreener.com/solana/czfq3xzzdmsdgduyrnltrhgc47cxcztlg4crryfu44ze", "pairAddress": "Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE", "baseToken": { "address": "So11111111111111111111111111111111111111112", "name": "Wrapped SOL", "symbol": "SOL" }, "quoteToken": { "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "name": "USD Coin", "symbol": "USDC" }, "priceNative": "100.4318", "priceUsd": "100.43", "txns": { "m5": {"buys": 110, "sells": 153}, "h1": {"buys": 1061, "sells": 1594}, "h6": {"buys": 9122, "sells": 11065}, "h24": {"buys": 32510, "sells": 34494} }, "volume": { "h24": 83064411.74, "h6": 27782112.5, "h1": 2909927.39, "m5": 286445.52 }, "priceChange": {"m5": -0.05, "h1": -0.41, "h6": -0.29, "h24": -1.25}, "liquidity": {"usd": 28758879.99, "base": 230305, "quote": 5628878}, "fdv": null, "marketCap": null, "pairCreatedAt": 1688106058000, "boosts": null }, { "chainId": "solana",

The first 40 of 76 lines; the fixture file has the rest.

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
not_found404noDEX Screener has nothing for this chain or address.
rate_limited429yesDEX Screener rate limit reached (60 to 300 requests a minute depending on the endpoint).
invalid_request400, 422noDEX Screener rejected the request; check the chain id and addresses.

get-pairs-by-address

Get Pairs by Address. DEX pairs by their pool (pair) contract addresses on one chain: base and quote token, price, liquidity, volume, transactions, price change and FDV. Use it when you already know the pool, for example from get-token-pairs.

Ref io.b3os/dexscreener/get-pairs-by-address@1.0.0 · effect read · no connection · MCP tool dexscreener__get-pairs-by-address

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/dexscreener/get-pairs-by-address@1", "input": { "chainId": "solana", "pairAddresses": "Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE" } }'

Output, labeled fixture: Get Pairs by Address (response recorded 2026-10-26). From the bundle's fixtures/get-pairs-by-address.json, not a live call.

json
{ "pairs": [ { "chainId": "solana", "dexId": "orca", "pairAddress": "Czfq3xZZDmsdGdUyrNLtRhGc47cXcZtLG4crryfu44zE", "baseToken": { "address": "So11111111111111111111111111111111111111112", "name": "Wrapped SOL", "symbol": "SOL" }, "quoteToken": { "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "name": "USD Coin", "symbol": "USDC" }, "priceUsd": "100.35", "volume": { "h24": 83064211.78, "h6": 27781912.54, "h1": 2909727.43, "m5": 286245.56 }, "priceChange": {"m5": -0.13, "h1": -0.48, "h6": -0.37, "h24": -1.33}, "liquidity": {"usd": 28740679.46, "base": 230307, "quote": 5628678}, "fdv": null, "marketCap": null, "pairCreatedAt": 1688106058000 } ]}

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
not_found404noDEX Screener has nothing for this chain or address.
rate_limited429yesDEX Screener rate limit reached (60 to 300 requests a minute depending on the endpoint).
invalid_request400, 422noDEX Screener rejected the request; check the chain id and addresses.

search-pairs

Search pairs. Search DEX Screener pairs by token name, symbol or address (for example PEPE, SOL/USDC or a contract address), across all chains, best match first, with price, liquidity, volume and price change. Returns up to 30 pairs.

Ref io.b3os/dexscreener/search-pairs@1.0.0 · effect read · no connection · MCP tool dexscreener__search-pairs

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/dexscreener/search-pairs@1", "input": {"query": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"} }'

Output, labeled fixture: Search pairs (response recorded 2026-10-26). From the bundle's fixtures/search-pairs.json, not a live call.

json
{ "pairs": [ { "chainId": "base", "dexId": "alien-base", "url": "https://dexscreener.com/base/0x0e635f8eeed4f7279d56692d552f034ece136019", "pairAddress": "0x0E635F8EeED4F7279d56692D552F034ECE136019", "baseToken": { "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "name": "USD Coin", "symbol": "USDC" }, "quoteToken": { "address": "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA", "name": "USD Base Coin", "symbol": "USDbC" }, "priceNative": "1.00007101", "priceUsd": "1.000071", "liquidity": {"usd": 127663.26, "base": 59302, "quote": 68356}, "volume": {"h24": 1326.78, "h6": 318.81, "h1": 0, "m5": 0}, "priceChange": {}, "fdv": 4288008041, "marketCap": 71610329486, "pairCreatedAt": 1725278699000 }, { "chainId": "base", "dexId": "aerodrome", "url": "https://dexscreener.com/base/0x98c7a2338336d2d354663246f64676009c7bda97", "pairAddress": "0x98c7A2338336d2d354663246F64676009c7bDa97", "baseToken": { "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "name": "USD Coin", "symbol": "USDC" }, "quoteToken": { "address": "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA", "name": "USD Base Coin", "symbol": "USDbC"

The first 40 of 52 lines; the fixture file has the rest.

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
not_found404noDEX Screener has nothing for this chain or address.
rate_limited429yesDEX Screener rate limit reached (60 to 300 requests a minute depending on the endpoint).
invalid_request400, 422noDEX Screener rejected the request; check the chain id and addresses.

get-boosted-tokens

Get Boosted Tokens. Tokens with the most active DEX Screener boosts (paid promotion), highest total first, with chain, address, description, icon, links and boost amounts. Boosts are advertising, not a quality signal. Optionally only one chain.

Ref io.b3os/dexscreener/get-boosted-tokens@1.0.0 · effect read · no connection · MCP tool dexscreener__get-boosted-tokens

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ref": "io.b3os/dexscreener/get-boosted-tokens@1", "input": {}}'

Output, labeled fixture: Get Boosted Tokens (response recorded 2026-10-26). From the bundle's fixtures/get-boosted-tokens.json, not a live call.

json
{ "tokens": [ { "url": "https://dexscreener.com/solana/h7vzncbyndk5ikbs9krdj2tx8cur1wxedv19zgkwpump", "chainId": "solana", "tokenAddress": "H7VZNCBynDK5ikBS9krDJ2Tx8CUr1wxedV19ZgkWpump", "description": "The axe weighs more than the entire knight. A tiny kitten chose the biggest battleaxe in the armoury. Now every swing comes with a nap.", "icon": "k8ix7LCLLGh9vRhA", "links": [ {"url": "https://cattleaxe.lol"}, {"type": "twitter", "url": "https://x.com/sircattleaxe"} ], "totalAmount": 500, "amount": null }, { "url": "https://dexscreener.com/solana/c4bdpk4bqaccsg5vvpzximdr48gpaqyffq5iymsrpump", "chainId": "solana", "tokenAddress": "C4BdpK4bQAcCsg5vvpzXimdR48GPaQyffQ5iyMsRpump", "description": "Trust in Trump for bold leadership and a stronger future for America.", "icon": "BUkexH2n1wnVK8_x", "links": [ {"url": "https://trustintrump.site"}, {"type": "twitter", "url": "https://x.com/TrustInTrumpX"} ], "totalAmount": 500, "amount": null }, { "url": "https://dexscreener.com/solana/ca8q2mkywznunqymf6pxyxapzsmse2eg9p7hhmw5pump", "chainId": "solana", "tokenAddress": "CA8q2mkYWZnUNqYmf6pxyxAPZsmSe2EG9P7hHMW5pump", "description": "The Official Fomo Mascot.\n\nNovember 15.", "icon": "RSLqRr5vubt1aRKX", "links": [ {"url": "https://remus.family"}, {"type": "twitter", "url": "https://x.com/remusfamily"} ], "totalAmount": 300, "amount": null

The first 40 of 43 lines; the fixture file has the rest.

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
not_found404noDEX Screener has nothing for this chain or address.
rate_limited429yesDEX Screener rate limit reached (60 to 300 requests a minute depending on the endpoint).
invalid_request400, 422noDEX Screener rejected the request; check the chain id and addresses.

get-latest-profiles

Get Latest Token Profiles. The newest token profiles published on DEX Screener (projects that added a description, icon and links), newest first, optionally only on one chain. A profile is self-published by the project.

Ref io.b3os/dexscreener/get-latest-profiles@1.0.0 · effect read · no connection · MCP tool dexscreener__get-latest-profiles

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ref": "io.b3os/dexscreener/get-latest-profiles@1", "input": {}}'

Output, labeled fixture: Get Latest Token Profiles (response recorded 2026-10-26). From the bundle's fixtures/get-latest-profiles.json, not a live call.

json
{ "profiles": [ { "url": "https://dexscreener.com/solana/4hj5pf5untu5ucjv3kclqscj6b9troudcdmngzehpump", "chainId": "solana", "tokenAddress": "4hj5Pf5UNtu5UCjv3kCLQscj6B9TroUDcDMnGzEhpump", "description": "take the risk", "icon": "https://cdn.dexscreener.com/cms/images/2lQVV2SkYpEPws4_?width=64&height=64&fit=crop&quality=95&format=auto", "links": [ { "label": "Extra", "url": "https://www.youtube.com/shorts/WFVQkVbwEbk" }, { "type": "twitter", "url": "https://x.com/RicherONG/status/2114620330194973088?s=20" }, { "type": "instagram", "url": "https://www.instagram.com/reels/De1gk8RhHnL/" } ], "cto": false }, { "url": "https://dexscreener.com/solana/bewvul9eseukmbetmcgrdj2mvvvjtyez4sauxluh2zl1", "chainId": "solana", "tokenAddress": "BEwvuL9EsEukMbETMcgRDJ2MVvVjTyEz4SAUxLuh2zL1", "description": null, "icon": "https://cdn.dexscreener.com/cms/images/C4-l6xQacJB2FjJH?width=64&height=64&fit=crop&quality=95&format=auto", "links": [ { "label": "Website", "url": "https://uselaunch.fun/c/BEwvuL9EsEukMbETMcgRDJ2MVvVjTyEz4SAUxLuh2zL1" }, { "type": "twitter", "url": "https://x.com/Edawg6969_/status/2114618023437013032?s=20" } ],

The first 40 of 44 lines; the fixture file has the rest.

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
not_found404noDEX Screener has nothing for this chain or address.
rate_limited429yesDEX Screener rate limit reached (60 to 300 requests a minute depending on the endpoint).
invalid_request400, 422noDEX Screener rejected the request; check the chain id and addresses.
Ask a question... ⌘I