Uniswap Quote API

The Quote API from Uniswap — 1 operation(s) for quote.

Operations 1

POST /quote Get a quote #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uniswap-quote-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uniswap-quote-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Token Trading Approval Quote API
  description: 'Uniswap Labs trading APIs.


    Each operation may include the vendor extension `x-public-endpoint` (boolean): `true` when the operation is available on the public gateway for standard API keys, `false` when it is not publicly exposed. See the [OpenAPI specification extensions](https://swagger.io/docs/specification/v3_0/openapi-extensions/) definition of `x-` fields.'
servers:
- description: Uniswap Trading API
  url: https://trade-api.gateway.uniswap.org/v1
security:
- apiKey: []
tags:
- name: Quote
paths:
  /quote:
    post:
      tags:
      - Quote
      summary: Get a quote
      description: '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.


        Native ETH on UniswapX: UniswapX routes (e.g. `DUTCH_V2`, `DUTCH_V3`, `PRIORITY`) can use native ETH as the input token by setting `tokenIn` to the native currency address (e.g. `0x0000000000000000000000000000000000000000`) and passing `x-erc20eth-enabled: true`. Native ETH input on UniswapX requires wallet support for EIP-7914, a smart wallet activated on your desired network, and a sufficient native allowance (set via /swap_7702 if x-erc20eth-enabled header is set to `true`). If these requirements are not met, UniswapX quotes for native input may be omitted and the response may fall back to `CLASSIC` routing instead.'
      operationId: aggregator_quote
      security:
      - apiKey: []
      parameters:
      - $ref: '#/components/parameters/universalRouterVersionHeader'
      - $ref: '#/components/parameters/erc20EthEnabledHeader'
      - $ref: '#/components/parameters/permit2DisabledHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequest'
            example:
              type: EXACT_INPUT
              tokenInChainId: 1
              tokenOutChainId: 1
              generatePermitAsTransaction: false
              autoSlippage: DEFAULT
              routingPreference: BEST_PRICE
              spreadOptimization: EXECUTION
              urgency: normal
              permitAmount: FULL
              amount: '2516'
              tokenIn: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
              tokenOut: '0x0000000000000000000000000000000000000000'
              swapper: '0xC9bebBA9f481b12cE6f3EA54c4B182c9636ec421'
              protocols:
              - UNISWAPX_V2
              - V4
              - V3
              - V2
      responses:
        '200':
          $ref: '#/components/responses/QuoteSuccess200'
        '400':
          $ref: '#/components/responses/BadRequest400'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/QuoteNotFound404'
        '429':
          $ref: '#/components/responses/RateLimitedErr429'
        '500':
          $ref: '#/components/responses/InternalErr500'
        '504':
          $ref: '#/components/responses/Timeout504'
      x-public-endpoint: true
components:
  schemas:
    DutchQuote:
      type: object
      properties:
        encodedOrder:
          $ref: '#/components/schemas/encodedOrder'
        orderId:
          $ref: '#/components/schemas/orderId'
        orderInfo:
          $ref: '#/components/schemas/DutchOrderInfo'
        portionBips:
          $ref: '#/components/schemas/portionBips'
        portionAmount:
          $ref: '#/components/schemas/portionAmount'
        portionRecipient:
          $ref: '#/components/schemas/portionAmountReceiverAddress'
        quoteId:
          $ref: '#/components/schemas/quoteId'
        slippageTolerance:
          $ref: '#/components/schemas/slippageTolerance'
        classicGasUseEstimateUSD:
          $ref: '#/components/schemas/ClassicGasUseEstimateUSD'
        aggregatedOutputs:
          type: array
          items:
            $ref: '#/components/schemas/AggregatedOutput'
      required:
      - encodedOrder
      - orderInfo
      - orderId
    PermitAmount:
      type: string
      enum:
      - FULL
      - EXACT
      description: 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`.
      default: FULL
    ClientContext:
      type: object
      description: Uni client-specific context describing how this wallet integrates with the application.
      properties:
        directPrivateKeyAccess:
          type: boolean
          description: Whether the wallet has direct private key access.
        nextEvmUpgradeAddress:
          type: string
          description: Address for the next EVM upgrade.
    WalletProperties:
      type: object
      description: Properties describing the wallet.
      properties:
        walletInfo:
          $ref: '#/components/schemas/WalletInfo'
    slippageTolerance:
      description: 'The slippage tolerance 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://api-docs.uniswap.org/guides/faqs#why-do-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.'
      type: number
      pattern: ^[0-9]{0,3}\.?[0-9]{0,2}$
    ClassicInput:
      type: object
      properties:
        token:
          $ref: '#/components/schemas/inputToken'
        amount:
          $ref: '#/components/schemas/tokenAmount'
    DutchOrderInfoV2:
      type: object
      properties:
        chainId:
          $ref: '#/components/schemas/ChainId'
        nonce:
          $ref: '#/components/schemas/nonce'
        reactor:
          $ref: '#/components/schemas/contractAddress'
        swapper:
          $ref: '#/components/schemas/receiverWalletAddress'
        deadline:
          $ref: '#/components/schemas/deadline'
        additionalValidationContract:
          $ref: '#/components/schemas/additionalValidationContract'
        additionalValidationData:
          $ref: '#/components/schemas/additionalValidationData'
        input:
          $ref: '#/components/schemas/DutchInput'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/DutchOutput'
        cosigner:
          $ref: '#/components/schemas/cosignerAddress'
      required:
      - chainId
      - nonce
      - reactor
      - swapper
      - deadline
      - validationContract
      - validationData
      - startTime
      - endTime
      - exclusiveFiller
      - exclusivityOverrideBps
      - input
      - outputs
    deadline:
      type: number
      description: The unix timestamp at which the order will be reverted if not filled.
    inputToken:
      type: string
      description: The token which will be sent, specified by its token address. For a list of supported tokens, see the [FAQ](https://api-docs.uniswap.org/guides/faqs).
      pattern: ^(0x)?[0-9a-fA-F]{40}$
    gasPrice:
      type: string
      description: The cost per unit of gas.
    tickSpacing:
      type: number
      description: The width of ticks in this pool (e.g. the price range between two ticks) specified in basis points. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf).
    maxFeePerGas:
      type: string
      description: 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.
    TokenInRoute:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/inputToken'
        chainId:
          $ref: '#/components/schemas/ChainId'
        symbol:
          $ref: '#/components/schemas/tokenSymbol'
        decimals:
          type: string
          description: The number of decimals supported by the token. This number is used to convert token amounts to the token's common representation.
        buyFeeBps:
          $ref: '#/components/schemas/bpsFee'
        sellFeeBps:
          $ref: '#/components/schemas/bpsFee'
    V3PoolInRoute:
      title: V3 Route
      type: object
      properties:
        type:
          type: string
          default: v3-pool
        address:
          $ref: '#/components/schemas/contractAddress'
        tokenIn:
          $ref: '#/components/schemas/TokenInRoute'
        tokenOut:
          $ref: '#/components/schemas/TokenInRoute'
        sqrtRatioX96:
          $ref: '#/components/schemas/sqrtRatioX96'
        liquidity:
          $ref: '#/components/schemas/liquidity'
        tickCurrent:
          $ref: '#/components/schemas/tickCurrent'
        fee:
          $ref: '#/components/schemas/poolFee'
        amountIn:
          $ref: '#/components/schemas/tokenAmount'
        amountOut:
          $ref: '#/components/schemas/tokenAmount'
    Err504:
      type: object
      properties:
        errorCode:
          default: Timeout
          type: string
        detail:
          type: string
    Protocols:
      type: array
      items:
        $ref: '#/components/schemas/ProtocolItems'
      description: 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.
    DutchOrderInfo:
      type: object
      properties:
        chainId:
          $ref: '#/components/schemas/ChainId'
        nonce:
          $ref: '#/components/schemas/nonce'
        reactor:
          $ref: '#/components/schemas/contractAddress'
        swapper:
          $ref: '#/components/schemas/receiverWalletAddress'
        deadline:
          $ref: '#/components/schemas/deadline'
        additionalValidationContract:
          $ref: '#/components/schemas/additionalValidationContract'
        additionalValidationData:
          $ref: '#/components/schemas/additionalValidationData'
        decayStartTime:
          type: number
          description: 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:
          type: number
          description: The unix timestamp at which the order will no longer be eligible to be filled by alternate fillers.
        exclusiveFiller:
          type: string
          description: The address of the filler who has priority to fill the order by the `decayStartTime`.
        exclusivityOverrideBps:
          type: string
          description: The portion of the order which is eligible to be filled by the `exclusiveFiller`, specified in basis points.
        input:
          $ref: '#/components/schemas/DutchInput'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/DutchOutput'
      required:
      - chainId
      - nonce
      - reactor
      - swapper
      - deadline
      - validationContract
      - validationData
      - startTime
      - endTime
      - exclusiveFiller
      - exclusivityOverrideBps
      - input
      - outputs
    PriorityOrderInfo:
      type: object
      properties:
        chainId:
          $ref: '#/components/schemas/ChainId'
        nonce:
          $ref: '#/components/schemas/nonce'
        reactor:
          $ref: '#/components/schemas/contractAddress'
        swapper:
          $ref: '#/components/schemas/receiverWalletAddress'
        deadline:
          $ref: '#/components/schemas/deadline'
        additionalValidationContract:
          $ref: '#/components/schemas/additionalValidationContract'
        additionalValidationData:
          $ref: '#/components/schemas/additionalValidationData'
        auctionStartBlock:
          type: string
        baselinePriorityFeeWei:
          type: string
        input:
          $ref: '#/components/schemas/PriorityInput'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/PriorityOutput'
        cosigner:
          $ref: '#/components/schemas/cosignerAddress'
      required:
      - chainId
      - nonce
      - reactor
      - swapper
      - deadline
      - validationContract
      - validationData
      - auctionStartBlock
      - baselinePriorityFeeWei
      - input
      - outputs
      - cosigner
    SponsorshipInfo:
      type: object
      description: Gas sponsorship information for the quoted swap. When `sponsored` is `true`, gas fees for executing this swap will be covered by the `sponsor`. When `sponsored` is `false`, `rejectionReason` describes why sponsorship was not granted.
      properties:
        sponsored:
          type: boolean
          description: Whether gas for this swap is sponsored.
        rejectionReason:
          type: string
          description: Reason gas sponsorship was not granted. Present only when `sponsored` is `false`.
        sponsor:
          $ref: '#/components/schemas/SponsorSummary'
    DutchOutputV3:
      type: object
      properties:
        startAmount:
          $ref: '#/components/schemas/startAmount'
        minAmount:
          $ref: '#/components/schemas/minAmount'
        recipient:
          $ref: '#/components/schemas/receiverWalletAddress'
        adjustmentPerGweiBaseFee:
          type: string
        curve:
          $ref: '#/components/schemas/Curve'
        token:
          $ref: '#/components/schemas/outputToken'
      required:
      - startAmount
      - maxAmount
      - adjustmentPerGweiBaseFee
      - curve
      - token
      - recipient
    ProtocolItems:
      type: string
      enum:
      - V2
      - V3
      - V4
      - UNISWAPX
      - UNISWAPX_V2
      - UNISWAPX_V3
      description: The protocol to use for the swap/order.
    ChainedQuote:
      title: Chained Quote
      type: object
      description: A quote for a chained transaction flow that spans multiple steps, potentially across multiple chains.
      properties:
        swapper:
          $ref: '#/components/schemas/senderWalletAddress'
        input:
          $ref: '#/components/schemas/ClassicInput'
        output:
          $ref: '#/components/schemas/ClassicOutput'
        tokenInChainId:
          $ref: '#/components/schemas/ChainId'
        tokenOutChainId:
          $ref: '#/components/schemas/ChainId'
        tradeType:
          $ref: '#/components/schemas/TradeType'
        quoteId:
          $ref: '#/components/schemas/quoteId'
        gasEstimates:
          type: array
          description: Gas estimates for each step in the chained flow.
          items:
            type: object
            description: Gas estimation details for a specific step.
        timeEstimateMs:
          type: number
          description: Estimated time in milliseconds to complete the entire chained flow.
        gasUseEstimate:
          $ref: '#/components/schemas/gasLimit'
        gasFeeUSD:
          $ref: '#/components/schemas/gasFeeUSD'
        gasFeeQuote:
          $ref: '#/components/schemas/gasFeeInCurrency'
        gasPrice:
          $ref: '#/components/schemas/gasPrice'
        maxFeePerGas:
          $ref: '#/components/schemas/maxFeePerGas'
        maxPriorityFeePerGas:
          $ref: '#/components/schemas/maxPriorityFeePerGas'
        gasFee:
          $ref: '#/components/schemas/gasFee'
        protocols:
          $ref: '#/components/schemas/Protocols'
        hooksOptions:
          $ref: '#/components/schemas/HooksOptions'
        gasStrategies:
          type: array
          description: Gas strategies for the chained flow.
          items:
            $ref: '#/components/schemas/GasStrategy'
        steps:
          type: array
          description: Truncated plan steps for the chained transaction flow.
          items:
            $ref: '#/components/schemas/TruncatedPlanStep'
        slippageTolerance:
          $ref: '#/components/schemas/slippageTolerance'
        autoSlippage:
          $ref: '#/components/schemas/AutoSlippage'
      required:
      - swapper
      - input
      - output
      - tokenInChainId
      - tokenOutChainId
      - tradeType
      - quoteId
      - gasStrategies
    portionAmount:
      type: string
      description: 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.
    generatePermitAsTransaction:
      type: boolean
      default: false
      description: Indicates whether you want to receive a permit2 transaction to sign and submit onchain, or a permit message to sign. When set to `true`, the quote response returns the Permit2 as a calldata which the user signs and broadcasts. When set to `false` (the default), the quote response returns the Permit2 as a message which the user signs but does not need to broadcast. When using a 7702-delegated wallet, set this field to `true`. Except for this scenario, it is recommended that this field is set to false. Note that a Permit2 calldata (e.g. `true`), will provide indefinite permission for Permit2 to spend a token, in contrast to a Permit2 message (e.g. `false`) which is only valid for 30 days. Further, a Permit2 calldata (e.g. `true`) requires the user to pay gas to submit the transaction, whereas the Permit2 message (e.g. `false` ) does not require the user to submit a transaction and requires no gas.
    PlanStepType:
      type: string
      enum:
      - DUTCH_LIMIT
      - CLASSIC
      - DUTCH_V2
      - LIMIT_ORDER
      - WRAP
      - UNWRAP
      - BRIDGE
      - PRIORITY
      - DUTCH_V3
      - QUICKROUTE
      - CHAINED
      - APPROVAL_TXN
      - APPROVAL_PERMIT
      - RESET_APPROVAL_TXN
      description: The type of step in a plan, including swap types and approval types.
    DutchInputV3:
      type: object
      properties:
        startAmount:
          $ref: '#/components/schemas/startAmount'
        maxAmount:
          type: string
        adjustmentPerGweiBaseFee:
          type: string
        curve:
          $ref: '#/components/schemas/Curve'
        token:
          $ref: '#/components/schemas/inputToken'
      required:
      - startAmount
      - maxAmount
      - adjustmentPerGweiBaseFee
      - curve
      - token
    RoutingPreference:
      type: string
      description: 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.
      enum:
      - BEST_PRICE
      - FASTEST
      default: BEST_PRICE
    gasLimit:
      type: string
      description: The maximum units of gas that will be consumed by this transaction.
    startAmount:
      type: string
      description: The intended execution quantity of tokens resulting from this swap.
    V4PoolInRoute:
      title: V4 Route
      type: object
      properties:
        type:
          type: string
          default: v4-pool
        address:
          $ref: '#/components/schemas/contractAddress'
        tokenIn:
          $ref: '#/components/schemas/TokenInRoute'
        tokenOut:
          $ref: '#/components/schemas/TokenInRoute'
        sqrtRatioX96:
          $ref: '#/components/schemas/sqrtRatioX96'
        liquidity:
          $ref: '#/components/schemas/liquidity'
        tickCurrent:
          $ref: '#/components/schemas/tickCurrent'
        fee:
          $ref: '#/components/schemas/poolFee'
        tickSpacing:
          $ref: '#/components/schemas/tickSpacing'
        hooks:
          type: string
          description: The address of the hook for the pool, if any. If the pool has no hook, this field will be the null address (e.g. 0x0000000000000000000000000000000000000000).
        amountIn:
          $ref: '#/components/schemas/tokenAmount'
        amountOut:
          $ref: '#/components/schemas/tokenAmount'
      required:
      - type
      - address
      - tokenIn
      - tokenOut
      - sqrtRatioX96
      - liquidity
      - tickCurrent
      - fee
      - tickSpacing
      - hooks
    Err400:
      type: object
      properties:
        errorCode:
          default: RequestValidationError
          type: string
        detail:
          type: string
    IntegratorFee:
      type: object
      description: A fee configuration specifying the fee amount in basis points and the recipient address.
      properties:
        bips:
          type: number
          description: Fee amount in basis points (1 bip = 0.01%). Must be greater than 0 and at most 500.
          maximum: 500
          exclusiveMinimum: 0
        recipient:
          type: string
          description: Ethereum address that receives the fee.
          pattern: ^0x[a-fA-F0-9]{40}$
      required:
      - bips
      - recipient
    V2PoolInRoute:
      title: V2 Route
      type: object
      properties:
        type:
          type: string
          default: v2-pool
        address:
          $ref: '#/components/schemas/contractAddress'
        tokenIn:
          $ref: '#/components/schemas/TokenInRoute'
        tokenOut:
          $ref: '#/components/schemas/TokenInRoute'
        reserve0:
          $ref: '#/components/schemas/V2Reserve'
        reserve1:
          $ref: '#/components/schemas/V2Reserve'
        amountIn:
          $ref: '#/components/schemas/tokenAmount'
        amountOut:
          $ref: '#/components/schemas/tokenAmount'
    DutchQuoteV3:
      title: UniswapX V3 Quote
      type: object
      properties:
        encodedOrder:
          $ref: '#/components/schemas/encodedOrder'
        orderId:
          $ref: '#/components/schemas/orderId'
        orderInfo:
          $ref: '#/components/schemas/DutchOrderInfoV3'
        portionBips:
          $ref: '#/components/schemas/portionBips'
        portionAmount:
          $ref: '#/components/schemas/portionAmount'
        portionRecipient:
          $ref: '#/components/schemas/portionAmountReceiverAddress'
        quoteId:
          $ref: '#/components/schemas/quoteId'
        slippageTolerance:
          $ref: '#/components/schemas/slippageTolerance'
        deadlineBufferSecs:
          type: number
        classicGasUseEstimateUSD:
          $ref: '#/components/schemas/ClassicGasUseEstimateUSD'
        expectedAmountIn:
          type: string
        expectedAmountOut:
          type: string
        aggregatedOutputs:
          type: array
          items:
            $ref: '#/components/schemas/AggregatedOutput'
      required:
      - encodedOrder
      - orderInfo
      - orderId
    maxPriorityFeePerGas:
      type: string
      description: The maximum tip to the block builder. Adjusted based upon the urgency specified in the request.
    WalletInfo:
      type: object
      description: Information about the wallet.
      properties:
        uuid:
          type: string
          description: Unique identifier for the wallet.
        name:
          type: string
          description: Name of the wallet.
        rdns:
          type: string
          description: Reverse domain name identifier for the wallet.
    DutchQuoteV2:
      title: UniswapX V2 Quote
      type: object
      properties:
        encodedOrder:
          $ref: '#/components/schemas/encodedOrder'
        orderId:
          $ref: '#/components/schemas/orderId'
        orderInfo:
          $ref: '#/components/schemas/DutchOrderInfoV2'
        portionBips:
          $ref: '#/components/schemas/portionBips'
        portionAmount:
          $ref: '#/components/schemas/portionAmount'
        portionRecipient:
          $ref: '#/components/schemas/portionAmountReceiverAddress'
        quoteId:
          $ref: '#/components/schemas/quoteId'
        slippageTolerance:
          $ref: '#/components/schemas/slippageTolerance'
        deadlineBufferSecs:
          type: number
        classicGasUseEstimateUSD:
          $ref: '#/components/schemas/ClassicGasUseEstimateUSD'
        aggregatedOutputs:
          type: array
          items:
            $ref: '#/components/schemas/AggregatedOutput'
      required:
      - encodedOrder
      - orderInfo
      - orderId
    ClassicOutput:
      type: object
      properties:
        token:
          $ref: '#/components/schemas/outputToken'
        amount:
          $ref: '#/components/schemas/tokenAmount'
        recipient:
          $ref: '#/components/schemas/receiverWalletAddress'
    sqrtRatioX96:
      type: string
      description: The square root of the ratio of the token0 and token1 in the pool, as a Q64.64 number. For more information see the [Uniswap V3 Whitepaper](https://app.uniswap.org/whitepaper-v3.pdf).
    V2Reserve:
      description: The remaining reserve of this token in the pool.
      type: object
      properties:
        token:
          $ref: '#/components/schemas/TokenInRoute'
        quotient:
          description: The quantity of this token remaining in the pool, specified in the base units of the token.
          type: string
    portionAmountReceiverAddress:
      type: string
      description: The wallet address which will receive the fee.
    contractAddress:
      type: string
      description: The address of a contract which will be used to facilitate the swap.
      pattern: ^(0x)?[0-9a-fA-F]{40}$
    ClassicQuote:
      title: Classic Quote
      type: object
      properties:
        input:
          $ref: '#/components/schemas/ClassicInput'
        output:
          $ref: '#/components/schemas/ClassicOutput'
        swapper:
          $ref: '#/components/schemas/senderWalletAddress'
        chainId:
          $ref: '#/components/schemas/ChainId'
        slippage:
          $ref: '#/components/schemas/slippageTolerance'
        tradeType:
          $ref: '#/components/schemas/TradeType'
        gasFee:
          $ref: '#/components/schemas/gasFee'
        gasFeeUSD:
          $ref: '#/components/schemas/gasFeeUSD'
        gasFeeQuote:
          $ref: '#/components/schemas/gasFeeInCurrency'
        route:
          type: array
          items:
            type: array
            items:
              oneOf:
              - $ref: '#/components/schemas/V2PoolInRoute'
              - $ref: '#/components/schemas/V3PoolInRoute'
              - $ref: '#/components/schemas/V4PoolInRoute'
        portionBips:
          $ref: '#/components/schemas/portionBips'
        portionAmount:
          $ref: '#/components/schemas/portionAmount'
        portionRecipient:
          $ref: '#/components/schemas/portionAmountReceiverAddress'
        routeString:
          type: string
          description: The route in string format.
        quoteId:
          $ref: '#/components/schemas/quoteId'
        gasUseEstimate:
          type: string
          description: The estimated gas use. It does NOT include the additional gas for token approvals.
        blockNumber:
          type: string
          description: The current block number.
        gasPrice:
          $ref: '#/components/schemas/gasPrice'
        maxFeePerGas:
          $ref: '#/components/schemas/maxFeePerGas'
        maxPriorityFeePerGas:
          $ref: '#/components/schemas/maxPriorityFeePerGas'
        txFailureReasons:
          description: The reason(s) why the transaction failed during simulation.
          type: array
          items:
            $ref: '#/components/schemas/TransactionFailureReason'
        priceImpact:
          type: number
          description: The impact the trade has on the market price of the pool, between 0-100 percent
        aggregatedOutputs:
          type: array
          items:
            $ref: '#/components/schemas/AggregatedOutput'
    NullablePermit:
      description: the permit2 message object for the customer to sign to permit spending by the permit2 contract.
      type:
      - object
      - 'null'
      properties:
        domain:
          type: object
        values:
          type: object
        types:
          type: object
    Err429:
      type: object
      properties:
        errorCode:
          default: Ratelimited
          type: string
        detail:
          type: string
    senderWalletAddress:
      type: string
      description: The wallet address which will be used to send the token.
      pattern: ^(0x)?[0-9a-fA-F]{40}$
    AutoSlippage:
      type: string
      enum:
      - DEFAULT
      description: '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.'
    endAmount:
      type: string
      description: The worst case quantity of tokens resulting from this swap.
    AggregatedOutput:
      description: An array of all outputs of the proposed transaction. This includes the swap as well as any fees collected by the API integrator. This does not include pool fees when routing is through a Uniswap Protocol pool.
      type: object
      properties:
        token:
          $ref: '#/components/schemas/outputToken'
        amount:
          $ref: '#/components/schemas/tokenAmount'
        recipient:
          $ref: '#/components/schemas/receiverWalletAddress'
        bps:
          $ref: '#/components/schemas/bps'
        minAmount:
          $ref: '#/components/schemas/minAmount'
    tokenSymbol:
      type: string
      description: The

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uniswap/refs/heads/main/openapi/uniswap-quote-api-openapi.yml