Security Definition Request
Enabling Security Definition Requests
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).
Definition of Securities
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)
Identifiers
- Exchange — Unique Exchange ID (Tag 207 - SecurityExchange)
- Contract — Contract ID (Tag 55 - Symbol)
- Market — Unique Market ID (Tag 48 - SecurityID)
Supported Use Cases
- List Exchanges (Get Exchange IDs)
Set SecurityType (Tag 167). Returns all Exchange IDs in Tag 207 with description.
- 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).
- 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.
- List a Specific Current Market (Get Market ID)
Same as above, but includes SecurityID (Tag 48) for the specific market.
- 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).
- List All Only Expired Markets
Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55),
SecurityRequestType = REQUEST_LIST_SECURITIES_ONLY_EXPIRED.
Interactive Usage
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).
Message Dictionary
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 |
Valid Values for SecuritySubType (Tag 762)
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