DexScreener's API is fine for what it is: a free read layer on their token price data. But if you're building anything serious — a scanner, a trading bot, a copy-trade engine, a deployer alert system — you've probably already hit the wall.
This post is for developers who searched "DexScreener API alternative" because they need something DexScreener can't provide. Here's exactly what that means, endpoint by endpoint.
The DexScreener API's five hard limits
1. Nine endpoints total, no expansion path.
DexScreener's public API covers token pairs by chain/address, search, and a few aggregate views. There's no paid tier that unlocks more endpoints — what you see is what there is. No KOL wallet data, no deployer history, no buyer quality scoring, no copy-trade signals.
2. Zero historical data.
Every DexScreener endpoint returns current state. You can't query a token's trading history, a wallet's past performance, or a deployer's bonding track record. If you want trend data, you'd have to poll and store it yourself.
3. No WebSocket streaming.
There's no push channel. To react to a new token launch or a KOL buy, you're polling on an interval — which introduces lag (30–60s typical for cron-style polling) and wastes API quota on empty results.
4. Search results capped at 30.
The /search endpoint returns a maximum of 30 results regardless of how many tokens match. For any scanner workflow that filters a broad universe down to your specific criteria, 30 is a meaningless ceiling.
5. Terms of service restrictions.
DexScreener's API ToS explicitly restricts building products that compete with their platform. If you're building a tool that includes charting, token discovery, or DEX data display for end users — check the fine print carefully.
None of these are deal-breakers if you're building a quick price check or a personal alert. But if you need the underlying infrastructure to be something you can actually build a product on, you need a different API.
What the MadeOnSol API provides instead
The MadeOnSol API has 130+ REST endpoints plus WebSocket streaming and webhooks, purpose-built around Solana memecoin data. Here's how it maps to the gaps above.
Token data with KOL + deployer context
The core token endpoint does what DexScreener does — price, MC, volume — and then layers on the data that matters for memecoin trading decisions:
GET /api/v1/token/{mint}
Authorization: Bearer msk_...
Response includes:
- Real-time VWAP price and MC (from our DEX trade stream, not a third-party feed)
- KOL smart money activity — which of our 2,000+ tracked KOL wallets bought or sold, net SOL flow, top buyers by volume
- Deployer reputation — tier, bonding rate, deploy history for the token's creator
- MC velocity — 5m/15m/1h/2h/4h MC change percentages (organic, MEV-stripped)
first_seen_at + age_seconds — how old the token is from first indexed trade
is_blacklisted + blacklist_category — stablecoins, wrapped assets, flagged rugs automatically excluded
For batch lookups (50 mints per call, one DB round-trip):
POST /api/v1/token/batch
Content-Type: application/json
{ "mints": ["mint1...", "mint2...", "mint3..."] }
Filtered token discovery (not capped at 30)
The token directory endpoint is what DexScreener search should be:
GET /api/v1/tokens?primary_dex=pumpswap&min_mc=100000&max_mc=2000000&min_liq=5000&authority_revoked=true&max_mev_share_pct=25&mc_change_1h_min_pct=30&limit=100
Twelve server-side filters, five sort options, pagination up to 10,000 rows. You describe the universe you care about; the API returns only tokens that qualify.
| Filter | What it screens |
|---|
primary_dex | pumpfun, pumpswap, raydium, raydium_clmm, meteora, orca |
min_mc / max_mc | MC band in USD |
min_liq | minimum pool liquidity in USD |
active_h | drop tokens with no trades in the last N hours |
authority_revoked | requires both mint + freeze authority revoked |
exclude_token2022 | filter out Token-2022 extensions |
min_lp_burnt_pct | LP burn threshold |
min_volume_1h_usd | organic 1h volume (post-filter, MEV-stripped) |
max_mev_share_pct | cap on sandwich/MEV percentage of volume |
mc_change_1h_min/max_pct | 1h MC momentum band |
Real-time streaming (not polling)
WebSocket channels replace the polling loop entirely. Events push within ~1s of on-chain confirmation:
// Get a stream token first
const { token, ws_url } = await fetch('/api/v1/stream/token', {
headers: { Authorization: `Bearer ${API_KEY}` }
}).then(r => r.json());
// Connect and subscribe
const ws = new WebSocket(ws_url);
ws.onopen = () => ws.send(JSON.stringify({
type: 'subscribe',
channels: ['kol:trades', 'deployer:alerts']
}));
ws.onmessage = ({ data }) => {
const event = JSON.parse(data);
if (event.channel === 'kol:trades') {
// Real-time KOL trade: wallet, token, sol_amount, action, mc_at_trade
console.log(event.data);
}
};
Available channels: kol:trades, kol:coordination, kol:first_touches, deployer:alerts, price_alert:events, copytrade:signals.
ULTRA tier also unlocks the DEX firehose — every swap across 14 DEX programs (pump.fun, PumpSwap, Raydium AMM/CPMM, Jupiter v6, Orca Whirlpool, Meteora, Launchlab) with targeted filters on token, wallet, DEX, market cap, or token age:
wss://madeonsol.com/ws/v1/dex-stream?token=...
KOL wallet tracking (no equivalent in DexScreener)
DexScreener has no concept of wallet-level tracking. The MadeOnSol API tracks 2,000+ curated KOL wallets in real-time and exposes the full data layer:
# Live feed of all KOL trades
GET /api/v1/kol/feed?min_kol_winrate=60&action=buy&limit=50
# KOL leaderboard (ranked by PnL, win rate, ROI, profit factor)
GET /api/v1/kol/leaderboard?period=7d&sort=winrate&limit=20
# All KOL activity on a specific token
GET /api/v1/kol/tokens/{mint}
# Tokens being co-bought by 3+ KOLs in the same window (coordination signals)
GET /api/v1/kol/coordination?period=1h&min_kols=3&min_score=70
Every trade is enriched with market_cap_usd_at_trade (MC at the exact moment the swap fired), kol_winrate_7d/30d, kol_strategy_tag, and deployer_tier for the token. For the product-side view of how this data surfaces tokens early, see our guide to the Scout leaderboard, KOL consensus, and peak-history token discovery.
Deployer history (no equivalent in DexScreener)
Track which wallets are serial token deployers, their bonding rate, and get pre-confirm alerts when they launch:
# Deployer profile with full history
GET /api/v1/deployer-hunter/{wallet}
# Top deployers ranked by bonding rate
GET /api/v1/deployer-hunter/leaderboard?tier=elite&sort=bonding_rate
# Real-time alerts when tracked deployers launch
GET /api/v1/deployer-hunter/alerts?tier=elite,good&min_kol_buys=2
Alerts include KOL cross-reference — which of our tracked wallets bought the new token and how much SOL.
Buyer quality scoring (unique)
Before you buy into a token, know whether the early cohort is alpha wallets or bot farms:
# 0-100 buyer quality score for a token's early cohort
GET /api/v1/tokens/{mint}/buyer-quality
# First 10-20 early buyers with win rates, bot confidence, KOL flags
GET /api/v1/tokens/{mint}/cap-table
Response: { score: 78, confidence: "high", signal: "positive", breakdown: { alpha_wallet_count, kol_count, bundle_buyer_count, avg_historical_win_rate, bot_dominated } }