Skip to main content
POST
/
order
/
limit
Create a limit order
curl --request POST \
  --url https://api.example.com/order/limit \
  --header 'Content-Type: application/json' \
  --data '
{
  "from": {
    "chain": {
      "kind": "<string>"
    },
    "token": {
      "kind": "<string>",
      "decimals": 1
    }
  },
  "to": {
    "chain": {
      "kind": "<string>"
    },
    "token": {
      "kind": "<string>",
      "decimals": 1
    }
  },
  "pricing": {
    "buyAmount": "<string>",
    "sellAmount": "<string>"
  },
  "destinationAddress": "<string>",
  "refundAddress": "<string>",
  "senderAddress": "<string>",
  "approvalMode": "<string>",
  "validUntil": 2,
  "integratorName": "<string>"
}
'
{
  "orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "quote": {
    "mode": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "fees": {
      "totalUsd": 123,
      "preswap": {
        "amount": "<string>",
        "currency": {
          "chain": {
            "kind": "<string>"
          },
          "token": {
            "kind": "<string>",
            "decimals": 1
          }
        },
        "usd": 123
      },
      "rift": {
        "network": {
          "amount": "<string>",
          "currency": {
            "chain": {
              "kind": "<string>"
            },
            "token": {
              "kind": "<string>",
              "decimals": 1
            }
          },
          "usd": 123
        },
        "liquidity": {
          "amount": "<string>",
          "currency": {
            "chain": {
              "kind": "<string>"
            },
            "token": {
              "kind": "<string>",
              "decimals": 1
            }
          },
          "usd": 123
        },
        "protocol": {
          "amount": "<string>",
          "currency": {
            "chain": {
              "kind": "<string>"
            },
            "token": {
              "kind": "<string>",
              "decimals": 1
            }
          },
          "usd": 123
        }
      },
      "postswap": {
        "amount": "<string>",
        "currency": {
          "chain": {
            "kind": "<string>"
          },
          "token": {
            "kind": "<string>",
            "decimals": 1
          }
        },
        "usd": 123
      }
    },
    "expiresAt": "2023-11-07T05:31:56Z",
    "from": {
      "currency": {
        "chain": {
          "kind": "<string>"
        },
        "token": {
          "kind": "<string>",
          "decimals": 1
        }
      },
      "expected": "<string>"
    },
    "to": {
      "currency": {
        "chain": {
          "kind": "<string>"
        },
        "token": {
          "kind": "<string>",
          "decimals": 1
        }
      },
      "expected": "<string>",
      "minimum": "<string>"
    }
  },
  "executionSteps": [
    {
      "id": "<string>",
      "action": "<string>",
      "kind": "<string>",
      "chainId": 123,
      "to": "<string>",
      "calldata": "<string>",
      "value": "<string>",
      "tokenAddress": "<string>",
      "spenderAddress": "<string>",
      "amount": "<string>",
      "venue": "<string>"
    }
  ]
}

Body

application/json

Request to create a limit order without requiring a pre-fetched quote

from
object
required

Currency is defined as a chain and token identifier

to
object
required

Currency is defined as a chain and token identifier

pricing
LimitPricing · object
required

Absolute limit price terms. sellAmount is source input, buyAmount is minimum output.

destinationAddress
string
required

Final output address (BTC address for BTC payouts, EVM address for EVM payouts)

refundAddress
string
required

Refund address for source chain (BTC address for BITCOIN start, EVM address for EVM start)

senderAddress
string

EVM sender address used for direct CoW limit execution. Required for EVM-start limit routes.

approvalMode

Approval amount strategy for ERC20 limit routes. "full" (default) uses max uint256; "partial" approves only the sell amount.

Allowed value: "full"
validUntil
integer

Optional absolute Unix timestamp in UTC seconds when the limit order expires

Required range: x >= 1
integratorName
string

Integrator name for attribution/analytics

Response

200 - application/json

Limit order created

Swap response with execution steps

orderId
string<uuid>
required

The public order ID

quote
object
required

Quote response with pricing and fees

executionSteps
(EvmCallStep · object | Eip712SignStep · object | BtcTransferStep · object)[]
required

Steps client must execute to complete the swap

Execution step for client to perform