v2.9.0
New
Fill amounts in WebSocket order events
To allow you to track the filled amounts for your orders and calculate the average fill prices, we added the following parameters to the order event of the Track your orders WebSocket channel:
filledAmount
: The amount of the base currency that was filled.filledAmountQuote
: The amount of the quote currency that was filled.
Execution type indicator in WebSocket events
In the order event of the Track your orders WebSocket channel, we added an executionType
parameter to indicate how the order was updated. Depending on the type, it can have one of the following values: new, trade, canceled, expired, updated, triggered, or restated.
Changed
HTTP status code when market data is unavailable
We now return a more specific HTTP status code when market data is not available. If the market is in a halted
, auction
, or auctionMatching
status and you send a Get order book request, we now return 409 Conflict instead of 503 Service Unavailable.
In this case, there is a conflict with the current market status, not the availability of the service.
Operator ID is now a required parameter
The operatorId
is now be a required request parameter in the following requests:
- REST API: Create order, Update order, Cancel order, and Cancel orders.
- WebSocket API: Create order, Update order, Cancel order, and Cancel orders.
Failing to specify the operatorId
in the request now results in an error response.
Reason for order status change
We added a new restatementReason
parameter to specify the reason for the order status change, for example when an order is canceled by the Price protection checks. This parameter is returned in the responses and events of the following requests:
- REST API: Create order, Update order, Get order, Get orders, and Get open orders.
- WebSocket API: Create order, Update order, Get order, Get orders, Get open orders, and Track your orders.
Removed
orderId query parameter
We removed the deprecated orderId
query parameter from the Get orders REST API request.
tradeId query parameter
We removed the deprecated tradeId
query parameter from the Get trades REST API and WebSocket API requests.
v2.8.0
New
Timestamps in order book snapshots
- For the Get order book REST request, we added a
timestamp
of when the snapshot was generated. - For the Get order book WebSocket action, we added a
timestamp
of the last transaction event. - For the WebSocket Book subscription channel, we added a
timestamp
of the last transaction event in the message.
Response parameters for Get markets
The responses to the GET /markets
REST and WebSocket requests now include the following parameters:
quantityDecimals
(integer)notionalDecimals
(integer)tickSize
(string)maxOpenOrders
(integer)feeCategory
(string)
Changed
New market statuses
We updated the market status logic and added two more statuses in the lifecycle of orders:
trading
: open for trading.halted
: closed for trading. You cannot create, update, or cancel orders.auction
: in transition from closed to open. You cannot create market orders. You can create other order types, but there is still no matching.auctionMatching
: the opening price is calculated. Orders created during theauction
phase that meet the final opening price are matched and executed.cancelOnly
: you can only cancel orders and cannot create or update orders.
Operator ID response parameter
If specified, the operatorId
parameter is now returned in the responses to the following requests:
- REST API: Create order, Update order, Cancel order, and Cancel orders
- WebSocket API: Create order, Update order, Cancel order, and Cancel orders
v2.7.1
Changed
Performance improvements
To improve performance when making update and cancel order requests:
- We no longer return HTTP 400 with the error code 233 for orders that have been canceled or fully filled.
- We now return HTTP 404 with error code 240 for all Not Found scenarios, including orders that are no longer active.
v2.7.0
New
Operator ID parameter
We added a new request parameter: operatorId
to uniquely identify different traders or trading bots that trade from your account. This parameter is available in the following requests:
- REST API: Create order, Update order, Cancel order, and Cancel orders
- WebSocket API: Create order, Update order, Cancel order, and Cancel orders
v2.6.0
New
Error codes
- For HTTP 400: Bad Request, we now return an error code 429 when a parameter value has too many decimal places. The number of decimal places can vary per market.
- For HTTP 503: Service Unavailable, we now return error codes:
- 430 when a connection times out because no new market data events are received.
- 431 when we cannot retrieve data for a market because it isn't in a trading status.
Changed
API updates
- When making an Update order request, the
fills
object in the response now only includes the fills generated by the request instead of all historical fills for the specifiedorderId
. - In the Create Order request, Update Order, and Cancel Order requests, the
clientOrderId
must only have a unique identifier among the open orders of that user. When the orders are closed, you can reuse thatclientOrderId
. - Specifying the
clientOrderId
query parameter in the Get order request now only returns the latest order for thatclientOrderId
. - When making a Get orders request, the value of the
clientOrderId
is only returned for the latest order of the sameclientOrderId
. The values for earlier orders that used thatclientOrderId
isnull
. - The Get balance request now only returns the assets that have a balance greater than 0.
- When retrieving the order book or subscribing to ticker and book endpoints, the data is now only returned for the markets that are in a trading
status
. - When making a Get order book request, the maximum
depth
of bids and asks to retrieve in a single request is now 1000.
Deprecated
Features to be removed
- The Get open orders request now returns an empty
fills
object instead of all historical fills for the specifiedorderId
. This parameter will be removed in the next version. - When creating a new order, setting the
disableMarketProtection
parameter no longer works. If included, the request does not fail, but it ignores the parameter.
v2.5.0
New
Transaction history endpoint
We have added a new Transaction History endpoint to retrieve the transaction history of your account. You can filter transactions by type and date range.
v2.4.0
v2.3.0
Changed
Client order ID tracking improvements
We improved tracking of order status with the clientOrderID
parameter:
- Update and Cancel orders now have a unique
clientOrderId
. You can set this ID for every Create order. clientOrderId
is returned in the response for the Trading subscription WebSocket.
v2.2.2
v2.2.1
New
Client order ID
You can now set a unique clientOrderId for every new order. You use this ID to easily track the order status.
WebSocket request ID
You can set a unique requestId to an initial WebSocket request. This value is added to the return parameters for the action.
v2.2.0
v2.1.2
v2.1.0
New
Enhanced ticker data
- Added
bestBidSize
andbestAskSize
to thetickerBook
and the WebSocket ticker. - Added
bestBid
,bestBidSize
,bestAsk
,bestAskSize
, andtimestamp
parameters toticker24h
.
Trade and order parameters
- Added the
tradeIdFrom
,tradeIdTo
,orderIdFrom
, andorderIdTo
parameters to limit returned trades and orders (deprecatingtradeId
orderId
in those searches).
WebSocket stream
- Added a
ticker24h
WebSocket stream.