Skip to main content
Version: 8.5.11.3

Schema: OptionFlexEvent (ID: 2845)

The most recent (last) record for each active FLEX option.

METADATA

AttributeValue
Topic2750-market-data-options
MLink TokenOptFlexPrint
SRSE ProductSRLive

Note: The symbol = next to a field number indicates that it is a primary key.

BODY

#FieldTypeDefault ValueComment
10=sequenceNumberintsequence of the flex event message counting from the start of day or last restart of the feed handler
100eventIdintunique id of the event assigned by SpiderRock, subsequent messages on the event will use the same id
103prtExchenum : OptExchexchange code that produced this flex event
106prtRootstring(6)security symbol of the FLEX option
109requestIdintrequest identifier associated with this trade assigned by the exchange (these appear to not be 100% reliable, particularly for PHLX)
112eventTypeenum : FlexEventTypetype of event this message represents, e.g., RFQ, QTE, LST
115totalQuantityinttotal quantity of the flex trade
118packagePricedoubletotal price of the flex trade inclusive of all legs
121netTimestamplongtimestamp of when this message was received
124srcTimestamplongtimestamp from the exchange of when this message was sent

REPEATING FIELDS

Legs

#FieldTypeDefault ValueComment
130okeyOptionKeyOptionKey of the instrument, if available
133flexTypeenum : FlexTypeEuropean or American exercise, AM or PM exercise time
136quantityintquantity of contracts in this leg of the event
139pricedoubleprice of this leg of the event, could be quoted in percentage of closing price
142priceTypeenum : FlexPriceTypeprice type of the event
145deltadoubledelta supplied with the event for delta adjusted at close events
148refPricedoublereference price of the event, for use in delta ajusting the final price
151closePricedoubleclose price used for both percentage adjusted and delta adjusted events
154priceAdjdoublefinal adjusted price, made available after the event is marked as PctAdjApplied or DeltaAdjApplied
157strikeAdjdoublefinal adjusted strike, made available after the event is marked PctAdjApplied
160bidPricedoublebid price from QTE messages
163bidSizedoublebid size from QTE messages
166askPricedoubleask price from QTE messages
169askSizedoubleask size from QTE messages
172rawTextstring(200)raw text of the flex event

Get Schema API Call

import requests 

# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'

# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'

# Replace with your desired MsgType.
MSG_TYPE = 'OptionFlexEvent'

# Request Parameters for Get Schema Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getschema',
"msgType": MSG_TYPE,
}

response = requests.get(MLINK_PROD_URL, params=params)

Get Msg API Call

import requests 

# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'

# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'

# Replace with your desired MsgType.
MSG_TYPE = 'OptionFlexEvent'

# Replace with your pkey value for getting the specific message desired
PKEY = 'ReplaceThisValueForTheQueryToWork'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned.
VIEW = 'eventId|prtExch|prtRoot|requestId|eventType|totalQuantity|packagePrice|netTimestamp|srcTimestamp'

# Replace with your desired where clause.
# a string in the form "field1:eq:valuse" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'prtRoot:eq:ExampleString'

# Request Parameters for getmsg Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getmsg',
"pkey": PKEY,
"msgType": MSG_TYPE,
# Optional Parameters
"view": VIEW,
"where": WHERE
}

response = requests.get(MLINK_PROD_URL, params=params)

Get Msgs API Call

import requests 

# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'

# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'

# Replace with your desired MsgType.
MSG_TYPE = 'OptionFlexEvent'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'eventId|prtExch|prtRoot|requestId|eventType|totalQuantity|packagePrice|netTimestamp|srcTimestamp'

# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'prtRoot:eq:ExampleString'

# Replace with your desired limit of how many messages you receive. The default limit is 500
LIMIT = 500

# Order clause eg. "(field1:DESC | field1:ASC | field2:DESC:ABS | field2:ASC:ABS" (default is unordered; default is faster)
ORDER = 'eventId:ASC'

# Request Parameters for getmsgs Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getmsgs',
"msgType": MSG_TYPE,
# Optional Parameters
"view": VIEW,
"where": WHERE,
"limit": LIMIT,
"order": ORDER
}

response = requests.get(MLINK_PROD_URL, params=params)

Get Aggregate API Call

import requests 

# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'

# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'

# Replace with your desired MsgType.
MSG_TYPE = 'OptionFlexEvent'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'eventId|prtExch|prtRoot|requestId|eventType|totalQuantity|packagePrice|netTimestamp|srcTimestamp'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'prtExch|eventType'

# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'prtRoot:eq:ExampleString'

# Request Parameters for getaggregate Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getaggregate',
"msgType": MSG_TYPE,
"measure": MEASURE,
"group": GROUP,
# Optional Parameters
"where": WHERE,
}

response = requests.get(MLINK_PROD_URL, params=params)

Get Count API Call

import requests 

# Replace with your desired MLINK URL
MLINK_PROD_URL = 'https://mlink-live.nms.saturn.spiderrockconnect.com/rest/json'

# Replace with your MLINK API Key
API_KEY = 'XXXX-XXXX-XXXX-XXXX'

# Replace with your desired MsgType.
MSG_TYPE = 'OptionFlexEvent'

# Replace with your desired where clause.
# a string in the form "field1:eq:value" or "(field1:ne:value1 & field1:ne:value2)
# "WHERE" clauses can contain the following comparison symbols:
# :gt: is greater than
# :ge: is greater than or equal to
# :lt: is less than
# :le: is less than or equal to
# :eq: is equal
# :ne: is not equal
# %26 is an AND statement
# | is an OR statement
# :sw: is starts with
# :ew: is ends with
# :cv: is contains values
# :nv: is does not contain value
# :cb: is contained between (two dates for instance) separated by '$'
WHERE = 'prtRoot:eq:ExampleString'

# Request Parameters for getCount Of The MsgType
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'getcount',
"msgType": MSG_TYPE,
# Optional Parameters
"where": WHERE,
}

response = requests.get(MLINK_PROD_URL, params=params)