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: 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