developers:fixapi.securitydefinitionrequest

Security Definition Request

To receive Security Definitions as responses to Security Definition Requests, the initiating FIX session Logon message must have Tag 372 (RefMsgType) set to `“c”` (Enable security definitions requests). Requests that are not enabled will be rejected with a Security Definition containing SecurityResponseType = Reject Security Proposal (Tag 323=5).

The T4 FIX API provides a mechanism to list the securities available for trading and market data streaming. All Security Definition Request messages (Tag 35=c) are successfully responded with one or more Security Definition messages.

For outrights, spreads, options and multi-legged strategies, result sets contain:

  • Exchange identifier
  • Contract identifier
  • Market identifier
  • Pricing
  • Minimum trading volumes
  • Minimum price amount (including Variable Tick Tables)
  • Quantity leg ratios
  • Buy/sell sides
  • Put/Call type
  • Strikes

The Security Definition Request may interrogate the T4 FIX API for:

  • Available exchanges
  • Contracts within an exchange
  • Markets for a specific contract

SecurityRequestType (Tag 321) is always set to request the list of securities (Tag 321=3). Returned record sets are determined by the combination of:

  • SecurityType (Tag 167)
  • SecurityExchange (Tag 207)
  • Symbol (Tag 55)
  • SecurityID (Tag 48)
  • Exchange — Unique Exchange ID (Tag 207 - SecurityExchange)
  • Contract — Contract ID (Tag 55 - Symbol)
  • Market — Unique Market ID (Tag 48 - SecurityID)
  1. List Exchanges (Get Exchange IDs)

Set SecurityType (Tag 167). Returns all Exchange IDs in Tag 207 with description.

  1. List Contracts within an Exchange (Get Contract IDs)

Requires SecurityType (Tag 167) and SecurityExchange (Tag 207). Optional PutOrCall (Tag 201) for options.

  Returns all Contract IDs (Tag 55) with description (Tag 107).
  1. List Current Markets of a Specific Contract (Get Market IDs)

Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55).

  Optional SecuritySubType (Tag 762) to filter results. Returns Market IDs in Tag 48.
  1. List a Specific Current Market (Get Market ID)

Same as above, but includes SecurityID (Tag 48) for the specific market.

  1. List Expired Markets for a Specific Maturity

Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55),

  SecurityRequestType = REQUEST_LIST_SECURITIES_ONLY_EXPIRED, MaturityMonthYear (Tag 200).
  1. List All Only Expired Markets

Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55),

  SecurityRequestType = REQUEST_LIST_SECURITIES_ONLY_EXPIRED.

Security Definition Requests are progressive and incremental:

  • Send a request → process all responses → send the next request.
  • Batching is not supported — may cause performance issues or disconnection.
  • Avoid re-requesting all instruments on every FIX session logon — cache definitions where possible.
  • New market discovery should match contract expiration cycles (e.g., quarterly for CME equities).
Tag Field Name Req'd Comments
*Standard Header* Y MsgType = c
320 SecurityReqID Y Unique identifier for this request.
321 SecurityRequestType Y 3 = REQUEST_LIST_SECURITIES (Active markets), 4 = REQUEST_LIST_SECURITIES_ONLY_EXPIRED (Expired markets only)
167 SecurityType N FUT = Futures, OPT = Options, STK = Stock, SYN = Synthetic, BIN = Binary Option
207 SecurityExchange N T4 Exchange ID
55 Symbol N T4 Contract ID
48 SecurityID N T4 Market ID
201 PutOrCall N 0 = Put, 1 = Call
200 MaturityMonthYear N Format YYYYMM00 or YYYYMM
762 SecuritySubType N Further describes the security (see valid values list)
*Standard Trailer* Y
Code Description
0 None (Outrights)
1 Calendar Spread
2 RT Calendar Spread
3 Inter Contract Spread
4 Butterfly Spread
5 Condor Spread
6 Pack Spread
7 Bundle Spread
8 Inter Exchange Spread
9 Crack Spread
10 Spark Spread
11 Crush Spread
12 Reverse Crush Spread
13 Strip
14 Straddle
15 Strangle
16 Guts
17 Synthetics
18 Combo
19 Vertical Spread
20 Horizontal Spread
21 Diagonal Spread
22 Ratio Spread
23 Back Spread
24 Covered Call
25 Covered Put
26 Married Put
27 Collar
28 Fence
29 Conversion
30 Reverse Conversion
31 Box Spread
32 Jelly Roll
33 Iron Condor
34 Iron Butterfly
35 Ladder
36 Seagull
37 Strip (Option Strategy)
38 Strap
39 Synthetic Long Stock
40 Synthetic Short Stock
41 Synthetic Long Future
42 Synthetic Short Future
43 Reversal
44 Risk Reversal
45 Calendar Butterfly
46 Calendar Condor
47 Calendar Straddle
48 Calendar Strangle
49 Diagonal Butterfly
50 Diagonal Condor
51 Diagonal Straddle
52 Diagonal Strangle
53 Horizontal Butterfly
54 Horizontal Condor
55 Horizontal Straddle
56 Horizontal Strangle
57 Ratio Butterfly
58 Ratio Condor
59 Ratio Straddle
60 Ratio Strangle
61 Vertical Butterfly
62 Vertical Condor
63 Vertical Straddle
64 Vertical Strangle
65 Box (Synthetic Arbitrage)
66 Diagonal Box
67 Horizontal Box
68 Ratio Box
69 Vertical Box
70 Inter Contract Strip

Sample Messages

Requesting all exchanges

>> 10/15/2012 4:22:27 PM   [FIXSECURITYDEFINITIONREQUEST] 34=2|49=T4Example|56=T4|52=20121015-21:22:27.673|320=sc-10/15/2012 4:22:27 PM|321=3|167=FUT|
[FIXSECURITYDEFINITIONREQUEST]
[MsgSeqNum] 34 = 2
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:22:27.673
[SecurityReqID] 320 = sc-10/15/2012 4:22:27 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[SecurityType] 167 = FUT (FUTURE)

Requesting all contracts for a specific exchange

>> 10/15/2012 4:22:39 PM   [FIXSECURITYDEFINITIONREQUEST] 34=3|49=T4Example|56=T4|52=20121015-21:22:39.638|320=sc-10/15/2012 4:22:39 PM|321=3|167=FUT|207=CME_Eq|
[FIXSECURITYDEFINITIONREQUEST]
[MsgSeqNum] 34 = 3
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:22:39.638
[SecurityReqID] 320 = sc-10/15/2012 4:22:39 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq

Requesting all markets for a specific contract

>> 10/15/2012 4:23:22 PM   [FIXSECURITYDEFINITIONREQUEST] 34=7|49=T4Example|56=T4|52=20121015-21:23:22.117|320=sc-10/15/2012 4:23:22 PM|321=3|55=ES|167=OPT|201=1|207=CME_EqOp|
[FIXSECURITYDEFINITIONREQUEST]
[MsgSeqNum] 34 = 7
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:23:22.117
[SecurityReqID] 320 = sc-10/15/2012 4:23:22 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[Symbol] 55 = ES
[SecurityType] 167 = OPT (OPTION)
[PutOrCall] 201 = 1 (CALL)
[SecurityExchange] 207 = CME_EqOp

Requesting a specific market

>> 10/15/2012 4:40:18 PM   [FIXSECURITYDEFINITIONREQUEST] 34=4|49=T4Example|56=T4|52=20121015-21:40:18.421|320=sc-10/15/2012 4:40:18 PM|321=3|55=ES|167=FUT|207=CME_Eq|48=CME_20121200_ESZ2|
[FIXSECURITYDEFINITIONREQUEST]
[MsgSeqNum] 34 = 4
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:40:18.421
[SecurityReqID] 320 = sc-10/15/2012 4:40:18 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[Symbol] 55 = ES
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq
[SecurityID] 48 = CME_20121200_ESZ2

T4 FIX API Home

  • developers/fixapi.securitydefinitionrequest.txt
  • Last modified: 2025/08/13 12:11
  • by rob