Create Order
We enforce a rate limit of 6000
requests per minute for the createOrder
and cancelOrder
requests.
This limit is shared across all markets and both endpoints.
If you exceed this limit, you will receive a 429 Too Many Requests
response.
Unique Client Request ID
For the current WebSocket request, you can optionally include a unique client request ID in the request body. The same client request ID will be found in the response and is used to match the response to the request. The client request ID must be a UUID.
Cross-Leverage Multiplier
We use a cross-leverage approach in our trading platform. This means leverage is applied at the account level rather than the trade level. As a result, if you use leverage on one open position, the same leverage must be applied to all subsequent positions until they are closed and open orders are cancelled.
Please note that leverage must be specified in the create order request to ensure the correct leverage is applied. If the leverage value provided differs from the one currently set on the account, the order will be rejected. We recognize that this behavior may be a bit confusing, and we plan to introduce a separate endpoint in the future that will allow setting leverage at the account level.
Acknowledgment And Confirmation
When you place an order, you will first receive a response to acknowledge that the request has been received. Then you will receive another response to confirm that the order has been successfully created.
There are three differences between these two responses:
Acknowledgment | Confirmation | |
---|---|---|
Body | order created, pending acceptance | order accepted |
Order Status | pending | active |
Status Code | 202 | 200 |
Post-Only Option For Limit Orders
When placing a limit order, you can choose to set the postOnly
option to true
or false
. By default, this option is set to false
, which means the order may match with an existing order in the order book and you may become the taker.
We provide a post-only option for limit orders. When this option is set to true
, the order will only be placed if it does not match with an existing order in the order book.
Using post-only orders will ensure that you are always the maker and never the taker.
If the order would match with an existing order, you will first receive the normal Acknowledgment and Confirmation responses, followed by a 400
response with resultType: rejectOrder
.
For more details, refer to ourOrder Rejected Notifications
Receive Window
To ensure that your requests are processed in a timely manner, we enforce a receive window of 1 second for all create order requests. If the request is not processed within this time frame, it will be rejected with a 400
status code and an error message receive window exceeded, order rejected
indicating that the request has timed out.
The order status in the response will be set to rejected
. You can then retry the request with a new clientRequestId
.
URL
This stream can be subscribed per market and you will need to pass in the market in the URL query. See below.
Query params
Example value: ETH-USD
. To get all supported markets, call /api/v1/markets endpoint.
Headers
See Authorization section on how to retrieve authorization token. Once token is received, set Sec-WebSocket-Protocol
headers in the WebSocket handshake request or on connect()
.
Example value (authorization token) :