Skip to main content
GET
/
2
/
swap
/
quoting
Get swap quote with transaction details
curl --request GET \
  --url https://demo-api.mobula.io/api/2/swap/quoting
{
  "data": {
    "requestId": "<string>",
    "solana": {
      "transaction": {
        "serialized": "AQABAuObQ8Adqk1eqZxRMJg4r6vGtXq9k0...base64...",
        "variant": "versioned"
      },
      "lastValidBlockHeight": 269450123
    },
    "amountOutTokens": "245.123",
    "slippagePercentage": 1,
    "amountInUSD": 200.45,
    "amountOutUSD": 199.87,
    "marketImpactPercentage": 0.04,
    "poolFeesPercentage": 0.25,
    "tokenIn": {
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "decimals": 6,
      "name": "USD Coin",
      "symbol": "USDC",
      "logo": "https://metadata.mobula.io/assets/logos/evm_8453_0x8335…"
    },
    "tokenOut": {
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "decimals": 6,
      "name": "USD Coin",
      "symbol": "USDC",
      "logo": "https://metadata.mobula.io/assets/logos/evm_8453_0x8335…"
    },
    "details": {
      "route": {
        "hops": [
          {
            "poolAddress": "<string>",
            "tokenIn": {
              "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "decimals": 6,
              "name": "USD Coin",
              "symbol": "USDC",
              "logo": "https://metadata.mobula.io/assets/logos/evm_8453_0x8335…"
            },
            "tokenOut": {
              "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "decimals": 6,
              "name": "USD Coin",
              "symbol": "USDC",
              "logo": "https://metadata.mobula.io/assets/logos/evm_8453_0x8335…"
            },
            "amountInTokens": "1.0",
            "amountOutTokens": "245.1",
            "exchange": "Raydium",
            "poolType": "CLMM",
            "feePercentage": 0.25,
            "feeBps": 25
          }
        ],
        "totalFeePercentage": 0.25,
        "aggregator": "jupiter"
      },
      "aggregator": "<string>",
      "raw": {}
    },
    "fee": {
      "amount": "0.001",
      "percentage": 0.5,
      "wallet": "0xCALLER…",
      "deductedFrom": "input"
    },
    "evm": null,
    "ton": null
  },
  "error": "<string>"
}
Deprecated EndpointThis endpoint is deprecated. Please use the new v2 endpoint instead:
  • /api/2/swap/quote — Get swap quotes with improved routing and multi-chain support

Query Parameters

chainId
string

Mobula chain id. EVM: evm:<integer> (e.g. evm:1, evm:8453, evm:42161). Solana: solana:solana. TON: ton:mainnet or ton:testnet.

tokenIn
string
required

Sell token address. Native sentinels — EVM: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE (EIP-7528). Solana native SOL: So11111111111111111111111111111111111111111. Use wrapped SOL / WSOL mint So11111111111111111111111111111111111111112 only when swapping WSOL token-account balance. TON: EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c.

Minimum string length: 1
tokenOut
string
required

Buy token address. Same sentinel rules as tokenIn.

Minimum string length: 1
amount
string

Human-readable amount (e.g. "1.5" for 1.5 tokens). Converted server-side: raw = amount × 10^decimals. Mutually exclusive with amountRaw.

amountRaw
string

Raw amount as a digit-only string (e.g. "1500000" for 1.5 USDC at 6 decimals). Use this when you already have the bigint to avoid float precision loss. Mutually exclusive with amount.

slippage
string

Slippage tolerance. Use auto (default) or a fixed percentage 0-100. Quote rejects if expected output drops below this threshold.

walletAddress
string
required

User wallet address. This wallet signs/funds the swap and receives tokenOut unless a Solana recipient override is provided.

Minimum string length: 1
destinationWallet
string

Solana only. Output recipient wallet when supported. Mutually exclusive with finalRecipientWallet.

finalRecipientWallet
string

Solana only. Router-enforced final output recipient. The router sends the exact post-swap output to this wallet after swap, fees, and slippage checks. Mutually exclusive with destinationWallet.

excludedProtocols

DEX-level deny list (CSV). Example: pump-amm,raydium.

onlyProtocols

DEX-level allow list (CSV). Example: uniswap-v3,uniswap-v4.

poolAddress
string

Pin routing to a single pool (e.g. when you want a specific Uniswap V3 fee tier).

onlyRouters
string

Aggregator filter (CSV) — jupiter, kyberswap, lifi, naos. Omit to let the API pick.

prioritizationFeeLamports
string

Solana only. Jupiter-compatible priority fee budget. Use auto, a fixed lamport amount, or a JSON priority object with priorityLevelWithMaxLamports.

computeUnitLimit
string

Solana only. true by default to dynamically size the compute unit limit from the built swap instructions, or a fixed integer.

jitoTipLamports
string

Solana only. Jito tip in lamports — adds a transfer to one of the Jito tip accounts for fast landing.

feePercentage

Caller referral fee in % (0-99). Mobula skims a 20% platform cut off the top. Requires feeWallet.

feeWallet
string

Wallet that receives the caller referral fee. Required when feePercentage > 0.

minFeesNative

Minimum caller referral fee in native-token units. Currently honored on TON native-input swaps; requires feeWallet.

payerAddress
string

Solana only. Fee abstraction — wallet that signs/pays for the tx (separate from walletAddress).

multiLander
string

Solana only. true returns N candidate transactions over a durable nonce — race them across landers (Jito, Nozomi, 0slot). Only one commits.

landerTipLamports
string

Per-lander tip when multiLander=true. Defaults to each lander's minimum.

Response

Swap quoting response

data
object
required
error
string

Set on routing failures (no route, slippage too tight, upstream timeout). The data block still carries requestId for support.