POST
/
swap
curl --request POST \
  --url https://quote-api.dflow.net/swap \
  --header 'Content-Type: application/json' \
  --data '{
  "computeUnitPriceMicroLamports": 1,
  "createFeeAccount": {
    "referralAccount": "<string>"
  },
  "destinationTokenAccount": "<string>",
  "dynamicComputeUnitLimit": true,
  "feeAccount": "<string>",
  "prioritizationFeeLamports": {
    "autoMultiplier": 1
  },
  "quoteResponse": {
    "inAmount": "<string>",
    "inputMint": "<string>",
    "minOutAmount": "<string>",
    "otherAmountThreshold": "<string>",
    "outAmount": "<string>",
    "outputMint": "<string>",
    "platformFee": null,
    "priceImpactPct": "<string>",
    "routePlan": [
      {
        "inAmount": "<string>",
        "inputMint": "<string>",
        "inputMintDecimals": 1,
        "leg": "<any>",
        "marketKey": "<string>",
        "outAmount": "<string>",
        "outputMint": "<string>",
        "outputMintDecimals": 1,
        "venue": "<string>"
      }
    ],
    "simulatedComputeUnits": 1,
    "slippageBps": 1
  },
  "userPublicKey": "<string>",
  "wrapAndUnwrapSol": true
}'
{
  "computeUnitLimit": 1,
  "lastValidBlockHeight": 1,
  "prioritizationFeeLamports": 1,
  "prioritizationType": null,
  "swapTransaction": "<string>"
}

Body

application/json
quoteResponse
object
required

The response from the quote endpoint

userPublicKey
string
required

Base58-encoded address of the swapper's wallet

computeUnitPriceMicroLamports
integer

Compute unit price in micro-lamports. Mutually exclusive with prioritizationFeeLamports.

Required range: x >= 0
createFeeAccount
object

If the fee account isn't a referral token account derived from the seeds ["referral_ata", referral_account, mint] and the Referral program ID REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3, this should be unspecified. If specified, the transaction will create the fee_account if it doesn't already exist. The user pays for the creation of the fee account. Ignored if fee_account is unspecified.

destinationTokenAccount
string

Base58-encoded address of the token account that will receive the output token. If not provided, the user's associated token account for the output mint will be used. If provided, the account must already be initialized.

dynamicComputeUnitLimit
boolean

If true, the server will simulate the transaction to determine its compute unit limit. If unspecified or false, the transaction will use the default compute unit limit.

feeAccount
string

Base58-encoded address of the token account that will receive the platform fee if a platform fee applies to the swap. If specified, this account's mint must match the fee mint for the swap.

prioritizationFeeLamports

Prioritization fee in lamports. Mutually exclusive with computeUnitPriceMicroLamports. If both computeUnitPriceMicroLamports and prioritizationFeeLamports are unspecified, the default of prioritizationFeeLamports="auto" will be used. Allowed values are:

  • a u32 which specifies the lamports
  • the string value "auto", where the server determines the fee automatically, capped at 0.005 SOL
  • the string value "disabled", where the server leaves the prioritization fee unspecified
  • an object containing the following
    • priorityLevelWithMaxLamports - object
      • priorityLevel - string, either medium, high, or veryHigh
      • maxLamports - integer, a cap on the prioritization fee
  • an object containing the following
    • autoMultiplier - a u32 which specifies how much to multiply the automatically determined fee by. The total prioritization fee will be capped at 0.005 SOL.
wrapAndUnwrapSol
boolean

If false, the transaction will use wrapped SOL. This will be ignored if the output token is SOL and destination_token_account is specified, as the swap signer might not have authority to close the destination token account.

Response

200
application/json
Imperative swap transaction
computeUnitLimit
integer
required

Compute unit limit assigned to the transaction

Required range: x >= 0
lastValidBlockHeight
integer
required

The last block height at which the transaction is valid

Required range: x >= 0
prioritizationFeeLamports
integer
required

Prioritization fee in lamports

Required range: x >= 0
swapTransaction
string
required

Base64-encoded swap transaction. The user must sign before sending it to Solana.

prioritizationType
object | null

Prioritization fee type for the transaction