Category: User Permissions: Operator, Trading, Level2MarketData Call Type: Synchronous

Retrieves the latest Level 2 Ticker information and then subscribes the user to Level 2 market data event updates for one specific instrument. Level 2 allows the user to specify the level of market depth information on either side of the bid and ask. The SubscribeLevel2 call responds with the Level 2 response shown below. The OMS then periodically sends Level2UpdateEvent information in the same format as this response until you send the UnsubscribeLevel2 call.

Only a user with Operator permission can issue a Level2MarketData permission using the call AddUserMarketDataPermission.

Note: Depth in this call is "depth of market," the number of buyers and sellers at greater or lesser prices in the order book for the instrument.


    "OMSId":  1,
    "InstrumentId": 0
    "Depth":  10 


    "OMSId":  1,
    "Symbol": "BTCUSD"
    "Depth":  10 


integer. The ID of the Order Management System on which the instrument trades.


integer. The ID of the instrument you’re tracking. Conditionally optional.


string. The symbol of the instrument you’re tracking. Conditionally optional.


integer. The depth of the order book. The example request returns 10 price levels on each side of the market.


        0, // MDUpdateId        
        1, // Number of Accounts
        123,// ActionDateTime in Posix format X 1000
        0,   // ActionType 0 (New), 1 (Update), 2(Delete)
        0.0, // LastTradePrice
        0, // Number of Orders
        0.0, //Price
        0,  // ProductPairCode
        0.0, // Quantity
        0, // Side

The response is an array of elements for one specific instrument, the number of elements corresponding to the market depth specified in the Request. It is sent as an uncommented, comma-delimited list of numbers. The example is commented.



integer. Market Data Update ID. This sequential ID identifies the order in which the update was created.

Number of Accounts

integer. Number of accounts


long integer.. ActionDateTime identifies the time and date that the snapshot was taken or the event occurred, in POSIX format X 1000 (milliseconds since 1 January 1970).


integer. L2 information provides price data. This value shows whether this data is: 0 new 1 update 2 deletion


real. The price at which the instrument was last traded.

Number of Orders

integer. Number of orders


real. Bid or Ask price for the Quantity (see Quantity below).


integer. ProductPairCode is the same value and used for the same purpose as InstrumentID. The two are completely equivalent. InstrumentId 47 = ProductPairCode 47.


real. Quantity available at a given Bid or Ask price (see Price above).


integer. One of: 0 Buy 1 Sell 2 Short (reserved for future use) 3 Unknown (error condition)

Last updated