https://api.jup.ag/price/v3. It is the price source behind Jupiter’s own interfaces, and one request returns the current USD price of up to 50 tokens:
- Prices come from the last onchain swap of each token, anchored on a small set of oracle-priced tokens such as SOL, and pass liquidity, holder and trading-activity heuristics before they are returned.
- Each price carries the Solana
blockIdit was computed at, the tokendecimalsand the 24-hour change. - One API key covers every Jupiter API, and the endpoint answers without a key for testing.
Quick start
Get the price of SOL. No API key is needed:ids to price several tokens in one request. The full walkthrough is in How to Get Token Prices on Solana.
Where price data comes from
Price API V3 prices tokens by using the last swapped price (across all transactions). The swaps are priced by working outwards from a small set of reliable tokens (like SOL) whose price we get from external oracle sources. While and also after deriving the last swap price, we also use a number of heuristics to ensure the accuracy of the price and eliminate any outliers:- Asset origin and launch method
- Market liquidity metrics
- Market behaviour patterns
- Holder distribution statistics
- Trading activity indicators
- Organic Score
Pricing challenges on Solana
Accurately pricing tokens onchain is deceptively complex. Unlike traditional markets with centralised pricing mechanisms and consistent liquidity, decentralised finance (DeFi) presents a set of dynamic and often adversarial conditions. The Price API V3 is built with these realities in mind, abstracting away challenges to deliver accurate, real-time token prices with integrity and consistency.Price response
Here is the sample response, notice a few details here:- The
usdPriceis the only price. - The
decimalsresponse is helpful to display price information on the UI. - The
blockIdcan be used to verify the recency of the price. - The
priceChange24his the 24-hour price change as a percentage (e.g.1.29means +1.29%,-3.47means -3.47%), not a 0-1 fraction. - The
liquidityis the total liquidity in USD across all pools, andcreatedAtis when the token was created (a fixed date for tokens that predate the API, like SOL and USDC).
Limitations
Query limits- You can query up to 50
idsat once.
null value, and there is no error or per-mint reason. To find which of your requested mints were dropped, compare your requested ids against the keys that were returned:
- It has not been traded recently, in the last 7 days.
- The heuristics flag the price as unreliable, where certain combinations of factors indicate potential issues with price reliability or market health.
audit.isSus field in the Tokens API V2. Note that audit.isSus is only present when a token has been flagged suspicious, so its absence is not a guarantee of safety. Most tokens omitted from the price response are simply untraded or illiquid rather than flagged.
V3 simplifies pricing
- V3 returns a single accurate price per token, eliminating ambiguity from V2’s multiple price fields that led to inconsistent interpretations across platforms.
- Price accuracy is maintained through heuristics that eliminate outliers, providing one stable price source.
- If you need the additional data that V2 provided, use a quote from the Swap API (
GET /orderwithouttaker) to derive equivalent values (see how Price API V2 pricing was derived).
Common use cases
Wallets and portfolio trackers
decimals to convert raw balances into USD values.Token pages and analytics
usdPrice, priceChange24h and liquidity with the metadata, holder count and Organic Score from the Token API.Trading applications
AI agents and scripts
.md for agents.FAQ
How does the Solana Price API filter out price manipulation and wash trading?
How does the Solana Price API filter out price manipulation and wash trading?
What query parameters does the /price/v3 endpoint accept?
What query parameters does the /price/v3 endpoint accept?
ids, a comma-separated list of up to 50 token mint addresses. The optional x-api-key header raises the rate limit above the keyless 0.5 requests per second. There is no parameter for currency, interval or historical data: the endpoint returns the current USD price only. See the API reference.How do I get the current SOL price in USD?
How do I get the current SOL price in USD?
GET https://api.jup.ag/price/v3?ids=So11111111111111111111111111111111111111112. The response is keyed by mint address and usdPrice is the current price in USD; decimals (9 for SOL) converts raw lamport balances into SOL. The Quick start above shows the full response.How do I fetch prices for multiple Solana tokens in one request?
How do I fetch prices for multiple Solana tokens in one request?
ids, up to 50 per request: ?ids=<mint1>,<mint2>,.... Each priced token comes back as a key of the response object. Tokens without a reliable price are left out, so compare the returned keys with the mints you asked for.What is the difference between a token price and a swap quote?
What is the difference between a token price and a swap quote?
GET /order on the Swap API returns the exact output amount for a given input amount, route and moment, including price impact and fees. Use the Price API to display values and the Swap API to trade.Does the Price API provide historical prices?
Does the Price API provide historical prices?
/price/v3 returns the current price and the 24-hour change (priceChange24h) only. For a price at a past block, record usdPrice and blockId yourself at the time you need them.Why is a token missing from the response?
Why is a token missing from the response?
null, no error. A token is typically dropped when it has not traded in the last 7 days or when the heuristics flag its price as unreliable. Compare your requested ids with the returned keys to find the missing ones, and cross-check audit.isSus in the Token API if you need a reason.How fresh is a price, and how do I verify it?
How fresh is a price, and how do I verify it?
blockId is the Solana block at which it was computed; compare it with the current slot to judge recency. Prices update with swap activity rather than on a fixed interval, and a token that has not traded in 7 days is omitted.Is priceChange24h a fraction or a percentage?
Is priceChange24h a fraction or a percentage?
1.29 means +1.29% over the last 24 hours and -3.47 means -3.47%. Do not multiply it by 100.Do I need an API key?
Do I need an API key?
x-api-key header; the free plan starts at 1 request per second and paid plans go higher. One key covers every Jupiter API. See Rate Limits and Plans and Pricing.Which tokens does the Price API cover?
Which tokens does the Price API cover?
What changed from Price API V2?
What changed from Price API V2?
usdPrice per token instead of V2’s several price fields, which were interpreted inconsistently across platforms. V2 is no longer maintained. If you relied on V2’s derived values, request a quote from the Swap API (GET /order without taker) and compute them from the quoted amounts.