Skip to main content
Slippage is the difference between the quoted output amount and what you actually receive. It depends on token pair volatility, trade size relative to pool liquidity, and time between quoting and execution. Jupiter’s Real-Time Slippage Estimator (RTSE) estimates the optimal slippage tolerance for each swap, balancing trade success against price protection.

How RTSE works

RTSE estimates slippage at order time (when you call /order or /build), not at execution time. The estimated slippage is baked into the transaction. RTSE uses a variety of heuristics, algorithms, and monitoring to estimate the best possible slippage:
  • Heuristics: token categories, historical and real-time slippage data. Uses token categories to intelligently estimate slippage for different token types, with increased sensitivity for tokens with high historical volatility patterns.
  • Algorithms: Exponential Moving Average (EMA) on slippage data to smooth out noise and follow trends.
  • Monitoring: real-time monitoring of failure rates to reactively increase slippage when necessary.

RTSE on /order vs /build

/order/build
RTSEAutomatic. Applied at order time.Opt-in. Pass slippageBps=rtse.
DefaultRTSE (no param needed)slippageBps=50 (fixed 0.5%)
OverridePass slippageBps for a fixed value (restricts to Metis-only routing)Pass a number for fixed, or "rtse" for RTSE

/order (automatic)

On the /order path, RTSE is applied automatically when the order is created. You do not need to set any slippage parameter. The estimated slippage is embedded in the transaction returned by /order. If you pass slippageBps to /order, it overrides RTSE with a fixed value. This also restricts routing to Metis-only (see Routing).

/build (opt-in)

On the /build path, slippage defaults to 50 bps (0.5%). To enable RTSE, pass the literal string "rtse":
GET https://api.jup.ag/swap/v2/build?inputMint=...&outputMint=...&amount=...&taker=...&slippageBps=rtse
The estimated slippage is reflected in otherAmountThreshold in the response.

When to use RTSE

Use RTSE (recommended for most cases):
  • You want Jupiter to handle slippage optimisation for you
  • You are swapping tokens where the right slippage is hard to predict
  • You want to minimise failed transactions without overpaying on slippage
Use a fixed slippageBps value when:
  • You want to accept more slippage to improve success rate, e.g. trading memecoins or exiting a position as quickly as possible
  • You are building a UI that lets users set their own slippage
  • You need deterministic behaviour for testing or simulation
  • Routing: how parameters like slippageBps affect which routers are available
  • Order & Execute: the default swap flow where RTSE is automatic
  • Get Swap Instructions: the advanced path where RTSE is opt-in via slippageBps=rtse