{"slug":"solana-dex-quote-latency","title":"Fastest Solana DEX quote API","subtitle":"Wallclock milliseconds from quote request to usable quote response.","category":"Aggregators","metric":"Quote latency","unit":"ms","status":"live","higherIsBetter":false,"value":14.613,"leader":{"name":"Jupiter","slug":"jupiter","value":14.613},"rankings":[{"name":"Jupiter","slug":"jupiter","ms":{"p50":14.613,"p90":23.0536,"p99":24.9527,"mean":11.7311},"successRate":99.7911,"sampleSize":4312.56},{"name":"Mobula","slug":"mobula","ms":{"p50":446.98,"p90":901.113,"p99":1685.29,"mean":536.652},"successRate":99.16430000000001,"sampleSize":4284.55}],"sparkline":[16.2919,16.05,15.5179,15.7813,15.5576,15.9667,15.882,16.2117,15.7857,15.9155,15.5986,15.5179,14.7308,12.4057,10.7181,10,12.1117,12.7778,12.1845,9.72826,8.33333,8.18182,10,12.2857,14.5238,15.0382,15.6786,15.4044,15.3102,15.0933,15.1287,13.75,13.2609,12.8636,13.4914,13.9076,13.4914,13.7815,14.0244,14.2857,13.5897,12.973,12.8636,14.1129,14.2857,14.0574,13.3482,13.2432,13.6207,14.0909,14.4758,14.8837,15.365,15.3261,15.6383,15.5319,15.7931,15.8163,16.0204,15.8333,15.6384,15.2194,15.3434,15.1611,15.8056,15.7557,16.1942,16.4153,16.9963,17.0884,16.8558,16.5981,16.6523],"sampleSize":8601.11151,"asOf":"2026-07-08T14:35:23.249Z","headline":"Jupiter leads quote latency at 15 ms (p50, 24h) on Fastest Solana DEX quote API.","quote":"Jupiter leads quote latency at 15 ms (p50, 24h) on Fastest Solana DEX quote API. Source: OpenChainBench (https://openchainbench.com/benchmarks/solana-dex-quote-latency).","cite":{"plain":"OpenChainBench. \"Fastest Solana DEX quote API\". Retrieved 2026-07-08. https://openchainbench.com/benchmarks/solana-dex-quote-latency","bibtex":"@misc{ocb_solana_dex_quote_latency,\n  author = {OpenChainBench},\n  title  = {Fastest Solana DEX quote API},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/solana-dex-quote-latency},\n  note   = {Retrieved 2026-07-08}\n}","apa":"OpenChainBench. (2026). Fastest Solana DEX quote API. Retrieved July 8, 2026, from https://openchainbench.com/benchmarks/solana-dex-quote-latency"},"pageUrl":"https://openchainbench.com/benchmarks/solana-dex-quote-latency","ogImage":"https://openchainbench.com/api/og/solana-dex-quote-latency","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/solana-quote-latency","methodology":["Providers measured: Jupiter, Mobula, OpenOcean, Raydium. (DFlow added when partnership API key is available.)","Canonical request: 100 USDC → tokenOut at 1% slippage. The tokenOut rotates every tick (see below).","Token rotation (Pulse-fed). A persistent WebSocket to Mobula Pulse V2 (bonded view, Solana) maintains a 30-min sliding pool of trending bonded tokens, typically 50-300 active mints. Each tick picks one at random. A REST snapshot fallback (`market/query` volume ranks 6-55) refreshes every 10 min for Pulse outages. In steady state every tick is sourced from the WS feed.","Cadence: one quote per provider per region every 60 seconds. 1,440 samples per provider per region per day.","Regions: us-east, eu-west, sgp.","Latency definition: wallclock from HTTP request dispatch to the first byte of a response body that includes the quoted output amount (Jupiter `outAmount`, Mobula `data.amountOutTokens`, OpenOcean `data.outAmount`, Raydium `data.outputAmount`). The HTTP client reuses TCP + TLS connections across ticks (warm-path), matching how a long-running backend integration actually consumes the API. The bench measures steady-state round-trip cost, not the first-request cold-start penalty.","Failure classes. Each non-success outcome lands on exactly one counter and is excluded from the latency histogram: `solana_quote_throttled_total` (HTTP 429), `solana_quote_auth_error_total` (401/403), `solana_quote_no_route_total` (provider can't route the picked token), `solana_quote_other_error_total` (network/timeout/parse). Each provider's no-route signal is verified: Jupiter NO_ROUTES_FOUND, Mobula 'No route found', Raydium INSUFFICIENT_LIQUIDITY, OpenOcean payload-level.","Raydium scope. Raydium's compute API is single-venue (Raydium AMM v4 / CPMM / CLMM only) and does not multi-hop via SOL like Jupiter or Mobula. On Pulse-fed bonded tokens (mostly Pump.fun graduates living on PumpSwap, plus Meteora and Orca pools) it returns no-route a large and variable share of the time (30% to 100% depending on the rotation set). That's an honest coverage signal and surfaces on the success-rate column, not as latency outliers.","Direct egress from Railway, no residential proxy. The bench measures backend-to-backend latency as a real integration would see it.","Jupiter serves quotes from regional pods behind CloudFront (observed `x-region: eu-central-1` from EU, `x-pod-name: jupiter-core-*`), so each probe region reaches a nearby replica and its cross-region spread is flat by infrastructure, not by caching. Repeated identical requests return `x-cache: Miss` every time; CloudFront does not cache this endpoint. The other providers answer from a single origin, which is why their per-region tabs spread with geography.","Histogram buckets: 10, 25, 50, 100, 200, 500, 1000, 2000, 5000 ms."],"license":"CC-BY-4.0"}