Skip to main content
GET
/
order
order
curl --request GET \
  --url https://api.jup.ag/ultra/v1/order \
  --header 'x-api-key: <api-key>'
{
  "mode": "ExactIn",
  "inputMint": "So11111111111111111111111111111111111111112",
  "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "inAmount": "100000000",
  "outAmount": "17057460",
  "inUsdValue": 17.13,
  "outUsdValue": 17.06,
  "priceImpact": 0.0001,
  "swapUsdValue": 17.06,
  "otherAmountThreshold": "17040402",
  "swapMode": "ExactIn",
  "slippageBps": 1,
  "priceImpactPct": "0.0001",
  "routePlan": [
    {
      "swapInfo": {
        "ammKey": "HXpGFJGCEEFdV31tDmjDBaJMEB1fKLiAoKoWr3Fnonid",
        "label": "Meteora DLMM",
        "inputMint": "So11111111111111111111111111111111111111112",
        "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "inAmount": "100000000",
        "outAmount": "17057460"
      },
      "percent": 100,
      "bps": 10000,
      "usdValue": 17.06
    }
  ],
  "feeMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "feeBps": 5,
  "platformFee": {
    "amount": "8529",
    "feeBps": 5
  },
  "signatureFeeLamports": 5000,
  "signatureFeePayer": null,
  "prioritizationFeeLamports": 254600,
  "prioritizationFeePayer": null,
  "rentFeeLamports": 0,
  "rentFeePayer": null,
  "swapType": "aggregator",
  "router": "metis",
  "transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEN...",
  "gasless": false,
  "requestId": "b5e5f3a7-8c4d-4e2f-9a1b-3c6d8e0f2a4b",
  "totalTime": 320,
  "taker": "BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV"
}
Ultra Swap API is no longer actively maintained and has been superseded by Swap V2.

Authorizations

x-api-key
string
header
required

Query Parameters

inputMint
string
default:So11111111111111111111111111111111111111112
required
outputMint
string
default:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
required
amount
string
default:10000000
required
taker
string
default:BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV
receiver
string
  • The public key of the account that will receive the output tokens
  • If not provided, the output tokens will be sent to the taker like default
  • It expects an account (NOT a token account)
  • If the output is non-SOL tokens, it only transfers to ATAs (not token accounts)
  • If the destination token account is not initialized, an additional create ATA instruction will be added to the transaction
  • If the output is SOL, it will transfer native SOL directly to the receiver account
  • It does not support destination WSOL token account
payer
string
  • The public key of an account that will be used to cover 'gas-related' fees on behalf of the taker
  • Gas related fees such as signature fees, priority fees and rent. Note that enabling this may result in different routing decisions.
  • Refer to Integrator Payer for more details
closeAuthority
string
  • Optional. If used, requires payer
  • Ignored, if payer is not provided
  • The public key of an account to set as the close authority of ATAs created during the swap transaction. Only applies to non-wSOL ATAs that persist beyond the execution of the transaction.
  • If closeAuthority is not provided, we will default to taker
  • If closeAuthority is provided and is different from taker, we will add the instruction to set the new closeAuthority
referralAccount
string
referralFee
number
Required range: 50 <= x <= 255
excludeRouters
enum<string>
Available options:
metis,
jupiterz,
dflow,
okx
excludeDexes
string
  • Full list of DEXes here, for example: excludeDexes=Raydium,Orca+V2,Meteora+DLMM
  • Important: This only excludes DEXes on the Metis router, does not apply to other routers
  • For example:
    • Exclude Raydium: excludeRouters=<all-except-metis> and excludeDexes=Raydium
    • Only include Meteora DLMM: excludeRouters=<all-except-metis> and excludeDexes=<all-except-MeteoraDLMM>

Response

Successful response

mode
string
required
inputMint
string
required
outputMint
string
required
inAmount
string
required
outAmount
string
required
otherAmountThreshold
string
required
swapMode
string
required
slippageBps
number
required
priceImpactPct
string
required
  • Please use priceImpact field instead, this is still available only for backwards compatibility
routePlan
object[]
required
feeBps
number
required
  • The fee includes either Ultra default fee or your integrator fee, depending on if referral and/or payer params are passed in
  • If referralAccount, referralFee (and payer if passed in) are passed in, the fee will be the integrator fee only
  • If no additional referral params are passed in, the fee will be the Ultra default fee only and can include additional fees for gasless support mechanism
platformFee
object
required
  • This field shows the platform fee only, does not include fee for gas
  • Platform fee can either be the Ultra default fee or your integrator fee
signatureFeeLamports
number
required
  • The number of lamports the taker, maker (JupiterZ's MM) or payer has to pay for the base network fee, if a valid transaction is returned.
signatureFeePayer
string | null
required
  • The public key of the account that will cover the signature fee, it can be either taker, maker (JupiterZ's MM) or payer if passed in
prioritizationFeeLamports
number
required
  • The number of lamports the taker, maker (JupiterZ's MM) or payer has to pay for higher priority landing, if a valid transaction is returned
  • Includes priority fees and tips for services such as Jito, etc, if any
prioritizationFeePayer
string | null
required
  • The public key of the account that will cover the prioritization fee, it can be either taker, maker (JupiterZ's MM) or payer if passed in
rentFeeLamports
number
required
  • The number of lamports the taker or payer has to pay for account rent, if a valid transaction is returned
  • Note that this value is just an estimate
  • For JupiterZ quotes, Jupiter's gas wallet pays the rent to create the taker's output token account if not yet initialised
rentFeePayer
string | null
required
  • The public key of the account that will cover the rent fee, it can be either taker, payer if passed in, or Jupiter's gas wallet for JupiterZ quotes when the taker's output token account is not yet initialised
swapType
string
required
  • Deprecated, in favour of router
router
enum<string>
required
Available options:
metis,
jupiterz,
dflow,
okx
transaction
string | null
required
  • Unsigned base-64 encoded transaction to be signed and used in /execute
  • If taker is null, this field will be null.
  • If the transaction field is empty, it is returned with errorCode and errorMessage such as Insufficient Funds
gasless
boolean
required
requestId
string
required
  • Required to make a request to /execute
totalTime
number
required
taker
string | null
required
inUsdValue
number
outUsdValue
number
priceImpact
number
swapUsdValue
number
referralAccount
string
feeMint
string
quoteId
string
maker
string
expireAt
string
errorCode
enum<number>
  • This field will be present if taker is defined and transaction is an empty string
  • It is unique for each error scenarios
Available options:
1,
2,
3
errorMessage
enum<string>
  • This field will be present if taker is defined and transaction is an empty string
  • This field can still return despite having a valid order/quote
  • This is meant for display purposes only and it is discouraged to match these error messages as they could be parameterized
Available options:
Insufficient funds,
Top up `${solAmount}` SOL for gas,
Minimum `${swapAmount}` for gasless