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:
| Router | Type | Description |
|---|
| Metis | Onchain aggregator | Jupiter’s core routing engine |
| JupiterZ | RFQ (Request for Quote) | Market makers providing off-chain liquidity. Often beats onchain by 5-20bps on major pairs. |
| Dflow | Third-party | Decentralised order flow |
| OKX | Third-party | OKX 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:
| Parameter | Metis | JupiterZ (RFQ) | Dflow | OKX |
|---|
| (no optional params) | Yes | Yes | Yes | Yes |
receiver | Yes | No | Yes | Yes |
referralAccount & referralFee | Yes | No | Yes | Yes |
payer (integrator gasless) | Yes | No | No | No |
excludeRouters: jupiterz | Yes | No | Yes | Yes |
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:
| Mode | Meaning | Routers |
|---|
| ultra | No optional params used. All routers competed. Best price. | Metis, JupiterZ, Dflow, OKX |
| manual | Optional 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.