curl --request GET \
--url https://api.jup.ag/swap/v2/order \
--header 'x-api-key: <api-key>'{
"mode": "<string>",
"inputMint": "<string>",
"outputMint": "<string>",
"inAmount": "<string>",
"outAmount": "<string>",
"inUsdValue": 123,
"outUsdValue": 123,
"priceImpact": 123,
"swapUsdValue": 123,
"otherAmountThreshold": "<string>",
"swapMode": "<string>",
"slippageBps": 123,
"priceImpactPct": "<string>",
"routePlan": [
{
"swapInfo": {
"ammKey": "<string>",
"label": "<string>",
"inputMint": "<string>",
"outputMint": "<string>",
"inAmount": "<string>",
"outAmount": "<string>"
},
"percent": 123,
"bps": 123,
"usdValue": 123
}
],
"referralAccount": "<string>",
"feeMint": "<string>",
"feeBps": 123,
"platformFee": {
"amount": "<string>",
"feeBps": 123,
"feeMint": "<string>"
},
"signatureFeeLamports": 123,
"signatureFeePayer": "<string>",
"prioritizationFeeLamports": 123,
"prioritizationFeePayer": "<string>",
"rentFeeLamports": 123,
"rentFeePayer": "<string>",
"transaction": "<string>",
"lastValidBlockHeight": "<string>",
"gasless": true,
"requestId": "<string>",
"totalTime": 123,
"taker": "<string>",
"quoteId": "<string>",
"maker": "<string>",
"expireAt": "<string>",
"errorCode": 123,
"errorMessage": "<string>",
"error": "<string>"
}Get Order
Get a swap quote and assembled transaction
curl --request GET \
--url https://api.jup.ag/swap/v2/order \
--header 'x-api-key: <api-key>'{
"mode": "<string>",
"inputMint": "<string>",
"outputMint": "<string>",
"inAmount": "<string>",
"outAmount": "<string>",
"inUsdValue": 123,
"outUsdValue": 123,
"priceImpact": 123,
"swapUsdValue": 123,
"otherAmountThreshold": "<string>",
"swapMode": "<string>",
"slippageBps": 123,
"priceImpactPct": "<string>",
"routePlan": [
{
"swapInfo": {
"ammKey": "<string>",
"label": "<string>",
"inputMint": "<string>",
"outputMint": "<string>",
"inAmount": "<string>",
"outAmount": "<string>"
},
"percent": 123,
"bps": 123,
"usdValue": 123
}
],
"referralAccount": "<string>",
"feeMint": "<string>",
"feeBps": 123,
"platformFee": {
"amount": "<string>",
"feeBps": 123,
"feeMint": "<string>"
},
"signatureFeeLamports": 123,
"signatureFeePayer": "<string>",
"prioritizationFeeLamports": 123,
"prioritizationFeePayer": "<string>",
"rentFeeLamports": 123,
"rentFeePayer": "<string>",
"transaction": "<string>",
"lastValidBlockHeight": "<string>",
"gasless": true,
"requestId": "<string>",
"totalTime": 123,
"taker": "<string>",
"quoteId": "<string>",
"maker": "<string>",
"expireAt": "<string>",
"errorCode": 123,
"errorMessage": "<string>",
"error": "<string>"
}Documentation Index
Fetch the complete documentation index at: https://dev.jup.ag/docs/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Get API key via https://developers.jup.ag/portal
Query Parameters
The mint address of the input token
The mint address of the output token
The amount to swap in the smallest unit of the input token
- The public key of the wallet that will sign the transaction
- If not provided, the response will contain a quote but no transaction
- Must be present if you intend to sign and execute the transaction via
/execute
- The public key of the account that will receive the output tokens
- Must differ from
taker - Expects a wallet address, not a token account
- For non-SOL output: tokens are sent to the receiver's associated token account (ATA). If the ATA is not initialised, a create ATA instruction is added to the transaction
- For SOL output: native SOL is transferred directly to the receiver
- Does not support destination wSOL token accounts
- Disables RFQ routing (JupiterZ)
- Swap mode. Currently only
ExactInis supported.
ExactIn - Slippage tolerance in basis points (0-10000)
- If not set, Jupiter automatically determines an appropriate slippage
0 <= x <= 10000- Address of your referral account for the Jupiter referral project
- Must be used together with
referralFee - Disables RFQ routing (JupiterZ)
- See the Referral Program for setup
- Referral fee in basis points (50-255)
- Must be used together with
referralAccount
50 <= x <= 255- The public key of an account that will cover gas-related fees (signature fees, priority fees, and rent) on behalf of the taker
- Has no effect when set equal to
taker— must be a different wallet to activate integrator-sponsored gas - Enabling this restricts routing to Metis (JupiterZ is disabled when an integrator payer is set)
- Priority fee in lamports
- If not set, Jupiter automatically determines an appropriate priority fee
- Setting this overrides the automatic optimisation
- Jito MEV tip in lamports for faster block inclusion
- Fee cap strategy:
maxCaptreats the fee as a maximum,exactFeeuses the exact amount - Ignored if neither
priorityFeeLamportsnorjitoTipLamportsare set
maxCap, exactFee - Comma-separated list of routers to exclude
- Available routers:
iris(Metis),jupiterz(JupiterZ),dflow,okx
- Comma-separated list of DEXes to exclude from the Metis router
- Important: This only affects the Metis router, not other routers
- For example:
excludeDexes=Raydium,Orca+V2,Meteora+DLMM
Response
Quote with optional assembled transaction
"ultra" or "manual" based on parameters used
Price impact as a decimal (e.g. -0.001 = -0.1%)
Minimum output amount after slippage
Deprecated: use priceImpact instead
Show child attributes
Show child attributes
Total fee rate charged for the swap in basis points. This includes the Jupiter platform fee plus any additional charges, such as gasless support cost recoup.
Show child attributes
Show child attributes
Includes priority fees and tips (Jito, Nozomi)
Estimated rent fee
Deprecated: use router instead
aggregator, rfq, aggregator+rfq, dflow, okx Which router won the quote
iris, jupiterz, dflow, okx - Base64-encoded transaction. Null if taker is not provided.
- Empty string if taker is provided but transaction could not be built (check errorCode).
True when signature and priority fees are paid by a wallet other than the taker. Set by three independent paths:
- Automatic Jupiter sponsorship:
signatureFeePayer = gasTzr94Pmp4Gf8vknQnqxeYxdgwFjbgdJa4msYRpnB - JupiterZ market maker:
signatureFeePayeris the MM address (varies per quote); ATA rent (rentFeePayer) is still the taker - Integrator payer:
signatureFeePayeris yourpayerparameter For a deterministic opt-out, checksignatureFeePayer == takeron every response.
Unique request ID. Pass this to /execute.
Response time in milliseconds
Quote ID for RFQ swaps
Market maker address for RFQ swaps
Quote expiration timestamp for RFQ swaps
Present when taker is defined but transaction is empty string
Human-readable error description
Duplicate of errorMessage for backwards compatibility
Was this page helpful?
