---
title: "Get a quote"
method: POST
path: "/quote"
tags: ["Quote"]
---

# Get a quote

`POST /quote`

Requests a quote according to the specified swap parameters. This endpoint may be used to get a quote for a swap, a bridge, or a wrap/unwrap. The resulting response includes a quote for the swap and the proposed route by which the quote was achieved. The response will also include estimated gas fees for the proposed quote route. If the proposed route is via a Uniswap Protocol pool, the response may include a permit2 message for the swapper to sign prior to making a /swap request. The proposed route will also be simulated. If the simulation fails, the response will include an error message or `txFailureReason`.

Certain routing options may be whitelisted by the requestor through the use of the `protocols` field. Further, the requestor may ask for the best price route or for the fastest price route through the 'routingPreference' field. Note that the fastest price route refers to the speed with which a quote is returned, not the number of transactions that may be required to get from the input token and chain to the output token and chain. Further note that all `routingPreference` values except for `FASTEST` and `BEST_PRICE` are deprecated. For more information on the `protocols` and `routingPreference` fields, see the [Token Trading Workflow](https://uniswap-docs.readme.io/reference/trading-flow#swap-routing) explanation of Swap Routing.

API integrators using this API for the benefit of customer end users may request a service fee be taken from the output token and deposited to a fee collection address. To request this, please reach out to your Uniswap Labs contact. This optional fee is associated to the API key and is always taken from the output token. Note if there is a fee and the `type` is `EXACT_INPUT`, the output amount quoted will **not** include the fee subtraction. If there is a fee and the `type` is `EXACT_OUTPUT`, the input amount quoted will **not** include the fee addition. Instead, in both cases, the fee will be recorded in the `portionBips` and `portionAmount` fields.

## Headers

- `x-universal-router-version` '1.2' | '2.0'

## Request body

- QuoteRequest
  - `type` 'EXACT_INPUT' | 'EXACT_OUTPUT', required — The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.
  - `amount` string, required — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
  - `tokenInChainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
  - `tokenOutChainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
  - `tokenIn` string, required — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
  - `tokenOut` string, required — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
  - `generatePermitAsTransaction` boolean — Dictates whether you receive permits to sign or permit approval transactions to submit onchain for your wallet in order to swap or LP. If set to true, the response will include an approval transaction depending on your allowance. If set to false you would receive a permit to sign depending on your allowance. The default is false.
  - `swapper` string, required — The wallet address which will be used to send the token.
  - `slippageTolerance` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
  - `autoSlippage` 'DEFAULT' — The auto slippage strategy to employ. For Uniswap Protocols (v2, v3, v4) the auto slippage will be automatically calculated when this field is set to `DEFAULT`. Auto slippage cannot be calculated for UniswapX swaps. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `autoSlippage` may not be set when `slippageTolerance` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
  - `routingPreference` 'BEST_PRICE' | 'FASTEST' | 'CLASSIC' | 'UNISWAPX' | 'BEST_PRICE_V2' | 'UNISWAPX_V2' | 'V3_ONLY' | 'V2_ONLY' — The `routingPreference` specifies the preferred strategy to determine the quote. If the `routingPreference` is `BEST_PRICE`, then the quote will propose a route through the specified whitelisted protocols (or all, if none are specified) that provides the best price. When the `routingPreference` is `FASTEST`, the quote will propose the first route which is found to complete the swap. Note that the values `CLASSIC`, `UNISWAPX`, `BEST_PRICE_V2`, `UNISWAPX_V2`, `V3_ONLY`, and `V2_ONLY` are deprecated and will be removed in a future release. See the [Token Trading Workflow](https://uniswap-docs.readme.io/reference/trading-flow#migrating-from-routingpreference-to-protocols) page for more information.
  - `protocols` ProtocolItems[] — The protocols to use for the swap/order. If the `protocols` field is defined, then you can only set the `routingPreference` to `BEST_PRICE`. Note that the value `UNISWAPX` is deprecated and will be removed in a future release.
  - `hooksOptions` 'V4_HOOKS_INCLUSIVE' | 'V4_HOOKS_ONLY' | 'V4_NO_HOOKS' — The hook options to use for V4 pool quotes. `V4_HOOKS_INCLUSIVE` will get quotes for V4 pools with or without hooks. `V4_HOOKS_ONLY` will only get quotes for V4 pools with hooks. `V4_NO_HOOKS` will only get quotes for V4 pools without hooks. Defaults to `V4_HOOKS_INCLUSIVE` if `V4` is included in `protocols` and `hookOptions` is not set. This field is ignored if `V4` is not passed in `protocols`.
  - `spreadOptimization` 'EXECUTION' | 'PRICE' — For UniswapX swaps, when set to `EXECUTION`, quotes optimize for looser spreads at higher fill rates. When set to `PRICE`, quotes optimize for tighter spreads at lower fill rates. This field is not applicable to Uniswap Protocols (v2, v3, v4), bridging, or wrapping/unwrapping and will be ignored if set.
  - `urgency` 'normal' | 'fast' | 'urgent' — The urgency impacts the estimated gas price of the transaction. The higher the urgency, the higher the gas price, and the faster the transaction is likely to be selected from the mempool. The default value is `urgent`.
  - `permitAmount` 'FULL' | 'EXACT' — For Uniswap Protocols (v2, v3, v4) swaps, specify the input token spend allowance (e.g. quantity) to be set in the permit. `FULL` can be used to specify an unlimited token quantity, and may prevent the wallet from needing to sign another permit for the same token in the future. `EXACT` can be used to specify the exact input token quantity for this request. Defaults to `FULL`.

## Response `200`

Quote request successful.

- QuoteResponse
  - `requestId` string, required — A unique ID for the request.
  - `quote` union, required
    - DutchQuote
      - `encodedOrder` string, required — An encoded copy of the order details which will be submitted to the filler network along with the signed permit.
      - `orderId` string, required — A unique ID for the order. Used to track the order's status.
      - `orderInfo` DutchOrderInfo, required
        - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `nonce` string, required — A unique nonce for this order.
        - `reactor` string, required — The address of a contract which will be used to facilitate the swap.
        - `swapper` string, required — The wallet address which will receive the token.
        - `deadline` number, required — The unix timestamp at which the order will be reverted if not filled.
        - `additionalValidationContract` string — Unused and deprecated.
        - `additionalValidationData` string — Unused and deprecated.
        - `decayStartTime` number — The unix timestamp at which the order will be eligible to be filled by alternate fillers at a lower price. Noted that the fill amount will not be lower than the output `endAmount`.
        - `decayEndTime` number — The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers.
        - `exclusiveFiller` string, required — The address of the filler who has priority to fill the order by the `decayStartTime`.
        - `exclusivityOverrideBps` string, required — The portion of the order which is eligible to be filled by the `exclusiveFiller`, specified in basis points.
        - `input` DutchInput, required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `endAmount` string, required — The worst case quantity of tokens resulting from this swap.
          - `token` string — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `outputs` DutchOutput[], required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `endAmount` string, required — The worst case quantity of tokens resulting from this swap.
          - `token` string, required — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
          - `recipient` string, required — The wallet address which will receive the token.
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `quoteId` string — A unique ID for the quote.
      - `slippageTolerance` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
      - `classicGasUseEstimateUSD` string — The gas fee you would pay if you opted for a CLASSIC swap over a Uniswap X order in terms of USD.
      - `aggregatedOutputs` AggregatedOutput[]
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
        - `bps` number — The portion of the swap stated in basis points.
        - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
    - ClassicQuote
      - `input` ClassicInput
        - `token` string — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
      - `output` ClassicOutput
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
      - `swapper` string — The wallet address which will be used to send the token.
      - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196 — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
      - `slippage` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
      - `tradeType` 'EXACT_INPUT' | 'EXACT_OUTPUT' — The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.
      - `gasFee` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain.
      - `gasFeeUSD` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) denominated in USDC.
      - `gasFeeQuote` string — The total estimated gas cost of this transaction (eg. gasLimit multiplied by maxFeePerGas) in the quoted currency (e.g. output token) in the base units of the quoted currency.
      - `route` array[]
        - union[]
          - union
            - V3PoolInRoute
              - …
            - V2PoolInRoute
              - …
            - V4PoolInRoute
              - …
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `routeString` string — The route in string format.
      - `quoteId` string — A unique ID for the quote.
      - `gasUseEstimate` string — The estimated gas use. It does NOT include the additional gas for token approvals.
      - `blockNumber` string — The current block number.
      - `gasPrice` string — The cost per unit of gas.
      - `maxFeePerGas` string — The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction.
      - `maxPriorityFeePerGas` string — The maximum tip to the block builder. Adjusted based upon the urgency specified in the request.
      - `txFailureReasons` TransactionFailureReason[] — The reason(s) why the transaction failed during simulation.
      - `priceImpact` number — The impact the trade has on the market price of the pool, between 0-100 percent
      - `aggregatedOutputs` AggregatedOutput[]
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
        - `bps` number — The portion of the swap stated in basis points.
        - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
    - WrapUnwrapQuote
      - `swapper` string — The wallet address which will receive the token.
      - `input` ClassicInput
        - `token` string — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
      - `output` ClassicOutput
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
      - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196 — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
      - `tradeType` 'EXACT_INPUT' | 'EXACT_OUTPUT' — The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.
      - `gasFee` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain.
      - `gasFeeUSD` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) denominated in USDC.
      - `gasFeeQuote` string — The total estimated gas cost of this transaction (eg. gasLimit multiplied by maxFeePerGas) in the quoted currency (e.g. output token) in the base units of the quoted currency.
      - `gasUseEstimate` string — The maximum units of gas that will be consumed by this transaction.
      - `gasPrice` string — The cost per unit of gas.
      - `maxFeePerGas` string — The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction.
      - `maxPriorityFeePerGas` string — The maximum tip to the block builder. Adjusted based upon the urgency specified in the request.
    - DutchQuoteV2
      - `encodedOrder` string, required — An encoded copy of the order details which will be submitted to the filler network along with the signed permit.
      - `orderId` string, required — A unique ID for the order. Used to track the order's status.
      - `orderInfo` DutchOrderInfoV2, required
        - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `nonce` string, required — A unique nonce for this order.
        - `reactor` string, required — The address of a contract which will be used to facilitate the swap.
        - `swapper` string, required — The wallet address which will receive the token.
        - `deadline` number, required — The unix timestamp at which the order will be reverted if not filled.
        - `additionalValidationContract` string — Unused and deprecated.
        - `additionalValidationData` string — Unused and deprecated.
        - `input` DutchInput, required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `endAmount` string, required — The worst case quantity of tokens resulting from this swap.
          - `token` string — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `outputs` DutchOutput[], required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `endAmount` string, required — The worst case quantity of tokens resulting from this swap.
          - `token` string, required — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
          - `recipient` string, required — The wallet address which will receive the token.
        - `cosigner` string — The address of a cosigner who will run the auction and ensure the best executable price within the given parameters. Currently the cosigner is always Uniswap Labs.
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `quoteId` string — A unique ID for the quote.
      - `slippageTolerance` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
      - `deadlineBufferSecs` number
      - `classicGasUseEstimateUSD` string — The gas fee you would pay if you opted for a CLASSIC swap over a Uniswap X order in terms of USD.
      - `aggregatedOutputs` AggregatedOutput[]
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
        - `bps` number — The portion of the swap stated in basis points.
        - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
    - DutchQuoteV3
      - `encodedOrder` string, required — An encoded copy of the order details which will be submitted to the filler network along with the signed permit.
      - `orderId` string, required — A unique ID for the order. Used to track the order's status.
      - `orderInfo` DutchOrderInfoV3, required
        - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `nonce` string, required — A unique nonce for this order.
        - `reactor` string, required — The address of a contract which will be used to facilitate the swap.
        - `swapper` string, required — The wallet address which will receive the token.
        - `deadline` number, required — The unix timestamp at which the order will be reverted if not filled.
        - `additionalValidationContract` string — Unused and deprecated.
        - `additionalValidationData` string — Unused and deprecated.
        - `input` DutchInputV3, required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `maxAmount` string, required
          - `adjustmentPerGweiBaseFee` string, required
          - `curve` Curve, required
            - `relativeBlocks` number[]
            - `relativeAmounts` string[]
          - `token` string, required — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `outputs` DutchOutputV3[], required
          - `startAmount` string, required — The intended execution quantity of tokens resulting from this swap.
          - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
          - `recipient` string, required — The wallet address which will receive the token.
          - `adjustmentPerGweiBaseFee` string, required
          - `curve` Curve, required
            - `relativeBlocks` number[]
            - `relativeAmounts` string[]
          - `token` string, required — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `cosigner` string — The address of a cosigner who will run the auction and ensure the best executable price within the given parameters. Currently the cosigner is always Uniswap Labs.
        - `startingBaseFee` string
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `quoteId` string — A unique ID for the quote.
      - `slippageTolerance` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
      - `deadlineBufferSecs` number
      - `classicGasUseEstimateUSD` string — The gas fee you would pay if you opted for a CLASSIC swap over a Uniswap X order in terms of USD.
      - `expectedAmountIn` string
      - `expectedAmountOut` string
      - `aggregatedOutputs` AggregatedOutput[]
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
        - `bps` number — The portion of the swap stated in basis points.
        - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
    - BridgeQuote
      - `quoteId` string — A unique ID for the quote.
      - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196 — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
      - `destinationChainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196 — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
      - `swapper` string — The wallet address which will receive the token.
      - `input` ClassicInput
        - `token` string — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
      - `output` ClassicOutput
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
      - `tradeType` 'EXACT_INPUT' | 'EXACT_OUTPUT' — The handling of the `amount` field. `EXACT_INPUT` means the requester will send the specified `amount` of input tokens and get a quote with a variable quantity of output tokens. `EXACT_OUTPUT` means the requester will receive the specified `amount` of output tokens and get a quote with a variable quantity of input tokens.
      - `quoteTimestamp` number
      - `gasPrice` string — The cost per unit of gas.
      - `maxFeePerGas` string — The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction.
      - `maxPriorityFeePerGas` string — The maximum tip to the block builder. Adjusted based upon the urgency specified in the request.
      - `gasFee` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain.
      - `gasUseEstimate` string — The maximum units of gas that will be consumed by this transaction.
      - `gasFeeUSD` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) denominated in USDC.
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `estimatedFillTimeMs` number — The estimated time it will take to fill the order in milliseconds.
      - `exclusiveRelayer` string — The address of the exclusive filler (the relayer).
      - `exclusivityDeadline` number — The deadline (unix timestamp) by which the exclusive relayer must fill the order before other relayers can fill it.
      - `fillDeadline` number — The deadline by which, if the order is not filled, the order will be reverted.
    - PriorityQuote
      - `encodedOrder` string, required — An encoded copy of the order details which will be submitted to the filler network along with the signed permit.
      - `orderId` string, required — A unique ID for the order. Used to track the order's status.
      - `orderInfo` PriorityOrderInfo, required
        - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `nonce` string, required — A unique nonce for this order.
        - `reactor` string, required — The address of a contract which will be used to facilitate the swap.
        - `swapper` string, required — The wallet address which will receive the token.
        - `deadline` number, required — The unix timestamp at which the order will be reverted if not filled.
        - `additionalValidationContract` string — Unused and deprecated.
        - `additionalValidationData` string — Unused and deprecated.
        - `auctionStartBlock` string, required
        - `baselinePriorityFeeWei` string, required
        - `input` PriorityInput, required
          - `amount` string, required — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
          - `token` string, required — The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
          - `mpsPerPriorityFeeWei` string, required
        - `outputs` PriorityOutput[], required
          - `amount` string, required — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
          - `token` string, required — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
          - `recipient` string, required — The wallet address which will receive the token.
          - `mpsPerPriorityFeeWei` string, required — The scaling factor of the priority fee based on the output token amount.
        - `cosigner` string, required — The address of a cosigner who will run the auction and ensure the best executable price within the given parameters. Currently the cosigner is always Uniswap Labs.
      - `portionBips` number — The portion of the swap that will be taken as a fee stated in basis points. The fee will be taken from the output token.
      - `portionAmount` string — The portion of the swap that will be taken as a fee in the base units of the token. The fee will be taken from the output token.
      - `portionRecipient` string — The wallet address which will receive the fee.
      - `quoteId` string — A unique ID for the quote.
      - `slippageTolerance` number — The slippage tollerace as a percentage up to a maximum of two decimal places. For Uniswap Protocols (v2, v3, v4), the slippage tolerance is the maximum amount the price can change between the time the transaction is submitted and the time it is executed. The slippage tolerance is a percentage of the total value of the swap. When submitting a quote, note that slippage tolerance works differently in UniswapX swaps where it does not set a limit on the Spread in an order. See [here](https://uniswap-docs.readme.io/reference/faqs#why-do-the-uniswapx-quotes-have-more-slippage-than-the-tolerance-i-set) for more information. Note that if the trade type is `EXACT_INPUT`, then the slippage is in terms of the output token. If the trade type is `EXACT_OUTPUT`, then the slippage is in terms of the input token. When submitting a request, `slippageTolerance` may not be set when `autoSlippage` is defined. One of `slippageTolerance` or `autoSlippage` must be defined.
      - `deadlineBufferSecs` number
      - `classicGasUseEstimateUSD` string — The gas fee you would pay if you opted for a CLASSIC swap over a Uniswap X order in terms of USD.
      - `expectedAmountIn` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
      - `expectedAmountOut` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
      - `aggregatedOutputs` AggregatedOutput[]
        - `token` string — The token which will be received, specified by its token address. For a list of supported tokens, see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
        - `amount` string — The quantity of tokens denominated in the token's base units. (For example, for an ERC20 token one token is 1x10^18 base units. For one USDC token one token is 1x10^6 base units.) This value must be greater than 0.
        - `recipient` string — The wallet address which will receive the token.
        - `bps` number — The portion of the swap stated in basis points.
        - `minAmount` string — The minimum portion of the swap, stated in the base unit of the token, which will be output to the recipient.
  - `routing` 'DUTCH_LIMIT' | 'CLASSIC' | 'DUTCH_V2' | 'DUTCH_V3' | 'BRIDGE' | 'LIMIT_ORDER' | 'PRIORITY' | 'WRAP' | 'UNWRAP', required — The routing for the proposed transaction.
  - `permitTransaction` TransactionRequest
    - `to` string, required — The wallet address which will receive the token.
    - `from` string, required — The wallet address which will be used to send the token.
    - `data` string, required — The calldata for the transaction.
    - `value` string, required — The quantity of ETH tokens approved for spending by the transaction, denominated in wei. Note that by default Uniswap Labs sets this to the maximum approvable spend.
    - `gasLimit` string — The maximum units of gas that will be consumed by this transaction.
    - `chainId` 1 | 10 | 56 | 130 | 137 | 324 | 480 | 1868 | 8453 | 10143 | 42161 | 42220 | 43114 | 81457 | 7777777 | 1301 | 84532 | 11155111 | 143 | 196, required — The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://uniswap-docs.readme.io/reference/faqs).
    - `maxFeePerGas` string — The sum of the base fee and priority fee. Subtracting `maxPriorityFeePerGas` from this value will yield the base fee to be paid for this transaction.
    - `maxPriorityFeePerGas` string — The maximum tip to the block builder. Adjusted based upon the urgency specified in the request.
    - `gasPrice` string — The cost per unit of gas.
  - `permitData` NullablePermit, nullable, required — the permit2 message object for the customer to sign to permit spending by the permit2 contract.
    - `domain` object
    - `values` object
    - `types` object
  - `permitGasFee` string — The total estimated gas cost of this transaction (eg. `gasLimit` multiplied by `maxFeePerGas`) in the base unit of the chain.

## Other responses

- `400` — RequestValidationError, Bad Input
- `401` — UnauthorizedError eg. Account is blocked.
- `404` — ResourceNotFound eg. No quotes available or Gas fee/price not available
- `419` — Ratelimited
- `500` — Unexpected error
- `504` — Request duration limit reached.

---

[API](https://skmtc.net/uniswap/apis/token-trading.md) · [All operations](https://skmtc.net/uniswap/apis/token-trading/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uniswap/token-trading/revisions/55533f9bd1ab/schema)
