---
title: "Get Swap Quote"
method: POST
path: "/v1/wallets/{wallet_id}/swap/quote"
tags: ["Swaps"]
---

# Get Swap Quote

`POST /v1/wallets/{wallet_id}/swap/quote`

Get a price quote for swapping tokens within a wallet.

## Path parameters

- `wallet_id` string, required — ID of the wallet.

## Headers

- `privy-app-id` string, required — ID of your Privy app.
- `privy-authorization-signature` string — Request authorization signature. If multiple signatures are required, they should be comma separated.
- `privy-request-expiry` string — Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.

## Request body

- SwapQuoteRequestBody — Input for requesting a token swap quote.
  - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token (exact_input) or output token (exact_output).
  - `base_amount` string, required — Amount in base units (e.g., wei for ETH). Must be a non-negative integer string.
  - `destination` SwapQuoteDestination, required — The output side of a swap quote request.
    - `asset_address` string, required — Token contract address to buy, or "native" for the chain's native token.
    - `caip2` string — CAIP-2 chain identifier for the destination. Defaults to source chain if omitted. Will result in a cross-chain swap if source and destination chains differ.
    - `destination_address` string — Address to receive the output tokens. Defaults to the swapping wallet address. Required when swapping between chains with different address types (e.g. EVM to Solana).
  - `fee_configuration` object — Optional fee configuration for the swap. If omitted, cross-chain swaps will not charge additional fees.
    - `type` 'total_fee_bps', required — Discriminator: total fee specified in BPS.
    - `value` integer, required — Total fee in basis points (1 bps = 0.01%).
  - `slippage_bps` integer — Maximum slippage tolerance in basis points (e.g., 50 for 0.5%). If omitted, auto-slippage is used.
  - `source` SwapSource, required — The input side of a swap request, including token and chain.
    - `asset_address` string, required — Token contract address to sell, or "native" for the chain's native token.
    - `caip2` string, required — CAIP-2 chain identifier (e.g., "eip155:1").

## Response `200`

Swap quote retrieved successfully.

- SwapQuoteResponse — Pricing data for a token swap.
  - `caip2` string, required — Chain identifier.
  - `destination_caip2` string — Destination chain CAIP-2 identifier for cross-chain swaps. Only present for cross-chain swaps.
  - `est_output_amount` string, required — Estimated amount of output token in base units.
  - `estimated_fees` FeeLineItem[] — Estimated fees for the swap. Only present for cross-chain swaps.
    - union — An individual fee assessed on a transfer.
      - object — Estimated fee paid to the relayer.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'relayer', required
      - object — Estimated fee paid to Privy.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'privy', required
      - object — Estimated fee paid to the developer.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'developer', required
  - `estimated_gas` object — Estimated gas cost with full token metadata. Only present for cross-chain swaps.
    - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
    - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
    - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
  - `expires_at` number — Quote expiry as Unix timestamp (seconds). Only present for cross-chain quotes.
  - `gas_estimate` string, required — Estimated gas cost in base units of the native token. @deprecated For cross-chain swaps, use estimated_gas instead.
  - `input_amount` string, required — Amount of input token in base units.
  - `input_token` string, required — Token address being sold.
  - `minimum_output_amount` string, required — Minimum output amount accounting for slippage, in base units.
  - `output_token` string, required — Token address being bought.

## Changes

- **2026-06-26** `c10a42ebeddb` — 1 info
  - added the new optional `header` request parameter `privy-request-expiry`
- **2026-06-05** `2e6aabd41a3c` — 1 breaking, 2 warning
  - the `slippage_bps` request property type changed from `number` to `integer`
  - the `slippage_bps` request property's max was set to `10000.00`
  - the `slippage_bps` request property's min was set to `0.00`
- **2026-06-03** `b64a233ab9ee` — 4 info
  - added the optional property `estimated_gas` to the response with the `200` status
  - added `#/components/schemas/TronAddress` to the `estimated_fees/items/oneOf[subschema #1: RelayerFee]/recipient` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/TronAddress` to the `estimated_fees/items/oneOf[subschema #2: PrivyFee]/recipient` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/TronAddress` to the `estimated_fees/items/oneOf[subschema #3: DeveloperFee]/recipient` response property `anyOf` list for the response status `200`
- **2026-05-29** `59011037f125` — 5 info
  - added the new optional request property `destination/destination_address`
  - added the new optional request property `fee_configuration`
  - added the optional property `destination_caip2` to the response with the `200` status
  - added the optional property `estimated_fees` to the response with the `200` status
  - …1 more

[Change history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/wallets/:wallet_id/swap/quote/post.md)

---

[API](https://skmtc.dev/privy-io/apis/privy-api.md) · [All operations](https://skmtc.dev/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/privy-io/apis/privy-api/revisions/bb2eb34156cc?raw)
