ERC-20 token price API from Uniswap v3 pools
Token price in USD for a crypto token by symbol (ETH, BTC, USDC, AERO, ARB, OP, LINK…), coin name, CoinGecko id or ERC-20 0x address on Base, Ethereum, Arbitrum or Optimism, from the deepest Uniswap v3 pool against USDC or WETH, read live. Returns the pool, fee tier, quote reserve and a thin-liquidity flag. Spot price, not a time average. No pool returns 404, uncharged. Use to value a token or check a quote before a swap or payment.
When to use it
- Get a token's USD price straight from its on-chain Uniswap v3 pool
- Price long-tail tokens that centralized price feeds do not list
- Value a wallet or a trade inside an agent
Guide: Token price API
Inputs
| Name | Type | Description |
|---|---|---|
symbol | string | Ticker such as ETH, BTC, USDC, AERO, ARB, OP or LINK (instead of address; ETH and BTC mean the wrapped tokens) |
address | string | 0x ERC-20 token contract address (instead of symbol) |
chain | string | Network: base (default), eth, arb or op. One of: base, eth, arb, op. |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/price/token?symbol=ETH"
Or one of your 25 free calls, no key:
curl "https://tools.funwords.eu/price/token?symbol=ETH&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"chain": "Base",
"chainId": 8453,
"token": {
"address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
"symbol": "cbBTC",
"decimals": 8
},
"priceUsd": 104250.5,
"quotedIn": "USDC",
"pool": {
"address": "0x…",
"feeTier": 500,
"quoteReserve": 2500000.25,
"quoteReserveUsd": 2500000.25
},
"ethUsd": 3850.12,
"thinLiquidity": false,
"block": 37000000,
"method": "Uniswap v3 spot price from the pool with the largest USDC or WETH reserve"
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is price_token, and the first 25 successful calls are free:
https://tools.funwords.eu/mcp
Questions
Where does the price come from?
The token's Uniswap v3 pools on the chosen chain, read on chain at call time.
Can I price several tokens at once?
Yes, /price/tokens prices up to 20 tokens in one call.
How do I pay?
Each successful call costs $0.01; failed calls are not charged. The first 25 calls are free. Then pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.