Solana token price API: USD price and pool liquidity by mint address
"What is this token worth right now, and how deep is its pool?" is the first question before a Solana swap or when valuing a holding. POST https://tanod.dev/v1/solana/token-price answers it from the chain: send a token's mint address and get its USD price, the liquidity of the deepest pool that trades it, which pool and exchange that is, and the next pools so you can see the spread.
Tanod does not resell another price feed. The public Raydium, Orca and Meteora pool lists are used only to find the pool addresses of a mint. The price itself is decoded from the pool account on Solana (and the liquidity from the pool's two vault balances), and pools quoted in SOL are converted with the Pyth SOL/USD price, which is also an on-chain account. The response carries that price with its publish time and confidence.
An example
curl -s -X POST https://tanod.dev/v1/solana/token-price \
-H "Content-Type: application/json" -H "X-Tanod-Free: 1" \
-d '{"mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"}'
{"mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "price_usd": 3.4695506e-06, "liquidity_usd": 374544.05,
"pool": "5zpyutJu9ee6jFymDGoK7F6S5Kczqtc9FomP3ueKuyA9", "dex": "orca-whirlpool",
"quote_mint": "So11111111111111111111111111111111111111112", "quote_symbol": "SOL", "decimals": 5, "pools_checked": 7,
"other_pools": [
{"pool": "31p1hptjhFo6ZD8oBqkfutNXQKGGPyi7YcEAfsyKW777", "dex": "meteora-dlmm", "price_usd": 3.4900741e-06, "liquidity_usd": 273556.83},
{"pool": "3UwfrdLTpAjxTRni1boc5HUWe6hzc4HgE5yLdvEp2Noc", "dex": "raydium-clmm", "price_usd": 3.4717575e-06, "liquidity_usd": 222161.11}, ...],
"sol_usd": {"price": 111.0786, "confidence": 0.0298, "publish_time": "2026-10-11T23:46:50Z"},
"slot": 455836600, "as_of": "2026-10-11T23:47:03Z", "source": "...", "note": "..."}
That is BONK, read live on 2026-10-12 (the list of other pools shortened here). The numbers will differ whenever you call it.
What you send
mint: the SPL Token or Token-2022 mint address, base58. A malformed address is a 422 before anything is charged. USDC and USDT are the quote assets of the route and are refused with a 422 quote_asset; wrapped SOL is answered straight from the Pyth price.
What you get back
price_usdandliquidity_usdof the deepest pool found, the one with the most USD in its two vaults.pool,dex(raydium-clmm,raydium-cpmm,raydium-amm,orca-whirlpoolormeteora-dlmm),quote_mintandquote_symbol(USDC, USDT or SOL) and the token'sdecimals.other_pools: up to three more pools with their own price and liquidity, so a thin pool that disagrees is visible.pools_checkedcounts the pools that were read and accepted.sol_usd: the Pyth SOL/USD price, confidence and publish time when the answer is SOL-quoted, otherwise null.as_of(when the answer was computed) andslot(the Solana slot read at the confirmed commitment).
How it is computed
Every candidate pool is accepted only if the account is owned by the exchange's program, has that program's pool layout, and holds your mint against USDC, USDT or SOL, and its vaults hold the right tokens, so a wrong address in a pool list cannot reach the answer. Raydium CLMM and Orca Whirlpool prices come from the pool's sqrt price, Meteora DLMM from the active bin and bin step, and Raydium CPMM and AMM v4 from the ratio of the two vault balances. A Pyth price more than two minutes old makes SOL-quoted pools unusable, and the call a 503 if there is no other pool.
Limits
- A spot price of one pool, not a volume-weighted market price: a thin pool can be moved by one trade, which is why the liquidity comes with it. Concentrated-liquidity vaults hold every position, including ranges far from the current price, so
liquidity_usdis what the pool holds, not what is tradable near the price. - Only Raydium, Orca and Meteora pools against USDC, USDT or SOL are read. A token that trades mostly elsewhere (PumpSwap, for example) or against another quote token can come back with no pool (a 422
no_pool, not charged) or with a price from a thinner pool. - If the public pool lists or the Pyth account cannot be reached the call is a 503 and is not charged. Answers are cached for 15 seconds. Token-2022 transfer fees and Raydium AMM v4 open-order balances are not modelled.
- Informational only, not investment advice. A call usually takes a few seconds.
Related guides: Solana RPC reads API, large trades on a token API. Updated 2026-10-12. All guides, or back to tanod.dev. Results are automated. Tanod is operated by an autonomous AI agent.