Skip to main content

Get Order History

Query order history. As order creation/cancellation is asynchronous, the data returned from this endpoint may delay. If you want to get real-time order information, you could query this endpoint or rely on the websocket stream (recommended).

Unified account covers: Spot / USDT perpetual / USDC contract / Inverse contract / Options
Classic account covers: Spot / USDT perpetual / Inverse contract

tip
  • The orders in the last 7 days: UTA(linear,spot,option) supports querying all closed status except "Cancelled", "Rejected", "Deactivated" status, UTA(inverse) and Classic account supports querying all status
  • 24 hours: UTA(linear,spot,option) for the orders with "Cancelled" (fully cancelled order), "Rejected", "Deactivated" can query last 24 hours data
  • The orders beyond 7 days: supports querying orders which have fills only, i.e., fully filled, partial filled but cancelled finally orders can be queried.
  • You can query by symbol, baseCoin, orderId and orderLinkId, and if you pass multiple params, the system will process them according to this priority: orderId > orderLinkId > symbol > baseCoin.
info
  • Classic Spot: can get closed order status only
  • Classic Spot: market maker can only get recent 3 days order history, please go to web to export. Retail client can get up to 180 days data
  • Classic Spot: Cancelled, Rejected, Deactivated orders save up to 7 days
  • Unified account (linear, spot, option) supports getting the past 730 days historical data

HTTP Request

GET /v5/order/history

Request Parameters

ParameterRequiredTypeComments
categorytruestringProduct type
  • Unified account: spot, linear, inverse, option
  • Classic account: spot, linear, inverse
symbolfalsestringSymbol name
baseCoinfalsestringBase coin. Unified account - inverse & Classic account does not support this param
settleCoinfalsestringSettle coin. Unified account - inverse & Classic account does not support this param
orderIdfalsestringOrder ID
orderLinkIdfalsestringUser customised order ID
orderFilterfalsestringOrder: active order, StopOrder: conditional order for Futures and Spot, tpslOrder: spot TP/SL order, OcoOrder: Spot OCO orders, BidirectionalTpslOrder: Bidirectional TPSL order
  • Classic account spot: return Order active order by default
  • Others: all kinds of orders by default
orderStatusfalsestring
  • Classic spot: not supported
  • UTA(linear,spot,option): return all closed status orders if not passed
  • UTA(inverse) and classic account: return all status orders if not passed
startTimefalseintegerThe start timestamp (ms). Classic spot trading does not support startTime and endTime
  • startTime and endTime are not passed, return 7 days by default
  • Only startTime is passed, return range between startTime and startTime+7 days
  • Only endTime is passed, return range between endTime-7 days and endTime
  • If both are passed, the rule is endTime - startTime <= 7 days
endTimefalseintegerThe end timestamp (ms)
limitfalseintegerLimit for data size per page. [1, 50]. Default: 20
cursorfalsestringCursor. Use the nextPageCursor token from the response to retrieve the next page of the result set

Response Parameters

ParameterTypeComments
categorystringProduct type
listarrayObject
> orderIdstringOrder ID
> orderLinkIdstringUser customised order ID
> blockTradeIdstringBlock trade ID
> symbolstringSymbol name
> pricestringOrder price
> qtystringOrder qty
> sidestringSide. Buy,Sell
> isLeveragestringWhether to borrow. Unified spot only. 0: false, 1: true. . Classic spot is not supported, always 0
> positionIdxintegerPosition index. Used to identify positions in different position modes
> orderStatusstringOrder status
> createTypestringOrder create type
  • Only for category=linear or inverse
  • Spot, Option do not have this key
  • > cancelTypestringCancel type
    > rejectReasonstringReject reason. Classic spot is not supported
    > avgPricestringAverage filled price
  • UTA: returns "" for those orders without avg price
  • Classic account: returns "0" for those orders without avg price, and also for those orders have partilly filled but cancelled at the end
  • > leavesQtystringThe remaining qty not executed. Classic spot is not supported
    > leavesValuestringThe estimated value not executed. Classic spot is not supported
    > cumExecQtystringCumulative executed order qty
    > cumExecValuestringCumulative executed order value. Classic spot is not supported
    > cumExecFeestringCumulative executed trading fee. Classic spot is not supported
    > timeInForcestringTime in force
    > orderTypestringOrder type. Market,Limit. For TP/SL order, it means the order type after triggered
  • Block trade Roll Back, Block trade-Limit: Unique enum values for Unified account block trades
  • > stopOrderTypestringStop order type
    > orderIvstringImplied volatility
    > marketUnitstringThe unit for qty when create Spot market orders for UTA account. baseCoin, quoteCoin
    > triggerPricestringTrigger price. If stopOrderType=TrailingStop, it is activate price. Otherwise, it is trigger price
    > takeProfitstringTake profit price
    > stopLossstringStop loss price
    > tpslModestringTP/SL mode, Full: entire position for TP/SL. Partial: partial position tp/sl. Spot does not have this field, and Option returns always ""
    > ocoTriggerBystringThe trigger type of Spot OCO order.OcoTriggerByUnknown, OcoTriggerByTp, OcoTriggerBySl. Classic spot is not supported
    > tpLimitPricestringThe limit order price when take profit price is triggered
    > slLimitPricestringThe limit order price when stop loss price is triggered
    > tpTriggerBystringThe price type to trigger take profit
    > slTriggerBystringThe price type to trigger stop loss
    > triggerDirectionintegerTrigger direction. 1: rise, 2: fall
    > triggerBystringThe price type of trigger price
    > lastPriceOnCreatedstringLast price when place the order
    > reduceOnlybooleanReduce only. true means reduce position size
    > closeOnTriggerbooleanClose on trigger. What is a close on trigger order?
    > placeTypestringPlace type, option used. iv, price
    > smpTypestringSMP execution type
    > smpGroupintegerSmp group ID. If the UID has no group, it is 0 by default
    > smpOrderIdstringThe counterparty's orderID which triggers this SMP execution
    > createdTimestringOrder created timestamp (ms)
    > updatedTimestringOrder updated timestamp (ms)
    nextPageCursorstringRefer to the cursor request parameter

    Request Example

    GET /v5/order/history?category=linear&limit=1 HTTP/1.1
    Host: api-testnet.bybit.com
    X-BAPI-SIGN: XXXXX
    X-BAPI-API-KEY: XXXXX
    X-BAPI-TIMESTAMP: 1672221263407
    X-BAPI-RECV-WINDOW: 5000

    Response Example

    {
    "retCode": 0,
    "retMsg": "OK",
    "result": {
    "list": [
    {
    "orderId": "14bad3a1-6454-43d8-bcf2-5345896cf74d",
    "orderLinkId": "YLxaWKMiHU",
    "blockTradeId": "",
    "symbol": "BTCUSDT",
    "price": "26864.40",
    "qty": "0.003",
    "side": "Buy",
    "isLeverage": "",
    "positionIdx": 1,
    "orderStatus": "Cancelled",
    "cancelType": "UNKNOWN",
    "rejectReason": "EC_PostOnlyWillTakeLiquidity",
    "avgPrice": "0",
    "leavesQty": "0.000",
    "leavesValue": "0",
    "cumExecQty": "0.000",
    "cumExecValue": "0",
    "cumExecFee": "0",
    "timeInForce": "PostOnly",
    "orderType": "Limit",
    "stopOrderType": "UNKNOWN",
    "orderIv": "",
    "triggerPrice": "0.00",
    "takeProfit": "0.00",
    "stopLoss": "0.00",
    "tpTriggerBy": "UNKNOWN",
    "slTriggerBy": "UNKNOWN",
    "triggerDirection": 0,
    "triggerBy": "UNKNOWN",
    "lastPriceOnCreated": "0.00",
    "reduceOnly": false,
    "closeOnTrigger": false,
    "smpType": "None",
    "smpGroup": 0,
    "smpOrderId": "",
    "tpslMode": "",
    "tpLimitPrice": "",
    "slLimitPrice": "",
    "placeType": "",
    "createdTime": "1684476068369",
    "updatedTime": "1684476068372"
    }
    ],
    "nextPageCursor": "page_token%3D39380%26",
    "category": "linear"
    },
    "retExtInfo": {},
    "time": 1684766282976
    }