Skip to main content
Version: Upcoming

Schema: SpdrParentLimit (ID: 4090)

SpdrParentLimit records are supplied by clients (via SRSE) for use with parent orders having orderLimitType=Aux. This table can be updated either before or after a parent order begins working and will influence the limit(s) used when working child orders. Updates to this table do not constitute cancel/replace operations for the parent order.

METADATA

AttributeValue
Topic3985-parent-orders
MLink TokenClientTrading
SRSE ProductSRTrade

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

BODY

#FieldTypeComment
10=accntstring(16)
11=secKeyOptionKey
12=secTypeenum : SpdrKeyType
13=spdrSourceenum : SpdrSource
14=orderSideenum : BuySell
15=groupingCodelong
16=clientFirmstring(16)SR client firm
100sysEnvironmentenum : SysEnvironmentoriginal (source) sys environment [Stable, Current, etc]
103runStatusenum : RunStatusoriginal (source) run status [Prod,Beta]
106orderActiveSizeintOrderActiveSize = -1 will use all available parent order size; OrderActiveSize = 0 will cancel any existing child orders;
109addCumFillQuantityenum : YesNoIf Yes then OrderActiveSize is calculated @ order arrival as requested OrderActiveSize + existing 'CumFillQuantity'.
112orderLimitTypeenum : SpdrLimitType
115takeLimitClassenum : SpdrLimitClassSimple = LimitPrice, Surface = BEST(LimitPrice, SurfLimit), Probability = BEST(LimitPrice, ProbLimit)
118makeLimitClassenum : SpdrLimitClassSimple = LimitPrice, Surface = BEST(LimitPrice, SurfLimit), Probability = BEST(LimitPrice, ProbLimit)
121orderPrcLimitdoubleApplies if LimitType = Prc[]
124orderRefUPrcdoubledefault=underlier.mid
127orderRefDeltafloatdefault=option.delta
130orderRefGammafloatdefault=option.gamma
133orderVolLimitfloatApplies if LimitType = Vol[] [uses SR dividends and borrow rates]
136rateOverridefloat(depricated) zero = ignore;> zero = override
139sdivOverridefloat(depricated)
142ddivOverridetext1(depricated) discrete dividend string override ([yearsToExpiry,divYears:divAmount,divYears:divAmount, ...])
145overrideCodeenum : OverrideCode(depricated)
148orderPrcOffsetdoubledefault=0
151stateModelenum : StateModel
154uStateModelenum : StateModel
157takeAlphaTypeenum : AlphaTypeApplies if takeLimitClass = Probability
160makeAlphaTypeenum : AlphaTypeApplies if makeLimitClass = Probability
163takeAlphaFactorfloat[-2,+2] takeProbLimit = MAX(takeProbability, takeProbAvg + takeAlphaFactor * takeProbStd) [if AlphaType = Relative]
166makeAlphaFactorfloat[-2,+2] makeProbLimit = MAX(makeProbability, makeProbAvg + makeAlphaFactor * makeProbStd) [if AlphaType = Relative]
169takeProbabilityfloattakeProbLimit = takeProbability [if AlphaType = Static]
172makeProbabilityfloatmakeProbLimit = makeProbability [if AlphaType = Static]
175takeSurfPrcOffsetdoubledefault=0
178takeSurfVolOffsetfloatdefault=0
181takeSurfWidthOffsetfloat[-1.x to +1.x] -1.0 = -0.5 * avgMktWidth, +1.0 = +0.5 * avgMktWidth
184makeSurfPrcOffsetdoubledefault=0
187makeSurfVolOffsetfloatdefault=0
190makeSurfWidthOffsetfloat[-1.x to +1.x] -1.0 = -0.5 * avgMktWidth, +1.0 = +0.5 * avgMktWidth
193orderRefEventMultfloat
196orderRefEventDttmDateTime
199exchMaskuinteligible exchanges (0 = all), a non-zero mask must be in the subset of the SpdrParentOrder exchMask
401cxlUPrcRangeenum : UPrcCxlcancel parent order if/when outside the uPrice range [ _Halt = also cancel if halted ]
402minUBidfloat[optional]
403maxUAskfloat[optional] (< $0.01 = none)
404minMaxTypeenum : MinMaxTypeif Prc minUBid/maxUAsk are expressed as prices; if Pct then they are expresses as pct change since parent order arrival
405minOptionPxfloat[optional] option price floor for tied to stock orders
205startDttmDateTime
406activeDurationint[optional] (number of seconds)
214progressExposeTimeintminimum time (secs) to expose order (0 = no minimum; used to guarantee that the order is exposed at mid-market for some time before actively taking) (If the order is an Alpha type order, updating this will reset the alpha progression)
241expDayWtVegaOffsetfloatmax acct+symbol day wtVega offset (target)
235maxExpDayWtVegaLnfloatmax accnt+expiration day (time weighted) vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
238maxExpDayWtVegaShfloatmax accnt+expiration day (time weighted) vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
271maxExpDayRMetric6Lnfloatmax acct+expiration day rMetric6 long (positive number;-1=no limit);risk limit = max limit - current net counter
274maxExpDayRMetric6Shfloatmax acct+expiration day rMetric6 short (positive number;-1=no limit);risk limit = max limit + current net counter
268symDayDDeltaOffsetfloatmax acct+symbol day $delta offset (target)
262maxSymDayDDeltaLnfloatmax acct+symbol day $delta long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
265maxSymDayDDeltaShfloatmax acct+symbol day $delta short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
250symDayVegaOffsetfloatmax acct+symbol day vega offset (target)
244maxSymDayVegaLnfloatmax acct+symbol day vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
247maxSymDayVegaShfloatmax acct+symbol day vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
259symDayWtVegaOffsetfloatmax acct+symbol day wtVega offset (target)
253maxSymDayWtVegaLnfloatmax acct+symbol day (time weighted) vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
256maxSymDayWtVegaShfloatmax acct+symbol day (time weighted) vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
280maxSymDayRMetric7Lnfloatmax acct+symbol day rMetric7 long (positive number;-1=no limit);risk limit = max limit - current net counter
283maxSymDayRMetric7Shfloatmax acct+symbol day rMetric7 short (positive number;-1=no limit);risk limit = max limit + current net counter
289maxGrpDayDDeltaLnfloatmax acct+riskGroup day $delta long (positive number;-1=no limit);risk limit = max limit - current net counter
292maxGrpDayDDeltaShfloatmax acct+riskGroup day $delta short (positive number;-1=no limit);risk limit = max limit + current net counter
298maxGrpDayVegaLnfloatmax acct+riskGroup day vega long (positive number;-1=no limit);risk limit = max limit - current net counter
301maxGrpDayVegaShfloatmax acct+riskGroup day vega short (positive number;-1=no limit);risk limit = max limit + current net counter
304maxGrpDayVegaAbsfloatmax acct+riskGroup day vega abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
307grpDayVegaRatiofloattarget bot / sld ratio (eg ratio=2.0 means that neutral is bot vega = 2x sld vega)
358maxGrpDayContractsLnintmax acct+riskGroup day opt contracts long (positive number;-1=no limit);risk limit = max limit - current net counter
361maxGrpDayContractsShintmax acct+riskGroup day opt contracts short (positive number;-1=no limit);risk limit = max limit + current net counter
364maxGrpDayContractsAbsintmax acct+riskGroup day opt contracts abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
322maxGrpDayRMetric1Lnfloatmax acct+riskGroup day rMetric1 long (positive number;-1=no limit);risk limit = max limit - current net counter
325maxGrpDayRMetric1Shfloatmax acct+riskGroup day rMetric1 short (positive number;-1=no limit);risk limit = max limit + current net counter
328maxGrpDayRMetric1Absfloatmax acct+riskGroup day rMetric1 abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
331grpDayRMetric1Ratiofloattarget bot / sld ratio (eg ratio=0.5 means that neutral is bot rMetric1 = 0.5x sld rMetric1)
334maxGrpDayRMetric2Lnfloatmax acct+riskGroup day rMetric2 long (positive number;-1=no limit);risk limit = max limit - current net counter
337maxGrpDayRMetric2Shfloatmax acct+riskGroup day rMetric2 short (positive number;-1=no limit);risk limit = max limit + current net counter
340maxGrpDayRMetric3Lnfloatmax acct+riskGroup day rMetric3 long (positive number;-1=no limit);risk limit = max limit - current net counter
343maxGrpDayRMetric3Shfloatmax acct+riskGroup day rMetric3 short (positive number;-1=no limit);risk limit = max limit + current net counter
346maxGrpDayRMetric4Lnfloatmax acct+riskGroup day rMetric4 long (positive number;-1=no limit);risk limit = max limit - current net counter
349maxGrpDayRMetric4Shfloatmax acct+riskGroup day rMetric4 short (positive number;-1=no limit);risk limit = max limit + current net counter
352maxGrpDayRMetric5Lnfloatmax acct+riskGroup day rMetric5 long (positive number;-1=no limit);risk limit = max limit - current net counter
355maxGrpDayRMetric5Shfloatmax acct+riskGroup day rMetric5 short (positive number;-1=no limit);risk limit = max limit + current net counter
367symEmaCxlDDeltaLnfloatmax acct+symbol 60s EMA $delta long (positive number; <= 0 is no limit) [will immediately cxl all option orders in a symbol if any order in the symbol breaches]
370symEmaCxlDDeltaShfloatmax acct+symbol 60s EMA $delta short (positive number; <= 0 is no limit)
373symEmaCxlWtVegaLnfloatmax acct+symbol 60s EMA wtVega long (positive number; <= 0 is no limit) [will immediately cxl all option orders in a symbol if any order in the symbol breaches]
376symEmaCxlWtVegaShfloatmax acct+symbol 60s EMA wtVega short (positive number; <= 0 is no limit)
379theoVolfloatclient supplied theoretical volatility (used for markup only)
382clArriveMarkfloatclient specified arrival mark (passed through to ParentExecution; markup only)
385userData1text1client supplied data field; passes through to parent and child executions and reports as well as FIX drops
388userData2text1client supplied data field; passes through to parent and child executions and reports as well as FIX drops
407execBrkrCodestring(16)an SR assigned execBrkrCode
394modifiedBystring(24)user who last modified this record
397modifiedInenum : SysEnvironment
400timestampDateTimetimestamp of last modification

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

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

# 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 = 'sysEnvironment|runStatus|orderActiveSize|addCumFillQuantity|orderLimitType|takeLimitClass|makeLimitClass|orderPrcLimit|orderRefUPrc|orderRefDelta|orderRefGamma|orderVolLimit|rateOverride|sdivOverride|ddivOverride|overrideCode|orderPrcOffset|stateModel|uStateModel|takeAlphaType|makeAlphaType|takeAlphaFactor|makeAlphaFactor|takeProbability|makeProbability|takeSurfPrcOffset|takeSurfVolOffset|takeSurfWidthOffset|makeSurfPrcOffset|makeSurfVolOffset|makeSurfWidthOffset|orderRefEventMult|orderRefEventDttm|exchMask|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|startDttm|activeDuration|progressExposeTime|expDayWtVegaOffset|maxExpDayWtVegaLn|maxExpDayWtVegaSh|maxExpDayRMetric6Ln|maxExpDayRMetric6Sh|symDayDDeltaOffset|maxSymDayDDeltaLn|maxSymDayDDeltaSh|symDayVegaOffset|maxSymDayVegaLn|maxSymDayVegaSh|symDayWtVegaOffset|maxSymDayWtVegaLn|maxSymDayWtVegaSh|maxSymDayRMetric7Ln|maxSymDayRMetric7Sh|maxGrpDayDDeltaLn|maxGrpDayDDeltaSh|maxGrpDayVegaLn|maxGrpDayVegaSh|maxGrpDayVegaAbs|grpDayVegaRatio|maxGrpDayContractsLn|maxGrpDayContractsSh|maxGrpDayContractsAbs|maxGrpDayRMetric1Ln|maxGrpDayRMetric1Sh|maxGrpDayRMetric1Abs|grpDayRMetric1Ratio|maxGrpDayRMetric2Ln|maxGrpDayRMetric2Sh|maxGrpDayRMetric3Ln|maxGrpDayRMetric3Sh|maxGrpDayRMetric4Ln|maxGrpDayRMetric4Sh|maxGrpDayRMetric5Ln|maxGrpDayRMetric5Sh|symEmaCxlDDeltaLn|symEmaCxlDDeltaSh|symEmaCxlWtVegaLn|symEmaCxlWtVegaSh|theoVol|clArriveMark|userData1|userData2|execBrkrCode|modifiedBy|modifiedIn|timestamp'

# 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 = 'accnt: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 = 'SpdrParentLimit'

# Replace with your desired view. A "|" separated list of views can be provided
# If no view is provided, all views will be returned
VIEW = 'sysEnvironment|runStatus|orderActiveSize|addCumFillQuantity|orderLimitType|takeLimitClass|makeLimitClass|orderPrcLimit|orderRefUPrc|orderRefDelta|orderRefGamma|orderVolLimit|rateOverride|sdivOverride|ddivOverride|overrideCode|orderPrcOffset|stateModel|uStateModel|takeAlphaType|makeAlphaType|takeAlphaFactor|makeAlphaFactor|takeProbability|makeProbability|takeSurfPrcOffset|takeSurfVolOffset|takeSurfWidthOffset|makeSurfPrcOffset|makeSurfVolOffset|makeSurfWidthOffset|orderRefEventMult|orderRefEventDttm|exchMask|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|startDttm|activeDuration|progressExposeTime|expDayWtVegaOffset|maxExpDayWtVegaLn|maxExpDayWtVegaSh|maxExpDayRMetric6Ln|maxExpDayRMetric6Sh|symDayDDeltaOffset|maxSymDayDDeltaLn|maxSymDayDDeltaSh|symDayVegaOffset|maxSymDayVegaLn|maxSymDayVegaSh|symDayWtVegaOffset|maxSymDayWtVegaLn|maxSymDayWtVegaSh|maxSymDayRMetric7Ln|maxSymDayRMetric7Sh|maxGrpDayDDeltaLn|maxGrpDayDDeltaSh|maxGrpDayVegaLn|maxGrpDayVegaSh|maxGrpDayVegaAbs|grpDayVegaRatio|maxGrpDayContractsLn|maxGrpDayContractsSh|maxGrpDayContractsAbs|maxGrpDayRMetric1Ln|maxGrpDayRMetric1Sh|maxGrpDayRMetric1Abs|grpDayRMetric1Ratio|maxGrpDayRMetric2Ln|maxGrpDayRMetric2Sh|maxGrpDayRMetric3Ln|maxGrpDayRMetric3Sh|maxGrpDayRMetric4Ln|maxGrpDayRMetric4Sh|maxGrpDayRMetric5Ln|maxGrpDayRMetric5Sh|symEmaCxlDDeltaLn|symEmaCxlDDeltaSh|symEmaCxlWtVegaLn|symEmaCxlWtVegaSh|theoVol|clArriveMark|userData1|userData2|execBrkrCode|modifiedBy|modifiedIn|timestamp'

# 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 = 'accnt: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 = 'sysEnvironment: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 = 'SpdrParentLimit'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'sysEnvironment|runStatus|orderActiveSize|addCumFillQuantity|orderLimitType|takeLimitClass|makeLimitClass|orderPrcLimit|orderRefUPrc|orderRefDelta|orderRefGamma|orderVolLimit|rateOverride|sdivOverride|ddivOverride|overrideCode|orderPrcOffset|stateModel|uStateModel|takeAlphaType|makeAlphaType|takeAlphaFactor|makeAlphaFactor|takeProbability|makeProbability|takeSurfPrcOffset|takeSurfVolOffset|takeSurfWidthOffset|makeSurfPrcOffset|makeSurfVolOffset|makeSurfWidthOffset|orderRefEventMult|orderRefEventDttm|exchMask|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|startDttm|activeDuration|progressExposeTime|expDayWtVegaOffset|maxExpDayWtVegaLn|maxExpDayWtVegaSh|maxExpDayRMetric6Ln|maxExpDayRMetric6Sh|symDayDDeltaOffset|maxSymDayDDeltaLn|maxSymDayDDeltaSh|symDayVegaOffset|maxSymDayVegaLn|maxSymDayVegaSh|symDayWtVegaOffset|maxSymDayWtVegaLn|maxSymDayWtVegaSh|maxSymDayRMetric7Ln|maxSymDayRMetric7Sh|maxGrpDayDDeltaLn|maxGrpDayDDeltaSh|maxGrpDayVegaLn|maxGrpDayVegaSh|maxGrpDayVegaAbs|grpDayVegaRatio|maxGrpDayContractsLn|maxGrpDayContractsSh|maxGrpDayContractsAbs|maxGrpDayRMetric1Ln|maxGrpDayRMetric1Sh|maxGrpDayRMetric1Abs|grpDayRMetric1Ratio|maxGrpDayRMetric2Ln|maxGrpDayRMetric2Sh|maxGrpDayRMetric3Ln|maxGrpDayRMetric3Sh|maxGrpDayRMetric4Ln|maxGrpDayRMetric4Sh|maxGrpDayRMetric5Ln|maxGrpDayRMetric5Sh|symEmaCxlDDeltaLn|symEmaCxlDDeltaSh|symEmaCxlWtVegaLn|symEmaCxlWtVegaSh|theoVol|clArriveMark|userData1|userData2|execBrkrCode|modifiedBy|modifiedIn|timestamp'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'sysEnvironment|runStatus|addCumFillQuantity|orderLimitType|takeLimitClass|makeLimitClass|overrideCode|stateModel|uStateModel|takeAlphaType|makeAlphaType|cxlUPrcRange|minMaxType|modifiedIn'

# 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 = 'accnt: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 = 'SpdrParentLimit'

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

Post 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'

# Request Parameters
params = {
# Required Parameters
"apiKey": API_KEY,
"cmd": 'postmsgs',
"postaction": "I", # (I)nsert, (U)pdate, (R)eplace, or (D)elete
"postmerge": "Y", # (Y)es or (N)o
}

payload = {
"header": {
"mTyp": "SpdrParentLimit"
},
"message": {
"pkey": {
"accnt": "exampleString", // string
"secKey": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"spdrSource": "enumValue", // enum(SpdrSource) - None, SpdrTicket, SpdrSingle, SRSE, FIX, HedgeTool, TradeHedge, OpenHedge, AutoHedge, Orphan, RiskManager, OrderManager, ManagedOrder, RFQRespSrvr, Legger, SRSEDrop, FixDrop, TicketDrop, SysTest, RFRResponse, AllocOmni, AllocClient, CertGateway, MLegResponse, LeggerX, DropManager, AutoHedgeSrvr, AuctionStrategySrvr, AllocBlockFace, AllocBlockCust, IceChatGateway, EXS2SRC, MLinkResponse, AutoResponderVD, AutoResponderRC, AutoResponderSN, AutoResponderBX, MLink
"orderSide": "enumValue", // enum(BuySell) - None, Buy, Sell
"groupingCode": 1, // long
"clientFirm": "exampleString" // string
},
"sysEnvironment": "enumValue", // enum(SysEnvironment) - None, Neptune, Pluto, V7_Stable, V7_Latest, Saturn, Venus, Mars, SysTest, V7_Current
"runStatus": "enumValue", // enum(RunStatus) - None, Prod, Beta, UAT, SysTest
"orderActiveSize": 1, // int
"addCumFillQuantity": "enumValue", // enum(YesNo) - None, Yes, No
"orderLimitType": "enumValue", // enum(SpdrLimitType) - None, Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, NoLimit, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn, PrcDeEm, VolEm, Aux, UPrcPct, PkgNeutral, RcPrem, SynthLimitMM, SynthLimitBW, SynthLimitWW
"takeLimitClass": "enumValue", // enum(SpdrLimitClass) - Simple, Surface, Probability, SurfProb
"makeLimitClass": "enumValue", // enum(SpdrLimitClass) - Simple, Surface, Probability, SurfProb
"orderPrcLimit": 1.0, // double
"orderRefUPrc": 1.0, // double
"orderRefDelta": 1.0, // float
"orderRefGamma": 1.0, // float
"orderVolLimit": 1.0, // float
"rateOverride": 1.0, // float
"sdivOverride": 1.0, // float
"ddivOverride": "exampleString", // text1
"overrideCode": "enumValue", // enum(OverrideCode) - None, SDivOnly, DDivOnly, Both
"orderPrcOffset": 1.0, // double
"stateModel": "enumValue", // enum(StateModel) - None, M1, M2, M3, M4
"uStateModel": "enumValue", // enum(StateModel) - None, M1, M2, M3, M4
"takeAlphaType": "enumValue", // enum(AlphaType) - None, Static, Eagle, Hawk, Falcon, Relative
"makeAlphaType": "enumValue", // enum(AlphaType) - None, Static, Eagle, Hawk, Falcon, Relative
"takeAlphaFactor": 1.0, // float
"makeAlphaFactor": 1.0, // float
"takeProbability": 1.0, // float
"makeProbability": 1.0, // float
"takeSurfPrcOffset": 1.0, // double
"takeSurfVolOffset": 1.0, // float
"takeSurfWidthOffset": 1.0, // float
"makeSurfPrcOffset": 1.0, // double
"makeSurfVolOffset": 1.0, // float
"makeSurfWidthOffset": 1.0, // float
"orderRefEventMult": 1.0, // float
"orderRefEventDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"exchMask": 1, // uint
"cxlUPrcRange": "enumValue", // enum(UPrcCxl) - None, Yes, No, YesHalt, NoHalt
"minUBid": 1.0, // float
"maxUAsk": 1.0, // float
"minMaxType": "enumValue", // enum(MinMaxType) - None, Prc, Pct
"minOptionPx": 1.0, // float
"startDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"activeDuration": 1, // int
"progressExposeTime": 1, // int
"expDayWtVegaOffset": 1.0, // float
"maxExpDayWtVegaLn": 1.0, // float
"maxExpDayWtVegaSh": 1.0, // float
"maxExpDayRMetric6Ln": 1.0, // float
"maxExpDayRMetric6Sh": 1.0, // float
"symDayDDeltaOffset": 1.0, // float
"maxSymDayDDeltaLn": 1.0, // float
"maxSymDayDDeltaSh": 1.0, // float
"symDayVegaOffset": 1.0, // float
"maxSymDayVegaLn": 1.0, // float
"maxSymDayVegaSh": 1.0, // float
"symDayWtVegaOffset": 1.0, // float
"maxSymDayWtVegaLn": 1.0, // float
"maxSymDayWtVegaSh": 1.0, // float
"maxSymDayRMetric7Ln": 1.0, // float
"maxSymDayRMetric7Sh": 1.0, // float
"maxGrpDayDDeltaLn": 1.0, // float
"maxGrpDayDDeltaSh": 1.0, // float
"maxGrpDayVegaLn": 1.0, // float
"maxGrpDayVegaSh": 1.0, // float
"maxGrpDayVegaAbs": 1.0, // float
"grpDayVegaRatio": 1.0, // float
"maxGrpDayContractsLn": 1, // int
"maxGrpDayContractsSh": 1, // int
"maxGrpDayContractsAbs": 1, // int
"maxGrpDayRMetric1Ln": 1.0, // float
"maxGrpDayRMetric1Sh": 1.0, // float
"maxGrpDayRMetric1Abs": 1.0, // float
"grpDayRMetric1Ratio": 1.0, // float
"maxGrpDayRMetric2Ln": 1.0, // float
"maxGrpDayRMetric2Sh": 1.0, // float
"maxGrpDayRMetric3Ln": 1.0, // float
"maxGrpDayRMetric3Sh": 1.0, // float
"maxGrpDayRMetric4Ln": 1.0, // float
"maxGrpDayRMetric4Sh": 1.0, // float
"maxGrpDayRMetric5Ln": 1.0, // float
"maxGrpDayRMetric5Sh": 1.0, // float
"symEmaCxlDDeltaLn": 1.0, // float
"symEmaCxlDDeltaSh": 1.0, // float
"symEmaCxlWtVegaLn": 1.0, // float
"symEmaCxlWtVegaSh": 1.0, // float
"theoVol": 1.0, // float
"clArriveMark": 1.0, // float
"userData1": "exampleString", // text1
"userData2": "exampleString", // text1
"execBrkrCode": "exampleString", // string
"modifiedBy": "exampleString", // string
"modifiedIn": "enumValue", // enum(SysEnvironment) - None, Neptune, Pluto, V7_Stable, V7_Latest, Saturn, Venus, Mars, SysTest, V7_Current
"timestamp": "2025-01-01 12:00:00.000000" // yyyy-MM-dd HH:mm:ss.SSSSSS
}
}

response = requests.post(MLINK_PROD_URL, params=params, json=payload)