# Create new order Creates a new order. For DeFi orders, returns unsigned payloads for client signing. Endpoint: POST /orders Version: 1.0.0 Security: bearerAuth ## Request fields (application/json): - `base_asset` (string, required) Base asset identifier (e.g. , , ) Example: "BTC" - `quote_asset` (string, required) Quote asset identifier (e.g. , ) Example: "USD" - `qty` (string, required) Quantity as a positive decimal string Example: "100" - `price` (string) Limit price per unit of base asset as a decimal string. Required for limit orders; must not be sent for market orders. Example: "67500.00" - `qty_unit` (string, required) Unit of the quantity. * — Quantity is denominated in the base asset. Required for limit orders. Supported for market sell orders. * — Quantity is denominated in the quote asset. Required for market buy orders. For DeFi sell orders, must be used instead. Enum: "base", "quote" - `type` (string, required) The type of order to place. * — Execute immediately at the best available price. Buy orders require . Price must not be specified. * — Place an order at a specific price. Requires and . Only supported on CeFi; must not be specified. Enum: "market", "limit" - `side` (string, required) The side of the order. * — Purchase the base asset using the quote asset. * — Sell the base asset in exchange for the quote asset. Enum: "buy", "sell" - `chain` (string) Blockchain network for DeFi orders. Omit for CeFi orders. Not supported for limit orders. Enum: "solana", "base" ## Response 201 fields (application/json): - `order_id` (string) Unique order identifier - `status` (string) The current status of the order. * — Order has been created but not yet submitted. For DeFi orders, the client must sign the returned payloads and call the execute endpoint. For CeFi buy orders with insufficient balance, a funding bridge is prepared first. * — Order has been submitted but is not yet confirmed by the CeFi exchange or on-chain. * — Order was accepted by the CeFi exchange and is open for trading. Applies to limit orders that are working in the order book. * — A cancellation request has been sent to the CeFi exchange and is awaiting confirmation. * — Order has been fully executed. For CeFi orders this means the CeFi exchange reported a fill; for DeFi orders the on-chain swap was confirmed. * — Order was successfully canceled via a cancel request or by exchange/market conditions. * — Order was rejected by the CeFi exchange or DeFi execution failed (e.g. on-chain transaction reverted, balance check failed). Enum: "initialized", "pending", "cancel_pending", "complete", "canceled", "active", "failed" - `payloads` (array) Unsigned transaction payloads that the client must sign and return via the execute endpoint. Present for DeFi orders and CeFi buy orders that require a funding bridge. Empty or absent when the order is submitted immediately (e.g. CeFi sell orders). - `payloads.digest` (string, required) SHA-256 hash of the payload, used as the signing input - `payloads.payload` (string, required) Base64-encoded transaction payload to be signed - `quote` (object) Quote details for DeFi orders including expected output quantity and fees - `quote.base_asset` (string) Base asset identifier (e.g. , ) - `quote.quote_asset` (string) Quote asset identifier (e.g. ) - `quote.qty` (string) Input quantity as a decimal string — the amount being swapped from - `quote.qty_out` (string) Expected output quantity as a decimal string — the amount the user will receive after fees - `quote.fee` (string) Platform fee amount as a decimal string - `quote.fee_asset` (string) Asset in which the fee is denominated (e.g. ) - `quote.issues` (array) Warnings about the quote (e.g. high price impact, low liquidity). Empty when there are no issues. - `web_authn_payload` (string) WebAuthn payload (deprecated, use payloads instead) ## Response 400 fields (application/json): - `message` (string) Error message ## Response 401 fields (application/json): - `message` (string) Error message ## Response 403 fields (application/json): - `message` (string) Error message ## Response 404 fields (application/json): - `message` (string) Error message ## Response 500 fields (application/json): - `message` (string) Error message ## Response 503 fields (application/json): - `message` (string) Error message