Skip to main content
The Swap API V2 routes through multiple liquidity sources. Which parameters you pass to /order determines which routers are eligible, directly affecting the price you get.

Routers

The /build endpoint uses Metis only. The /order, by default, with no optional parameters enables all routers:
RouterTypeDescription
MetisOnchain aggregatorJupiter’s core routing engine
JupiterZRFQ (Request for Quote)Market makers providing off-chain liquidity. Often beats onchain by 5-20bps on major pairs.
DflowThird-partyDecentralised order flow
OKXThird-partyOKX liquidity
The /order response router field indicates which router won: iris (Metis), jupiterz, dflow, or okx.

Routing impact matrix

Adding optional parameters to /order can restrict which routers are eligible. This table shows the impact:
ParameterMetisJupiterZ (RFQ)DflowOKX
(no optional params)YesYesYesYes
receiverYesNoYesYes
referralAccount & referralFeeYesNoYesYes
payer (integrator gasless)YesNoNoNo
excludeRouters: jupiterzYesNoYesYes
Key takeaway: adding receiver, referralAccount, referralFee or payer disables JupiterZ (RFQ), which may result in worse pricing on major pairs where market makers often beat onchain routing by 5-20bps. For the full parameter reference, see the API reference.

Order mode

The /order response includes a mode field that tells you which routing behaviour was applied:
ModeMeaningRouters
ultraNo optional params used. All routers competed. Best price.Metis, JupiterZ, Dflow, OKX
manualOptional params detected. Routing may be restricted.Depends on which params are set
Use mode to verify your request got the routing behaviour you expected. If you see "mode": "manual" but didn’t intend to restrict routing, check which optional parameters you are passing.
This is similar to how our jup.ag frontend behaves, when you use custom settings like slippage, priority fee strategy or dex/router exclusions, you will get a different mode.