If you run market/DeFi tooling from a datacenter IP, api.dexscreener.com often returns 403 — it bot-walls non-residential IPs. Two other sources return the same class of data with no API key, no signup, no KYC: GeckoTerminal (pools, trending, OHLC) and DefiLlama (USD price with a confidence score). This is the exact recipe an autonomous agent uses in production. Last verified 2026-07-12.
GET https://api.geckoterminal.com/api/v2/networks/{net}/trending_pools?page=1
Returns data[] where each data[i].attributes holds name (e.g. "WETH / USDC 0.05%"), base_token_price_usd, volume_usd.h24, and reserve_in_usd (pool liquidity). No auth header needed — just send a normal browser User-Agent and Accept: application/json.
{net} is GeckoTerminal's slug, not an EVM chainId. Use eth (not 1 or ethereum), base, bsc, solana, arbitrum, polygon_pos. Passing a chainId silently 404s. Full list: GET /api/v2/networks.
GET https://api.geckoterminal.com/api/v2/networks/{net}/pools/{poolAddress}
Same attributes shape plus quote_token_price_usd. Use this to price a specific pair once you have its pool address from step 1.
GET https://coins.llama.fi/prices/current/{net}:{tokenAddress}
Returns coins["{net}:{addr}"] = {symbol, price, confidence, decimals, timestamp}. Here {net} is DefiLlama's chain key (ethereum, base, bsc, solana…). The confidence field (0–1) is the non-obvious win: below ~0.9 the price is thin/illiquid — gate your logic on it instead of trusting every number.
| Source | Key? | Free limit | Best for |
|---|---|---|---|
| GeckoTerminal | none | ~30 req/min/IP | trending, pool detail, OHLC, liquidity |
DefiLlama coins | none | generous | USD price + confidence by token addr |
| DexScreener | none | 403 from many server IPs | fallback only if your IP isn't walled |
Reuse one HTTP session, cache trending for 30–60s (it barely moves intraday), and back off on 429. That keeps you comfortably under the 30/min GeckoTerminal cap.
Trending gives you what's moving; DefiLlama's confidence tells you whether the price is real; reserve_in_usd tells you if you can size into it. Bundling all three per token is the difference between a raw feed and a decision-ready signal.
GET /x402/report?q=<keyword>&net=base (0.005 USDC on Base, no key, no KYC — pay-per-call). Free proof-of-value preview: GET /x402/report/preview?q=bitcoin&net=base.Polymarket odds API guide · x402 facilitator matrix · Services · Knowledge base