{ "openapi": "3.0.0", "servers": [ { "description": "UniswapX APIs", "url": "https://api.uniswap.org/v2" } ], "info": { "version": "2.0.0", "title": "UniswapX", "description": "REST API for retrieving signed UniswapX orders. Dutch (V1/V2/V3), Priority, Hybrid, and Relay orders are served by /orders; limit orders are served by /limit-orders. Order submission is handled by the Uniswap Trading API and is not part of this specification." }, "paths": { "/orders": { "get": { "tags": ["Orders"], "summary": "Retrieve UniswapX orders", "description": "Retrieve orders filtered by query parameter(s). At least one of `orderHash`, `orderHashes`, `chainId`, `orderStatus`, `swapper`, `filler`, or `pair` must be provided. Not supported in combination: `swapper` with `chainId`; `orderHashes` with `sortKey`. `sortKey` is required whenever `sort` or `desc` is provided. The shape of each entry in `orders` depends on the order's type; filter with `orderType` to receive a single shape.", "parameters": [ { "$ref": "#/components/parameters/limitParam" }, { "$ref": "#/components/parameters/orderStatusParam" }, { "$ref": "#/components/parameters/orderHashParam" }, { "$ref": "#/components/parameters/orderHashesParam" }, { "$ref": "#/components/parameters/swapperParam" }, { "$ref": "#/components/parameters/fillerParam" }, { "$ref": "#/components/parameters/executeAddressParam" }, { "$ref": "#/components/parameters/orderTypeParam" }, { "$ref": "#/components/parameters/pairParam" }, { "$ref": "#/components/parameters/sortKeyParam" }, { "$ref": "#/components/parameters/sortParam" }, { "$ref": "#/components/parameters/descParam" }, { "$ref": "#/components/parameters/cursorParam" }, { "$ref": "#/components/parameters/chainIdParam" } ], "responses": { "200": { "description": "Request Successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOrdersResponse" } } } }, "400": { "description": "Invalid query parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "VALIDATION_ERROR", "detail": "\"value\" must contain at least one of [orderHash, orderHashes, chainId, orderStatus, swapper, filler, pair]" } } } }, "429": { "description": "Rate limited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "TOO_MANY_REQUESTS" } } } }, "500": { "description": "Internal error.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "INTERNAL_ERROR", "detail": "Unexpected error" } } } } } } }, "/limit-orders": { "get": { "tags": ["Limit Orders"], "summary": "Retrieve UniswapX limit orders", "description": "Retrieve limit orders filtered by query parameter(s). Query semantics are identical to /orders. Limit orders are returned with the Dutch order shape without decay (input and output startAmount equals endAmount).", "parameters": [ { "$ref": "#/components/parameters/limitParam" }, { "$ref": "#/components/parameters/orderStatusParam" }, { "$ref": "#/components/parameters/orderHashParam" }, { "$ref": "#/components/parameters/orderHashesParam" }, { "$ref": "#/components/parameters/swapperParam" }, { "$ref": "#/components/parameters/fillerParam" }, { "$ref": "#/components/parameters/executeAddressParam" }, { "$ref": "#/components/parameters/orderTypeParam" }, { "$ref": "#/components/parameters/pairParam" }, { "$ref": "#/components/parameters/sortKeyParam" }, { "$ref": "#/components/parameters/sortParam" }, { "$ref": "#/components/parameters/descParam" }, { "$ref": "#/components/parameters/cursorParam" }, { "$ref": "#/components/parameters/chainIdParam" } ], "responses": { "200": { "description": "Request Successful", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOrdersResponse" } } } }, "400": { "description": "Invalid query parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "VALIDATION_ERROR", "detail": "\"value\" must contain at least one of [orderHash, orderHashes, chainId, orderStatus, swapper, filler, pair]" } } } }, "429": { "description": "Rate limited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "TOO_MANY_REQUESTS" } } } }, "500": { "description": "Internal error.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errorCode": "INTERNAL_ERROR", "detail": "Unexpected error" } } } } } } } }, "components": { "parameters": { "chainIdParam": { "name": "chainId", "in": "query", "description": "Filter by chain id. Cannot be combined with swapper.", "required": false, "schema": { "$ref": "#/components/schemas/ChainId" } }, "limitParam": { "name": "limit", "in": "query", "description": "Maximum number of orders to return.", "required": false, "schema": { "type": "number" } }, "orderStatusParam": { "name": "orderStatus", "in": "query", "description": "Filter by order status. A comma-separated list of statuses is also accepted.", "required": false, "schema": { "$ref": "#/components/schemas/OrderStatus" } }, "orderHashParam": { "name": "orderHash", "in": "query", "description": "Filter by order hash.", "required": false, "schema": { "$ref": "#/components/schemas/OrderHash" } }, "orderHashesParam": { "name": "orderHashes", "in": "query", "description": "Filter by comma-separated order hashes (maximum 50). Cannot be combined with sortKey.", "required": false, "schema": { "type": "string", "pattern": "^(?=([^,]*,){0,49}[^,]*$)0x[0-9a-zA-Z]{64}(,0x[0-9a-zA-Z]{64})*$", "example": "orderHash,orderHash,orderHash" } }, "swapperParam": { "name": "swapper", "in": "query", "description": "Filter by swapper address. Cannot be combined with chainId.", "required": false, "schema": { "type": "string", "pattern": "^(0x)?[0-9a-fA-F]{40}$", "example": "0x50EC05ADe8280758E2077fcBC08D878D4aef79C3" } }, "fillerParam": { "name": "filler", "in": "query", "description": "Filter by filler address.", "required": false, "schema": { "type": "string", "pattern": "^(0x)?[0-9a-fA-F]{40}$", "example": "0x50EC05ADe8280758E2077fcBC08D878D4aef79C3" } }, "executeAddressParam": { "name": "executeAddress", "in": "query", "description": "Filter by execution address.", "required": false, "schema": { "type": "string", "pattern": "^(0x)?[0-9a-fA-F]{40}$", "example": "0x50EC05ADe8280758E2077fcBC08D878D4aef79C3" } }, "orderTypeParam": { "name": "orderType", "in": "query", "description": "Filter by order type. Determines the entity shape of the returned orders.", "required": false, "schema": { "$ref": "#/components/schemas/OrderTypeQuery" } }, "pairParam": { "name": "pair", "in": "query", "description": "Filter by token pair, formatted as `--`.", "required": false, "schema": { "type": "string" } }, "sortKeyParam": { "name": "sortKey", "in": "query", "description": "Order the query results by the sort key. Required when sort or desc is provided.", "required": false, "schema": { "$ref": "#/components/schemas/SortKey" } }, "sortParam": { "name": "sort", "in": "query", "description": "Sort query. For example: `sort=gt(UNIX_TIMESTAMP)`, `sort=between(1675872827, 1675872930)`, or `lt(1675872930)`.", "required": false, "schema": { "type": "string" } }, "descParam": { "name": "desc", "in": "query", "description": "Boolean to sort query results by descending sort key.", "required": false, "schema": { "type": "boolean" } }, "cursorParam": { "name": "cursor", "in": "query", "description": "Cursor param to page through results. This will be returned in the previous query if the results have been paginated.", "required": false, "schema": { "type": "string" } } }, "schemas": { "ChainId": { "type": "number", "description": "Chains supported by UniswapX.", "enum": [1, 10, 56, 130, 137, 143, 196, 480, 1301, 1868, 4217, 4663, 5042, 8453, 42161, 42220, 43114, 81457, 7777777, 11155111], "example": 1 }, "OrderStatus": { "type": "string", "enum": ["open", "expired", "error", "cancelled", "filled", "insufficient-funds"] }, "OrderTypeQuery": { "type": "string", "description": "Order type accepted by the orderType query parameter. Dutch_V1_V2 returns both Dutch V1 and Dutch V2 orders.", "enum": ["Dutch", "Dutch_V2", "Dutch_V3", "Limit", "Relay", "Dutch_V1_V2", "Priority", "Hybrid"] }, "SortKey": { "type": "string", "enum": ["createdAt"] }, "OrderHash": { "type": "string", "pattern": "^0x[0-9a-fA-F]{64}$" }, "TxHash": { "type": "string", "description": "Transaction hash of the fill. Defined once the order has been filled.", "pattern": "^0x[0-9a-fA-F]{64}$" }, "Address": { "type": "string", "description": "EIP-55 checksummed Ethereum address.", "example": "0x50EC05ADe8280758E2077fcBC08D878D4aef79C3" }, "Amount": { "type": "string", "description": "uint256 encoded as a base-10 string.", "pattern": "^[0-9]{1,78}$" }, "CreatedAt": { "type": "number", "description": "Unix timestamp (seconds) at which the order was recorded." }, "QuoteId": { "type": "string", "format": "uuid", "description": "Defined when the order has a quote associated with it." }, "RequestId": { "type": "string", "format": "uuid", "description": "Defined when the order has a quote request associated with it." }, "Nonce": { "type": "string", "description": "Permit2 nonce, uint256 encoded as a base-10 string.", "pattern": "^[0-9]{1,78}$" }, "EncodedOrder": { "type": "string", "description": "ABI-encoded order struct. Decode with the uniswapx-sdk parser for the order's type.", "pattern": "^0x[0-9a-fA-F]*$" }, "Signature": { "type": "string", "description": "EIP-712 signature over the order.", "pattern": "^0x[0-9a-fA-F]{130}$" }, "SettledAmount": { "type": "object", "description": "Defined when the order has been filled and the fill amounts have been recorded.", "properties": { "tokenOut": { "type": "string", "pattern": "^(0x)?[0-9a-fA-F]{40}$" }, "amountOut": { "$ref": "#/components/schemas/Amount" }, "tokenIn": { "type": "string", "pattern": "^(0x)?[0-9a-fA-F]{40}$" }, "amountIn": { "$ref": "#/components/schemas/Amount" } } }, "Route": { "type": "object", "description": "Classic-route quote metadata associated with the order's quote.", "properties": { "quote": { "$ref": "#/components/schemas/Amount" }, "quoteGasAdjusted": { "$ref": "#/components/schemas/Amount" }, "gasPriceWei": { "$ref": "#/components/schemas/Amount" }, "gasUseEstimateQuote": { "$ref": "#/components/schemas/Amount" }, "gasUseEstimate": { "$ref": "#/components/schemas/Amount" }, "methodParameters": { "type": "object", "properties": { "calldata": { "type": "string" }, "value": { "type": "string" }, "to": { "$ref": "#/components/schemas/Address" } } } } }, "NonlinearDutchDecayCurve": { "type": "object", "description": "Piecewise decay curve relative to the decay start block.", "properties": { "relativeBlocks": { "type": "array", "items": { "type": "number" } }, "relativeAmounts": { "type": "array", "items": { "type": "string", "description": "int256 encoded as a base-10 string.", "pattern": "^-?[0-9]{1,78}$" } } } }, "OrderInput": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "endAmount": { "$ref": "#/components/schemas/Amount" } }, "required": ["token"] }, "OrderOutput": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "endAmount": { "$ref": "#/components/schemas/Amount" }, "recipient": { "$ref": "#/components/schemas/Address" } }, "required": ["token", "startAmount", "endAmount", "recipient"] }, "DutchOrderEntity": { "type": "object", "description": "Dutch V1 and Limit orders. Legacy DutchLimit entries share this shape.", "properties": { "type": { "type": "string", "enum": ["Dutch", "DutchLimit", "Limit"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "nonce": { "$ref": "#/components/schemas/Nonce" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "input": { "$ref": "#/components/schemas/OrderInput" }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/OrderOutput" } }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "quoteId": { "$ref": "#/components/schemas/QuoteId" }, "requestId": { "$ref": "#/components/schemas/RequestId" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } } } }, "DutchV2OrderEntity": { "type": "object", "description": "Dutch V2 orders: cosigned Dutch auctions with time-based decay.", "properties": { "type": { "type": "string", "enum": ["Dutch_V2"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "nonce": { "$ref": "#/components/schemas/Nonce" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "input": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "endAmount": { "$ref": "#/components/schemas/Amount" } }, "required": ["token", "startAmount", "endAmount"] }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/OrderOutput" } }, "cosignerData": { "type": "object", "properties": { "decayStartTime": { "type": "number" }, "decayEndTime": { "type": "number" }, "exclusiveFiller": { "$ref": "#/components/schemas/Address" }, "inputOverride": { "$ref": "#/components/schemas/Amount" }, "outputOverrides": { "type": "array", "items": { "$ref": "#/components/schemas/Amount" } } } }, "cosignature": { "type": "string" }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "quoteId": { "$ref": "#/components/schemas/QuoteId" }, "requestId": { "$ref": "#/components/schemas/RequestId" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } }, "route": { "$ref": "#/components/schemas/Route" } }, "required": ["type", "encodedOrder", "signature", "orderHash", "orderStatus", "chainId", "swapper"] }, "DutchV3OrderEntity": { "type": "object", "description": "Dutch V3 orders: cosigned Dutch auctions with block-based nonlinear decay, used on fast chains.", "properties": { "type": { "type": "string", "enum": ["Dutch_V3"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "nonce": { "$ref": "#/components/schemas/Nonce" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "startingBaseFee": { "$ref": "#/components/schemas/Amount" }, "input": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "curve": { "$ref": "#/components/schemas/NonlinearDutchDecayCurve" }, "maxAmount": { "$ref": "#/components/schemas/Amount" }, "adjustmentPerGweiBaseFee": { "$ref": "#/components/schemas/Amount" } }, "required": ["token", "startAmount"] }, "outputs": { "type": "array", "items": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "curve": { "$ref": "#/components/schemas/NonlinearDutchDecayCurve" }, "recipient": { "$ref": "#/components/schemas/Address" }, "minAmount": { "$ref": "#/components/schemas/Amount" }, "adjustmentPerGweiBaseFee": { "$ref": "#/components/schemas/Amount" } }, "required": ["token", "startAmount", "recipient"] } }, "cosignerData": { "type": "object", "properties": { "decayStartBlock": { "type": "number" }, "exclusiveFiller": { "$ref": "#/components/schemas/Address" }, "inputOverride": { "$ref": "#/components/schemas/Amount" }, "outputOverrides": { "type": "array", "items": { "$ref": "#/components/schemas/Amount" } } } }, "cosignature": { "type": "string" }, "fillBlock": { "type": "number", "description": "Block in which the order was filled. Defined once the fill has been recorded." }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "quoteId": { "$ref": "#/components/schemas/QuoteId" }, "requestId": { "$ref": "#/components/schemas/RequestId" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } }, "route": { "$ref": "#/components/schemas/Route" } }, "required": ["type", "encodedOrder", "signature", "orderHash", "orderStatus", "chainId", "swapper"] }, "PriorityOrderEntity": { "type": "object", "description": "Priority orders: amounts scale with the transaction's priority fee.", "properties": { "type": { "type": "string", "enum": ["Priority"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "nonce": { "$ref": "#/components/schemas/Nonce" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "auctionStartBlock": { "type": "number" }, "baselinePriorityFeeWei": { "$ref": "#/components/schemas/Amount" }, "input": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "amount": { "$ref": "#/components/schemas/Amount" }, "mpsPerPriorityFeeWei": { "$ref": "#/components/schemas/Amount" } }, "required": ["token", "amount", "mpsPerPriorityFeeWei"] }, "outputs": { "type": "array", "items": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "amount": { "$ref": "#/components/schemas/Amount" }, "mpsPerPriorityFeeWei": { "$ref": "#/components/schemas/Amount" }, "recipient": { "$ref": "#/components/schemas/Address" } }, "required": ["token", "amount", "mpsPerPriorityFeeWei", "recipient"] } }, "cosignerData": { "type": "object", "properties": { "auctionTargetBlock": { "type": "number" } } }, "cosignature": { "type": "string" }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "quoteId": { "$ref": "#/components/schemas/QuoteId" }, "requestId": { "$ref": "#/components/schemas/RequestId" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } }, "route": { "$ref": "#/components/schemas/Route" } }, "required": ["type", "encodedOrder", "signature", "orderHash", "orderStatus", "chainId", "swapper"] }, "HybridOrderEntity": { "type": "object", "description": "Hybrid orders: support Dutch auction (price curve) or priority fee scaling mechanics, mutually exclusively.", "properties": { "type": { "type": "string", "enum": ["Hybrid"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "nonce": { "$ref": "#/components/schemas/Nonce" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "auctionStartBlock": { "type": "number" }, "baselinePriorityFee": { "$ref": "#/components/schemas/Amount" }, "scalingFactor": { "$ref": "#/components/schemas/Amount" }, "priceCurve": { "type": "array", "description": "1e18-denominated multipliers; all elements are on the same side of 1e18. Empty for priority-style hybrid orders.", "items": { "$ref": "#/components/schemas/Amount" } }, "input": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "maxAmount": { "$ref": "#/components/schemas/Amount" } }, "required": ["token", "maxAmount"] }, "outputs": { "type": "array", "items": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "minAmount": { "$ref": "#/components/schemas/Amount" }, "recipient": { "$ref": "#/components/schemas/Address" } }, "required": ["token", "minAmount", "recipient"] } }, "cosigner": { "$ref": "#/components/schemas/Address" }, "cosignerData": { "type": "object", "properties": { "auctionTargetBlock": { "type": "number" }, "supplementalPriceCurve": { "type": "array", "items": { "$ref": "#/components/schemas/Amount" } } } }, "cosignature": { "type": "string" }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "quoteId": { "$ref": "#/components/schemas/QuoteId" }, "requestId": { "$ref": "#/components/schemas/RequestId" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } }, "route": { "$ref": "#/components/schemas/Route" } }, "required": ["type", "encodedOrder", "signature", "orderHash", "orderStatus", "chainId", "swapper"] }, "RelayOrderEntity": { "type": "object", "description": "Relay orders: gasless transaction relays paid via a decaying relay fee.", "properties": { "type": { "type": "string", "enum": ["Relay"] }, "encodedOrder": { "$ref": "#/components/schemas/EncodedOrder" }, "signature": { "$ref": "#/components/schemas/Signature" }, "orderHash": { "$ref": "#/components/schemas/OrderHash" }, "orderStatus": { "$ref": "#/components/schemas/OrderStatus" }, "chainId": { "$ref": "#/components/schemas/ChainId" }, "swapper": { "$ref": "#/components/schemas/Address" }, "input": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "amount": { "$ref": "#/components/schemas/Amount" }, "recipient": { "$ref": "#/components/schemas/Address" } } }, "relayFee": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/Address" }, "startAmount": { "$ref": "#/components/schemas/Amount" }, "endAmount": { "$ref": "#/components/schemas/Amount" }, "startTime": { "type": "number" }, "endTime": { "type": "number" } } }, "createdAt": { "$ref": "#/components/schemas/CreatedAt" }, "txHash": { "$ref": "#/components/schemas/TxHash" }, "settledAmounts": { "type": "array", "items": { "$ref": "#/components/schemas/SettledAmount" } } }, "required": ["type", "encodedOrder", "signature", "orderHash", "orderStatus", "chainId", "swapper"] }, "GetOrdersResponse": { "type": "object", "properties": { "orders": { "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/DutchOrderEntity" }, { "$ref": "#/components/schemas/DutchV2OrderEntity" }, { "$ref": "#/components/schemas/DutchV3OrderEntity" }, { "$ref": "#/components/schemas/PriorityOrderEntity" }, { "$ref": "#/components/schemas/HybridOrderEntity" }, { "$ref": "#/components/schemas/RelayOrderEntity" } ] } }, "cursor": { "type": "string", "description": "Defined when the results are paginated. Pass back via the cursor query parameter to fetch the next page." } } }, "ErrorCode": { "type": "string", "enum": [ "ORDER_PARSE_FAIL", "INVALID_ORDER", "TOO_MANY_OPEN_ORDERS", "INTERNAL_ERROR", "VALIDATION_ERROR", "TOO_MANY_REQUESTS", "INVALID_TOKEN_IN_ADDRESS" ] }, "ErrorResponse": { "type": "object", "properties": { "errorCode": { "$ref": "#/components/schemas/ErrorCode" }, "detail": { "type": "string" }, "id": { "type": "string", "description": "Request id for correlating the error with service logs." } } } } } }