SecurityListRequest (35=x)

Submits a request to get a list of the securities available to trade on the exchange.

TagNameTypeRequiredDescription
320SecurityReqIDstringYUnique identifier for the security request used to correlate the response to the request.
559SecurityListRequestTypestringYSpecifies the scope of the security request.

Supported values include:
0 = Symbol
4 = All Securities
55SymbolstringCRequired when SecurityListRequestType (tag 559) is set to Symbol (0). The SecurityList response will only include results matching the symbol specified in this field.

SecurityList (35=y)

A response to a SecurityListRequest that includes information about the requested securities.

TagNameTypeRequiredDescription
320SecurityReqIDstringYThe SecurityReqID of the SecurityListRequest that this message is in response to
322SecurityResponseIDstringYA unique response ID
560SecurityRequestResultstringY0 = ValidReq
1 = InvalidReq
393TotNoRelatedSymintYUsed to indicate the total number of securities being returned for this request. Used in the event that message fragmentation is required.
893LastFragmentcharNN = Not Last message
Y = Last Message for SecurityListRequest
146NoRelatedSymintYWhen >0 a repeating group of instrument definitions follows.
→ 55
SymbolstringYThe symbol used to represent the instrument.
→ 167
SecurityTypestringYIdentifies the type of instrument. Values include:

FXSPOT = Spot pairs
PERP = Perpetual futures
→ 762
SecuritySubTypestringYIdentifies the mode of instrument. Values include:

STANDARD = Standard instrument mode
PRE_LAUNCH = Pre-launch mode
PRE_LAUNCH_CONVERTING = Converting from pre-launch mode to standard mode
→ 231
ContractMultiplierdecimalNSpecifies the multiply factor to indicate the number of units in one contract.
→ 969
MinPriceIncrementdecimalYThe tick size of the instrument.
→ 898
MarginRatiodecimalYThe base initial margin requirement.
→ 21000
DefaultMarginRatiodecimalNThe default initial margin requirement.
→ 870
NoInstrAttribintYMarks the beginning of the Instrument Attributes repeating group component.
→→ 871
InstrAttribTypeintYIdentifies the type of instrument attribute the InstrAttribValue (872) represents.

Supported values include:
40 = Average daily notional amount
41 = Average daily trade quantity
42 = Total day notional amount (30 days)
43 = Total day trade quantity (30 days)
44 = Total hour notional amount (24 hours)
45 = Total hour trade quantity (24 hours)
→→ 872
InstrAttribValuestringYThe value corresponding to the InstrAttribType (871).
→ 864
NoEventsintNMarks the beginning of the Events repeating group component.
→→ 865
EventTypeintNIdentifies the event represented by EventTime (1145).

Supported values include:
101 = Pre-launch conversion time
→→ 1145
EventTimeutc timestampNThe timestamp corresponding to the EventType (865).
→ 15
CurrencystringYCurrency used for price.
→ 562
MinTradeVoldecimalYThe minimum quantity in terms of USDC notional value accepted for an order.
→ 1140
MaxTradeVoldecimalNThe maximum quantity allowed for position size. (Will be deprecated in a future release)
→ 970
PositionLimitdecimalNThe maximum notional value allowed for position.
→ 561
RoundLotdecimalYThe maximum precision allowed when specifying a quantity.
→ 1682
MDSecurityTradingStatusintYIdentifies the status of the market. Values include:

2 = Halt
17 = Ready to trade
18 = Not available for trading
19 = Not Traded On This Market
99 = Pause

  • During Halt (2), limit orders can be submitted or canceled, but will not match. When moving from Halt (2) to Ready to trade (17) all buy orders above and all sell orders below a communicated target price get canceled before matching resumes.
  • During Ready to trade (17), all supported order types are accepted and continuous matching occurs.
  • During Pause (99), orders can only be canceled. When moving from Pause (99) to Ready to trade (17), crossed orders fill at the last Opening price (sent as MDEntryType Opening price (269=4) in MarketDataSnapshotFullRefresh (35=W) and MarketDataIncrementalRefresh (35=X))
  • During Not Traded On This Market (19), orders will not be accepted but liquidation execution reports may reference this symbol
  • 711NoUnderlyingsintNNumber of underlyings
    → 310
    UnderlyingSecurityTypestringNUnderlying security’s SecurityType.

    Possible values are:
    INDEX = Underlying is an index
    FXSPOT = Underlying is a spot pair

    SecurityDefinition (35=d)

    Sent when a new security becomes available for trading or something changes with an existing security.

    TagNameTypeRequiredDescription
    980SecurityUpdateActioncharYIndicates whether the message is adding, modifying, or deleting a instrument.

    Values include:
    A = Add
    M = Modify
    D = Delete
    779LastUpdateTimeutc timestampYTimestamp of the last update or creation if no updates have occurred yet.
    55SymbolstringYThe symbol used to represent the instrument.
    167SecurityTypestringYIdentifies the type of instrument. Values include:
    FXSPOT = Spot pairs
    PERP = Perpetual futures
    762SecuritySubTypestringYIdentifies the mode of instrument. Values include:

    STANDARD = Standard instrument mode
    PRE_LAUNCH = Pre-launch mode
    PRE_LAUNCH_CONVERTING = Converting from pre-launch mode to standard mode
    231ContractMultiplierdecimalNSpecifies the multiply factor to indicate the number of units in one contract.
    969MinPriceIncrementdecimalYThe tick size of the instrument.
    898MarginRatiodecimalYThe base initial margin requirement.
    21000DefaultMarginRatiodecimalNThe default initial margin requirement.
    870NoInstrAttribintYMarks the beginning of the Instrument Attributes repeating group component.
    → 871
    InstrAttribTypeintYIdentifies the type of instrument attribute the InstrAttribValue (872) represents.

    Supported values include:
    40 = Average daily notional amount
    41 = Average daily trade quantity
    42 = Total day notional amount (30 days)
    43 = Total day trade quantity (30 days)
    44 = Total hour notional amount (24 hours)
    45 = Total hour trade quantity (24 hours)
    → 872
    InstrAttribValuestringYThe value corresponding to the InstrAttribType (871).
    864NoEventsintNMarks the beginning of the Events repeating group component.
    → 865
    EventTypeintNIdentifies the event represented by EventTime (1145).

    Supported values include:
    101 = Pre-launch conversion time
    → 1145
    EventTimeutc timestampNThe timestamp corresponding to the EventType (865).
    15CurrencystringYCurrency used for price.
    562MinTradeVoldecimalYThe minimum quantity in terms of USDC notional value accepted for an order.
    1140MaxTradeVoldecimalNThe maximum quantity allowed for position size. (Will be deprecated in a future release)
    970PositionLimitdecimalNThe maximum notional value allowed for position.
    561RoundLotdecimalYThe maximum precision allowed when specifying a quantity.
    1682MDSecurityTradingStatusintYIdentifies the status of the market. Values include:

    2 = Halt
    17 = Ready to trade
    18 = Not available for trading
    19 = Not Traded On This Market
    99 = Pause

  • During Halt (2), limit orders can be submitted or canceled, but will not match. When moving from Halt (2) to Ready to trade (17) all buy orders above and all sell orders below a communicated target price get canceled before matching resumes.
  • During Ready to trade (17), all supported order types are accepted and continuous matching occurs.
  • During Pause (99), orders can only be canceled. When moving from Pause (99) to Ready to trade (17), crossed orders fill at the last Opening price (sent as MDEntryType Opening price (269=4) in MarketDataSnapshotFullRefresh (35=W) and MarketDataIncrementalRefresh (35=X))
  • During Not Traded On This Market (19), orders will not be accepted but liquidation execution reports may reference this symbol
  • 40avgDailyQuantityTypeRequiredThe 30 days average daily traded volume, updated daily
    711NoUnderlyingsintNNumber of underlyings
    → 310
    UnderlyingSecurityTypestringNUnderlying security’s SecurityType.

    Possible values are:
    INDEX = Underlying is an index
    FXSPOT = Underlying is a spot pair

    MarketDataRequest (35=V)

    Sent by the client to subscribe or unsubscribe to market data for a given security. The market data feed only supports aggregated books on levels 1, 10, or 20 (e.g., 266=Y and 264 = 10).

    TagNameTypeRequiredDescription
    262MDReqIDstringYA unique ID assigned by the client that is referenced on market data message relating to this request on in the following messages:

    MarketDataRequestReject (35=Y)
    MarketDataSnapshotFullRefresh (35=W)
    MarketDataIncrementalRefresh (35=X)

    And also used for a followup MarketDataRequest to unsubscribe (i.e. 263=2).
    263SubscriptionRequestTypecharYType of subscription request:

    1 = Subscribe (snapshots + updates)
    2 = Unsubscribe
    264MarketDepthintCHow many price levels from BBO inclusive to include for the market data snapshot and updates (defaults to 1). Limited to 1,10, or 20 levels and does not support full book depth.
    146NoRelatedSymintNThe number of symbols in the repeating group defined below. If unspecified or set to 0 the request applies to all symbols.
    → 55
    SymbolstringCThe symbol used to represent the instrument. Required if NoRelatedSym > 0.
    → 167
    SecurityTypestringCIdentifies the type of instrument. Values include:

    FXSPOT = Spot pairs
    PERP = Perpetual futures

    Required if NoRelatedSym > 0.

    MarketDataRequestReject (35=Y)

    Sent by the exchange a MarketDataRequest fails.

    TagNameTypeRequiredDescription
    262MDReqIDstringYThe same value provided for the MDReqID on the MarketDataRequest message.
    281MDReqRejReasonintYA numerical reject code for common rejects to explain why the MarketDataRequest was rejected:

    0 = Unknown symbol
    1 = Duplicate MDReqID
    5 = Unsupported market depth
    7 = Other
    58TextstringN

    MarketDataSnapshotFullRefresh (35=W)

    Sent in response to a MarketDataRequest. This message can contain a 2 sided list of quotes for a single security. It is used to initialize or reset the entire state of the book.

    TagNameTypeRequiredDescription
    262MDReqIDstringYThe same value provided for the MDReqID on the MarketDataRequest message.
    55SymbolstringYThe symbol used to represent the instrument.
    167SecurityTypestringYIdentifies the type of instrument. Values include:

    FXSPOT = Spot pairs
    PERP = Perpetual futures
    268NoMDEntriesintYMarks the beginning of a repeating group for market data entries while also indicating the number of market data entries in the group. Value must be > 0.
    → 269
    MDEntryTypecharYIndicates the type of MD entry, values include:

    0 = Bid
    1 = Offer
    2 = Trade
    3 = Index price
    4 = Opening price
    6 = Settlement price
    B = Trade quantity
    g = Fair value limit up
    h = Fair value limit down
    f = Final funding rate
    m = Mark price
    p = Predicted funding rate
    C = Open interest

    • Bid indicates the aggregated quantity interested in buying that is resting on the book at a specific price point.
    • Offer indicates the aggregated quantity interested in selling that is resting on the book at a specific price point.
    • Trade indicates the size and price of the most recent trade.
    • Index price is a calculated price based away market quotes used to determine funding for perpetual futures and calculate the fair value.
    • Opening price indicates the probable price at which the market will open and is only populated when the market is in the Halt or Pause statuses.
    • Settlement price indicates the price used to settle open positions which resets risk calculations for margin and unrealized P&L.
    • Trade quantity discloses how much of the instrument (in base asset/size terms) traded over the last 24 hours.
    • Fair value limit up represents the max price the market can trade at.
    • Fair value limit down represents the min price the market can trade at.
    • Final funding rate indicates the funding rate used to keep perpetual futures assets pegged to the index price.
    • Mark price is the median of the best bid, best offer, and last trade which gets used in various risk calculations.
    • Predicted funding rate gives the most recent rolling calculation update of the funding rate prior to completing a funding period for perpetual futures.
    • Open interest gives the total number of active positions held by traders.
    → 278
    MDEntryIDlongCA unique identifier used to reference the entry, only used for trades.
    → 270
    MDEntryPxdecimalYThe price of the MD entry.
    → 271
    MDEntrySizedecimalCThe size of the MD entry.

    Not required when the MDUpdateAction (279) is a delete (2) or the MDEntryType (269) is index price (3), Settlement price (6), Fair value limit up (g), Fair value limit down (h), Final funding rate (f), Mark price (m), or Predicted funding rate (p).
    → 60
    TransactTimeutc timestampYThe timestamp representing when the MD entry was generated.
    → 1023
    MDPriceLevelintCIndicates the level of price from the BBO with the BBO price as level 1.

    Not required when the MDUpdateAction (279) is a delete (2) or the MDEntryType (269) is index price (3), Settlement price (6), Fair value limit up (g), Fair value limit down (h), Final funding rate (f), Mark price (m), or Predicted funding rate (p).
    → 2446
    AggressorSideintCIndicates what side was the aggressor causing the match to occur. Only used for trades.

    Values include:
    0 = No aggressor
    1 = Buy
    2 = Sell

  • No aggressor (0) indicates trade is caused by the market moving from the Paused to Ready to trade status, which causes all crossed orders to fill at the Opening price
  • MarketDataIncrementalRefresh (35=X)

    Sent in response to a MarketDataRequest. This message provides incremental updates for quote changes in a single security.

    TagNameTypeRequiredDescription
    262MDReqIDstringYThe same value provided for the MDReqID on the MarketDataRequest message.
    268NoMDEntriesintYMarks the beginning of a repeating group for market data entries while also indicating the number of market data entries in the group. Value must be > 0.
    → 279
    MDUpdateActioncharYIndicates the type of update, supported values include:

    0 = New
    1 = Change
    2 = Delete
    → 269
    MDEntryTypecharYIndicates the type of MD entry, values include:

    0 = Bid
    1 = Offer
    2 = Trade
    3 = Index price
    4 = Opening price
    6 = Settlement price
    B = Trade quantity
    g = Fair value limit up
    h = Fair value limit down
    f = Final funding rate
    m = Mark price
    p = Predicted funding rate
    C = Open interest

    • Bid (0) and Offer (1) get disseminated when orders prices within a visible BBO level post to the book, get canceled, or trade.
    • Trade (2) only gets disseminated for trade events once per trade pair (i.e. the matching portions of a buy and sell generates a single trade message).
    • Index (3) price gets disseminated when calculated (typically 1 second).
    • Opening price (4) indicates the probable price at which the market will open and is only populated when the market is in the Halt or Pause statuses.
    • Settlement price (6) gets disseminated per settlement event (typically 5 minutes).
    • Trade quantity (B) gets disseminated daily around 12am UTC.
    • The Fair value limit up (g) and Fair value limit down (h) get disseminated when updated (no more frequently than once a second).
    • The Final funding rate (f) gets disseminated at the end of the funding interval (hourly).
    • The Mark price (m) gets disseminated no more than once per second.
    • The Predicted funding rate (p) gets disseminated no more than once a second.
    • The Open interest (C) gets disseminated no more than once a second.
    → 278
    MDEntryIDlongCA unique identifier used to reference the entry, set to the match ID when MdEntryType (269) has value trade (2)
    → 55
    SymbolstringYThe symbol used to represent the instrument.
    → 270
    MDEntryPxdecimalCThe price of the MD entry.
    → 271
    MDEntrySizedecimalCThe size of the MD entry.

    Only required when MDEntryType (269) is Bid (0) or Offer (1) while MDUpdateAction (279) is a New (0) or Change (1).
    → 60
    TransactTimeutc timestampYThe timestamp representing when the MD entry was generated.
    → 1023
    MDPriceLevelintCIndicates the level of price from the BBO with the BBO price as level 1.

    Only required when MDEntryType (269) is Bid (0) or Offer (1) while MDUpdateAction (279) is a New (0) or Change (1).
    → 2446
    AggressorSideintCIndicates what side was the aggressor causing the match to occur. May not get set in certain future contexts like an opening auction.

    Values include:
    1 = Buy
    2 = Sell