Skip to main content
Version: 8.6.10.4

Schema: IndexDefinitionV3 (ID: 9109)

THE INDEX KEY IS THE LINE: every root and ccode that settles on this index points at this key, its live level

rides on IndexQuote (2675) under it, and the facts a share line carries on EquityDefinitionV3 (9106) an index

line carries here. A key with a row here and no 9106 row is an index line. {Component} is what the index is

composed OF; indexType says which kind of composed-of line this is. A DERIVED line names what it derives from in

baseIndex and how in derivation, and has no components. Another calculator's level arrives under a

QUOTE PATH: a market-data key whose TickerKeyDefinitionV3 (9100) row is symbolType IndexQuote and up-links

here, with no row here and no complex. The official SOQ and close are IndexSettlementMark (3185) rows.

A DELIVERY BASKET is DeliveryBasketDefinitionV3 (9169), not a row here. indexType DeliveryBasket is retired in

place: no producer writes it and the bridge check names a row that still carries it.

A DIVIDEND LINE has derivation DividendPoints: its level is the gross cash dividends of baseIndex since the

annual reset, in index points. An index's is the provider's published index under its own symbol; a share's

is minted by SR, keyed '~' + the share's symbol. Every dividend future names it as ticker, never the share or

price index - a dividend contract is not a share delta. indexType Dividend is retired in place.

METADATA​

AttributeValue
Topic9100-product-def-core
MLink TokenEquityDefinition
MLink EndpointMLink-Live
SRSE ProductSRReference

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

BODY​

#FieldTypeDefault ValueComment
10=tickerTickerKey
100indexTypeenum : IndexType
103namestring(32)
118divisordoublethe index divisor; absorbs corp actions and constituent changes
121baseLeveldouble
124baseDateDateKey
127flexTypeFlagflag : FlexTypeFlagFLEX series types that may be MINTED on this underlier; None = no FLEX. A FLEX order mints a root before any root exists
130priceFormatenum : PriceFormathow the level quotes
133minTickSizedoublethe level's smallest increment
136pointValuefloatthe index multiplier; 0 reads as 1
139pointCurrencystring(3)empty = the spine's primaryCurrency
142tradingPeriodenum : TradingPeriod-> TradingPeriodDefinitionV3 9015
145scheduleGroupstring(6)-> ScheduleDefinitionV3 9057; empty = '*'
148hasOptionsenum : YesNoHINT: subscription filter only - may lag the collection
151defaultRootTickerKeythe root the tools open by default
154linkedPrimaryFutureTickerKeythe future whose expiry bars drive this index's option chains
181cashPerUnitdoubleretired with indexType DeliveryBasket; a basket's cash is RootDefinitionV3.cashOnExercise
178timestampDateTime
900v3Sourceenum : V3Source
184baseIndexTickerKeythe index or share line this level derives from; empty for a composed or published level
187derivationenum : IndexDerivationhow the level derives from baseIndex; None = not derived

REPEATING FIELDS​

Component

#FieldTypeDefault ValueComment
109symbolTickerKey
112weightfloat
115weightTypeenum : IndexWeightType

QuotePath

#FieldTypeDefault ValueComment
160quoteKeyTickerKeythe key the level arrives under (IndexQuote 2675); its spine row is IndexQuote, up-linking here
163kindenum : QuotePathKind
166sourcestring(16)who publishes or computes it: an exchange or calculator code, or SR
169methodenum : QuotePathMethodModel paths: how the level is built
172sourceTickerTickerKeyModel paths: the ETF, index or root set the components are drawn from
175formulastring(128)Model paths: the expression, where method needs one

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 = 'IndexDefinitionV3'

# 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 = 'IndexDefinitionV3'

# 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 = 'indexType|name|divisor|baseLevel|baseDate|flexTypeFlag|priceFormat|minTickSize|pointValue|pointCurrency|tradingPeriod|scheduleGroup|hasOptions|defaultRoot|linkedPrimaryFuture|cashPerUnit|timestamp|v3Source|baseIndex|derivation'

# 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 = 'name: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 = 'IndexDefinitionV3'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'indexType|name|divisor|baseLevel|baseDate|flexTypeFlag|priceFormat|minTickSize|pointValue|pointCurrency|tradingPeriod|scheduleGroup|hasOptions|defaultRoot|linkedPrimaryFuture|cashPerUnit|timestamp|v3Source|baseIndex|derivation'

# 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 = 'name: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 = 'indexType: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 = 'IndexDefinitionV3'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'indexType|name|divisor|baseLevel|baseDate|flexTypeFlag|priceFormat|minTickSize|pointValue|pointCurrency|tradingPeriod|scheduleGroup|hasOptions|defaultRoot|linkedPrimaryFuture|cashPerUnit|timestamp|v3Source|baseIndex|derivation'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'indexType|priceFormat|tradingPeriod|hasOptions|v3Source|derivation'

# 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 = 'name: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 = 'IndexDefinitionV3'

# 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 = 'name: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)