---
title: "Create a gasless order"
method: POST
path: "/order"
tags: ["Order"]
---

# Create a gasless order

`POST /order`

The order endpoint is used to submit a UniswapX intent. If the `routing` field in the response to a quote is any of `DUTCH_V2`, `DUTCH_V3`, or `PRIORITYQUOTE` this endpoint is used to submit your order to the UniswapX protocol to be filled by the filler network. These orders are gasless because the filler will pay the gas to complete the transaction.

The order will be validated and, if valid, will be submitted to the filler network. The network will try to fill the order at the quoted `startAmount`. If the order is not filled at the `startAmount` by the `deadline`, the amount will start decaying until the `endAmount` is reached. The order will remain `open` until it is either filled, canceled, or has expired by remaining unfilled beyond the `decayEndTime`.

For simplicity, the order request is identical to the quote response except for the addition of the signed permit.

## Request body

- OrderRequest
  - `signature` string, required — The signed permit.
  - `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.
    - 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.
    - 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' — The routing for the proposed transaction.

## Response `201`

Encoded order submitted.

- OrderResponse
  - `requestId` string, required — A unique ID for the request.
  - `orderId` string, required — A unique ID for the order. Used to track the order's status.
  - `orderStatus` 'open' | 'expired' | 'error' | 'cancelled' | 'filled' | 'unverified' | 'insufficient-funds', required

## Other responses

- `400` — RequestValidationError, Bad Input
- `401` — UnauthorizedError eg. Account is blocked.
- `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)
