LLMs.txt: agent-readable Markdown index of this site at /llms.txt
POSTCreate a gasless order

Create a gasless 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, LIMIT_ORDER, or PRIORITY 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.

Native ETH on UniswapX: If the quote you are submitting uses native ETH as the input token (e.g. tokenIn is 0x0000000000000000000000000000000000000000), include x-erc20eth-enabled: true. Native ETH input on UniswapX requires wallet support for EIP-7914 and sufficient native allowance. For 7702-delegated smart contract wallets, you can generate the required approval call(s) via /swap_7702 when needed.

npx skills add uniswap/uniswap-ai --skill swap-integration

Full swap flow integration for apps. Works with Claude Code, Cursor, and other AI coding tools.

Get a UniswapX QuoteThis endpoint requires a signed UniswapX order. A Dutch auction quote will be fetched, but you'll need to sign the order with your wallet to submit it.

Authorization

x-api-keystringrequiredheader
Playground key
You're using a shared playground keyCreate a free account and get your own API keys from the dashboard.
Get your keys

Headers

x-erc20eth-enabledbooleandefault:false

Enable native ETH input support for UniswapX via ERC20-ETH (EIP-7914). When set to true and tokenIn is the native currency address (e.g. 0x0000000000000000000000000000000000000000), the API may return UniswapX routes that spend native ETH for supported wallets.

x-agent-infostring

Optional attribution hint for AI-agent traffic; send it if an AI agent built or operates your integration. The value is a JSON object with up to three fields: decision_origin (required, exactly autonomous or human_mediated, case-sensitive), integration_name (optional string naming your integration, e.g. my-trading-bot), and version (optional string identifying your integration's version). Any other key is dropped, never rejected. The raw value must be at most 1024 bytes of printable US-ASCII (0x20-0x7E), so send non-ASCII text as JSON \u escapes; integration_name and version are each limited to 256 UTF-16 code units and may not contain control characters, U+2028, U+2029, or U+FFFD. Send the header once: repeated header lines are joined with , and the joined string is what gets parsed, so two complete objects fail as invalid JSON while a single object split across two lines still parses. The header is analytics-only and never affects the request: omitting it, sending it, or sending a value that fails these rules never changes the response status, body, or swap behavior. A value that fails to parse is dropped and reported by the x-agent-info-status response header. Never put a user ID, wallet address, email, session token, or API key in these fields.

Body

application/json
signaturestringrequired

The signed permit.

routingenumrequired
CLASSICDUTCH_LIMITDUTCH_V2DUTCH_V3BRIDGELIMIT_ORDERPRIORITYWRAPUNWRAPCHAINED

The routing for the proposed transaction.

Response

Encoded order submitted.

requestIdstringrequired

A unique ID for the request.

orderIdstringrequired

A unique ID for the order. Used to track the order's status.

orderStatusenumrequired

The status of the order. Note that all of these are final states with the exception of Open, meaning that no further state changes will occur.
Open - order is not yet filled by a filler.

Expired - order has expired without being filled and is no longer fillable.

Error - a catchall for other final states which are not otherwise specified, where the order will not be filled.

Cancelled - order is cancelled. Note that to cancel an order, a new order must be placed with the same nonce as the prior open order and it must be placed within the same block as the original order.

Filled - order is filled.

Insufficient-funds - the swapper (you) do not have enough funds for the order to be completed and the order is cancelled and will not be filled.

Unverified - order has not been verified yet.