Skip to main content
Version: Upcoming

Schema: SpdrParentOrder (ID: 4095)

SpdrParentOrder records are visible in SRSE immediately after receipt. Parent orders received via FIX, SRSE or SpiderRock GUI tools, or 3rd party vendor systems are all visible in this table.

Parent orders can be for stocks, futures, options or spreads. And they can be one-sided (agency) or two-sided (facilitation) orders. Parent order records should be immutable and not update.

SpdrParentOrder records are published to the SpiderRock elatic cluster on arrival.

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

#FieldTypeDefault ValueComment
10=parentNumberlongSPDR order number
100sysEnvironmentenum : SysEnvironmentoriginal (source) sys environment [Stable, Current, etc]
103runStatusenum : RunStatusoriginal (source) run status [Prod,Beta]
106spdrActionTypeenum : SpdrActionType
109parentShapeenum : SpdrOrderShape
112clientSeqNumInintinbound client seq number (FIX orders only)
115altOrderIdstring(24)alternate order ID (usually clOrdId from client)
118altPrevOrderIdstring(24)alternate prev order ID (usually origClOrdId from client during cxl/replace)
124altAutoHedgeIdstring(24)alternate order ID for child autohedge orders (if any)
127altAccntstring(32)alternate (client assigned) "long" account string (optional) [used to map between client and SR account strings]
130altUserNamestring(24)alternate (client assigned) user name (optional) [used to map between client and SR account strings]
133srcRoutingCodetext1inbound FIX routing code or SRSE/tool server appID (if any)
136packageIdlongreferences spread orderNumber, if a legged spread order or auto-hedge order
139secKeyOptionKeyComposite Security Key
142secTypeenum : SpdrKeyTypeSecurity Type [Stock, Future, Option]
145securityDesctext1additional security description
148accntstring(16)SR trading account
151clientFirmstring(16)SR client firm
1045strategyAccntstring(16)SR strategy account (option; if exists will be validated)
154spdrSourceenum : SpdrSource
157groupingCodelongunique broker code;broker.pkey = (key + accnt + spdrSource + groupingCode)
1039execBrkrCodestring(16)overrides the default executing broker for this parent order
1040externExDeststring(16)routing code for orders directed to an external order router (default = null); must match an exDest associated with a RouteDefinition
166externParamstext1external algo names/parameters (usually just an algo name)
169strategystring(36)client-supplied strategy string;visible on SpiderRock GUI tools and other order reports.
172userNamestring(24)name of the user entering the order
1047visibleInSVenum : YesNoallow order to be visible in SV (do not use for high volume of orders)
1031userSourceenum : SpdrSourceSpdrSource of this order (assumed to be the same as spdrSource if None)
178orderDttmDateTimeorder entry time (from client;if any)
181orderSideenum : BuySell
184orderSizeintmaximum fill size (contracts)
187orderActiveSizeinttotal activated size (total size released for execution) (-1 = all available size)
190curCumFillQuantityintset order size = orderSize - Max(0, curCumFillQty - ee.cumFillQty) (used to ensure integrity of submitted cxl/replace orders)
193addCumFillQuantityenum : YesNoIf Yes then OrderSize is calculated @ order arrival as requested OrderSize + existing 'CumFillQuantity'.
196maxExposureSizeintmaximum simultaneous cumulative child order public size exposure (-1 = orderActiveSize) [order can overfill if > orderActiveSize and numMakeExchanges > 1]
199numMakeExchangesbytenumber of exchanges (1 - 4) on which to publish public making orders. Effective number might be less than requested number if sufficient exchanges are not available.
202publicSizeenum : PublicSizeHandlingpublic order size handling: None=algo default; Randomize=randomize public size; MktSize=expose typical market size; FullSize=expose entire order size where possible; FullSizeR=randomize full size
205canOverlapCxlReplenum : YesNocan execution engines overlap cancel/replace operations [order can overfill if YES] (at most one active overlapping cxl/replace operation for each parent order)
208progressRuleenum : ProgressRuleImmediate = all size immediately available; TWAP = work from arrival to expiration; VWAP = work order not faster than participation rate
1067atsVisibilityenum : AtsVisibilityfor BlockAuction orders, visibility (to responders) is neither, side only, or side + price
214progressSliceCntbytenumber of slices to use (default = 4 or 8) [max 20]
217progressExposeTimeintminimum 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)
220vwapParticipationfloattarget vwap participation rate (target % of trade activity)
223minMktOnClosePctbyteMinimum pct [0 - 100] of order reserved for the on-close (MOC) auction
226triggerTypeenum : TriggerTypetype of trigger (PrintVol/SurfVol only for options) [print = print or actionable quote]
229triggerLevelfloatstop/trigger level for parent order to go active (can be either a price or vol)
232auctionResponderenum : AuctionResponderif set, parent order can be an auction responder
235maxMakeExchFeefloatmaximum making exchange fee (in point value) [zero = no limit; use non-zero number for limit to apply]
238maxTakeExchFeefloatmaximum taking exchange fee (in point value) [zero = no limit; use non-zero number for limit to apply]
241incTakeExchFeeenum : IncExchFeeinclude exchange fee in probability and surface based take limit calculations
244incMakeExchFeeenum : IncExchFeeinclude exchange fee in probability and surface based make limit calculations
247makeExchRuleenum : MakeExchRuleActiveMaker exch preference: 'MaxPart' = max participation; 'FeeOrder' = minimize fees [max rebates]; 'ImprvOnly' will only make when improving NBBO; 'RoundRobin' will rotate through exch list; 'ProRataOptim' will post on pro-rata only.
250cxlUPrcRangeenum : UPrcCxlcancel parent order if/when outside the uPrice range [ _Halt = also cancel if halted ]
253minUBidfloat[optional]
256maxUAskfloat[optional] (< $0.01 = none)
259minMaxTypeenum : MinMaxTypeif Prc minUBid/maxUAsk are expressed as prices; if Pct then they are expresses as pct change since parent order arrival
262minOptionPxfloat[optional] option price floor for tied to stock orders
265maxChildOrdersintmaximum number of child orders that can be generated by this parent order [order will terminate if/when this cap is reached;zero or neg = unlimited]
1048exchMasklongeligible exchanges (0 = all)
271spdrStageTypeenum : SpdrStageTypenote: stageType != None implies both KeepAlive behavior and makes the order visible on tools
1032marketSessionenum : MarketSession
277startDttmDateTime[optional] (parent order start time)
280orderDurationint[optional] (number of seconds)
1033activeDurationint
283goodTillDttmDateTime[optional] (default: 2099-01-01)
286startTypeenum : StartTypeWaitTrigger associates this order with a triggerGroupId. The initial wave of child orders from the TriggerGroup will be send when a (final) parent order with startType=TriggerAll or when an external trigger signal is received.
289triggerGroupIdlongtriggerGroupId is required if startType=WaitTrigger; note that child orders from all parent orders in the trigger group will be organized and released optimally when the triggerGroup is released
292triggerTimestamplongWaitTrigger trigger timestamp (nanoseconds since epoch)
298parentOrderHandlingenum : ParentOrderHandling
301parentBalanceHandlingenum : ParentBalanceHandling
304orderLimitTypeenum : SpdrLimitType
307takeLimitClassenum : SpdrLimitClassSimple = LimitPrice +/- offset, Surface = BEST(LimitPrice, SurfLimit), Probability = BEST(LimitPrice, ProbLimit), SurfProb = BEST(LimitPrice, SurfLimit, ProbLimit)
310makeLimitClassenum : SpdrLimitClassSimple = LimitPrice +/- offset, Surface = BEST(LimitPrice, SurfLimit), Probability = BEST(LimitPrice, ProbLimit), SurfProb = BEST(LimitPrice, SurfLimit, ProbLimit)
313takeReachRuleenum : ReachRuleNone = size immediately available; Delayed = available after [1-3] seconds; Passive = available if contra side aggresses; WeakOnly = only take if available size < avgMarketSize; ISOSweep = Intermarket Sweep [requires WaitTrigger]
316orderPrcLimitdoubleApplies if LimitType = Prc[]
319orderRefUPrcdoubledefault=underlier.mid
322orderRefDeltafloatdefault=option.delta
325orderRefGammafloatdefault=option.gamma
328orderVolLimitfloatApplies if LimitType = Vol[] [uses SR dividends and borrow rates]
331rateOverridefloatzero = ignore; > zero = override
334sdivOverridefloat
337ddivOverridetext1discrete dividend string override ([yearsToExpiry,divYears:divAmount,divYears:divAmount, ...])
340overrideCodeenum : OverrideCode
343orderPrcOffsetdoubledefault=0 [surface, relX and pegX limit offsets]
346stateModelenum : StateModel
349uStateModelenum : StateModel
352takeAlphaTypeenum : AlphaTypeApplies if takeLimitClass = Probability
355makeAlphaTypeenum : AlphaTypeApplies if makeLimitClass = Probability
358takeAlphaFactorfloat[-2,+2] takeProbLimit = MAX(takeProbability, takeProbAvg + takeAlphaFactor * takeProbStd) [if AlphaType = Relative]
361makeAlphaFactorfloat[-2,+2] makeProbLimit = MAX(makeProbability, makeProbAvg + makeAlphaFactor * makeProbStd) [if AlphaType = Relative]
364takeProbabilityfloattakeProbLimit = takeProbability [if AlphaType = Static]
367makeProbabilityfloatmakeProbLimit = makeProbability [if AlphaType = Static]
370takeSurfPrcOffsetdoubledefault=0
373takeSurfVolOffsetfloatdefault=0
376takeSurfWidthOffsetfloat[-1.x to +1.x] -1.0 = -0.5 * avgMktWidth, +1.0 = +0.5 * avgMktWidth
379makeSurfPrcOffsetdoubledefault=0
382makeSurfVolOffsetfloatdefault=0
385makeSurfWidthOffsetfloat[-1.x to +1.x] -1.0 = -0.5 * avgMktWidth, +1.0 = +0.5 * avgMktWidth
388orderRefEventMultfloatexpected underlier abs move (0.01 = 1%) @ orderRefEventDttm
391orderRefEventDttmDateTimeDate/time of the next event. Note that events are usually earnings but are not required to be.
1044nbboCapenum : NbboCapindicates if order price is capped at NBBO (or 1, 5, 10 pennies through). Primarily for when parentOrderHandling = BlockAuction
394autoHedgeenum : AutoHedge
397hedgeInstrumentenum : HedgeInstDefaultDefault=actual underlier (EQT or FUT) [IndexOptions use ETF]; FrontMonth=actual underlier (EQT) or front month (FUT) [IndexOptions use FM Fut]; Stock=hedgeSecKey.TickerKey; Future=hedgeSecKey.ExpiryKey
400hedgeSecKeyExpiryKeyautohedge instrument (can be a TickerKey (stock) or ExpiryKey (future)) [required for Stock and Future]
403hedgeBetaRatiofloatportion of executed $money to auto-hedge (can be 1.0 / Beta for beta hedging) [-4.0 to +4.0]
406hedgeScopeenum : HedgeScopehedge group scope [RiskGroup or Accnt]
1034hedgeSessionenum : MarketSessionmarket session for the autohedge order [defaults to pOrder.marketSession]
1041externHedgeExDeststring(16)external broker exDest (only used if orderHandling=Extern) # Should match FixRoutingTable.destination type (eg. #Nighthawk)
415externHedgeParamstext1external algo names/parameters (usually just an algo name) # usually copied from the FixRoutingTable.externParams
1046hedgeFillUMarkLmtPrcenum : YesNoset a price limit on the autohedge order based on the most recent option fillUMark
418firmTypeenum : FirmTypeused to override firmType in account config
421orderCapacityenum : OrderCapacity
424positionTypeenum : PositionTypeAuto
427ssaleFlagenum : ShortSaleFlagused to determine stock auto-hedge flags
1042locateFirmstring(6)firm granting the locate (also locate firm used on street FIX orders) (required if selling short and no auto-locate is available)
1043locatePoolstring(16)locate pool @ firm granting the locate
430noCrossGroupstring(16)
433exchTraderIdstring(16)
436largeTraderIdstring(16)
439tradingLocationstring(16)
484leadSideenum : BuySellfor legged orders, which side to lead with. (optional, None ok)
487maxCompletionSlippagedoublemaximum price slippage to complete an open basket
490orderRefPremiumfloatreference premium (mleg orders only)
1038noticeNumberlongrequired when parentOrderHandling = BlockResponse
1049noticeCommissionfloat
1050hasNoticeCommenum : YesNo
1051pkgRefPremPctfloatBlockPCV: package premium as a % of underlier closing price (fixed by initiator)
496theoVolfloatclient supplied theoretical volatility (used for markup only)
499clArriveMarkfloatclient specified arrival mark (passed through to ParentExecution; markup only)
502riskGroupIdlongall orders with the same riskGroupId share a common set of risk counters;.Grp. risk limits apply to these shared counters
1036reqAuxRiskGroupCtrlenum : YesNo
442refRMetric1Srcenum : RMetricSource
445refRMetric2Srcenum : RMetricSource
448refRMetric3Srcenum : RMetricSource
451refRMetric4Srcenum : RMetricSource
454refRMetric5Srcenum : RMetricSource
457refRMetric6Srcenum : RMetricSource
460refRMetric7Srcenum : RMetricSource
463orderRefRMetric1floatuser supplied RMetric1 value (used in RiskGroupID risk controls) [netRMetric1 = sum(fillQty * orderRefRMetric1 * underlierPerCn)]
466orderRefRMetric2floatuser supplied RMetric2 value (used in RiskGroupID risk controls) [netRMetric2 = sum(fillQty * orderRefRMetric2 * underlierPerCn)]
469orderRefRMetric3floatuser supplied RMetric3 value (used in RiskGroupID risk controls) [netRMetric3 = sum(fillQty * orderRefRMetric3 * underlierPerCn)]
472orderRefRMetric4floatuser supplied RMetric4 value (used in RiskGroupID risk controls) [netRMetric4 = sum(fillQty * orderRefRMetric4 * underlierPerCn)]
475orderRefRMetric5floatuser supplied RMetric5 value (used in RiskGroupID risk controls) [netRMetric5 = sum(fillQty * orderRefRMetric5 * underlierPerCn)]
478orderRefRMetric6floatuser supplied RMetric6 value (used in ExpDay risk controls) [netRMetric6 = sum(fillQty * orderRefRMetric6 * underlierPerCn)]
481orderRefRMetric7floatuser supplied RMetric7 value (used in SymDay risk controls) [netRMetric7 = sum(fillQty * orderRefRMetric7 * underlierPerCn)]
529expDayWtVegaOffsetfloat-1max acct+symbol day wtVega offset (target)
523maxExpDayWtVegaLnfloat-1max accnt+expiration day (time weighted) vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
526maxExpDayWtVegaShfloat-1max accnt+expiration day (time weighted) vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
559maxExpDayRMetric6Lnfloat-1max acct+expiration day rMetric6 long (positive number;-1=no limit);risk limit = max limit - current net counter
562maxExpDayRMetric6Shfloat-1max acct+expiration day rMetric6 short (positive number;-1=no limit);risk limit = max limit + current net counter
556symDayDDeltaOffsetfloat-1max acct+symbol day $delta offset (target)
550maxSymDayDDeltaLnfloat-1max acct+symbol day $delta long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
553maxSymDayDDeltaShfloat-1max acct+symbol day $delta short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
538symDayVegaOffsetfloat-1max acct+symbol day vega offset (target)
532maxSymDayVegaLnfloat-1max acct+symbol day vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
535maxSymDayVegaShfloat-1max acct+symbol day vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
547symDayWtVegaOffsetfloat-1max acct+symbol day wtVega offset (target)
541maxSymDayWtVegaLnfloat-1max acct+symbol day (time weighted) vega long (positive number;-1=no limit);risk limit = max limit - (current net counter - offset)
544maxSymDayWtVegaShfloat-1max acct+symbol day (time weighted) vega short (positive number;-1=no limit);risk limit = max limit + (current net counter - offset)
568maxSymDayRMetric7Lnfloat-1max acct+symbol day rMetric7 long (positive number;-1=no limit);risk limit = max limit - current net counter
571maxSymDayRMetric7Shfloat-1max acct+symbol day rMetric7 short (positive number;-1=no limit);risk limit = max limit + current net counter
577maxGrpDayDDeltaLnfloat-1max acct+riskGroup day $delta long (positive number;-1=no limit);risk limit = max limit - current net counter
580maxGrpDayDDeltaShfloat-1max acct+riskGroup day $delta short (positive number;-1=no limit);risk limit = max limit + current net counter
586maxGrpDayVegaLnfloat-1max acct+riskGroup day vega long (positive number;-1=no limit);risk limit = max limit - current net counter
589maxGrpDayVegaShfloat-1max acct+riskGroup day vega short (positive number;-1=no limit);risk limit = max limit + current net counter
592maxGrpDayVegaAbsfloat-1max acct+riskGroup day vega abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
595grpDayVegaRatiofloat1.0target bot / sld ratio (eg ratio=2.0 means that neutral is bot vega = 2x sld vega)
646maxGrpDayContractsLnint-1max acct+riskGroup day opt contracts long (positive number;-1=no limit);risk limit = max limit - current net counter
649maxGrpDayContractsShint-1max acct+riskGroup day opt contracts short (positive number;-1=no limit);risk limit = max limit + current net counter
652maxGrpDayContractsAbsint-1max acct+riskGroup day opt contracts abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
610maxGrpDayRMetric1Lnfloat-1max acct+riskGroup day rMetric1 long (positive number;-1=no limit);risk limit = max limit - current net counter
613maxGrpDayRMetric1Shfloat-1max acct+riskGroup day rMetric1 short (positive number;-1=no limit);risk limit = max limit + current net counter
616maxGrpDayRMetric1Absfloat-1max acct+riskGroup day rMetric1 abs (positive number;-1=no limit);risk limit = max limit - abs(current net counter)
619grpDayRMetric1Ratiofloat1.0target bot / sld ratio (eg ratio=0.5 means that neutral is bot rMetric1 = 0.5x sld rMetric1)
622maxGrpDayRMetric2Lnfloat-1max acct+riskGroup day rMetric2 long (positive number;-1=no limit);risk limit = max limit - current net counter
625maxGrpDayRMetric2Shfloat-1max acct+riskGroup day rMetric2 short (positive number;-1=no limit);risk limit = max limit + current net counter
628maxGrpDayRMetric3Lnfloat-1max acct+riskGroup day rMetric3 long (positive number;-1=no limit);risk limit = max limit - current net counter
631maxGrpDayRMetric3Shfloat-1max acct+riskGroup day rMetric3 short (positive number;-1=no limit);risk limit = max limit + current net counter
634maxGrpDayRMetric4Lnfloat-1max acct+riskGroup day rMetric4 long (positive number;-1=no limit);risk limit = max limit - current net counter
637maxGrpDayRMetric4Shfloat-1max acct+riskGroup day rMetric4 short (positive number;-1=no limit);risk limit = max limit + current net counter
640maxGrpDayRMetric5Lnfloat-1max acct+riskGroup day rMetric5 long (positive number;-1=no limit);risk limit = max limit - current net counter
643maxGrpDayRMetric5Shfloat-1max acct+riskGroup day rMetric5 short (positive number;-1=no limit);risk limit = max limit + current net counter
655symEmaCxlDDeltaLnfloat-1max 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]
658symEmaCxlDDeltaShfloat-1max acct+symbol 60s EMA $delta short (positive number; <= 0 is no limit)
661symEmaCxlWtVegaLnfloat-1max 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]
664symEmaCxlWtVegaShfloat-1max acct+symbol 60s EMA wtVega short (positive number; <= 0 is no limit)
667lastFillDttmDateTime
670userData1text1client supplied data field; passes through to parent and child executions and reports as well as FIX drops
673userData2text1client supplied data field; passes through to parent and child executions and reports as well as FIX drops
676childDatatext1client supplied data field; passes through to down stream child orders
679srcTimestamplong
682sgwTimestamplong
685timestampDateTime
1037includeSRNetworkenum : InclExclDisclose

REPEATING FIELDS

DirectedCounterParty

#FieldTypeDefault ValueComment
697clientFirmstring(16)
700inclExclenum : InclExclDisclose

ClearingFlip

#FieldTypeDefault ValueComment
1053exDeststring(16)exDest (eg. CBOEOPT, NMSOPT,NMSOPT, NMSSTK, CMX$FUT)
1054clrFlipTypeenum : FlipTypetype of clearing corp delivery
1055clrFlipFirmstring(6)deliverTo clearing member (eg. OCC#, NSCC#, MPID, or InstitutionID)
1056clrFlipAccntstring(10)deliverTo client account (eg. OCC AID# or a DVP FBO code)
1057clrAgentstring(10)deliverTo agent (eg. DVP Agent Bank ID)
1058clrTaxIDstring(10)deliverTo taxID (eg. DVP TaxID)
1059clrBrkrMPIDstring(8)stock clearing broker
1060badgestring(16)exchange memembership and badge id

OrderLegs

#FieldTypeDefault ValueComment
754tickerTickerKeystock ticker
757stockSideenum : BuySell[Buy
760stockSharesintnumber of shares included (zero if none)
763stockLegIdlongSR stock leg ID
766altStkLegIdstring(24)client stock leg ID (usually from a FIX order)
769ssaleFlagenum : ShortSaleFlagstock short sale flag
775refUPrcfloatreference underlier price (PrcDe orders)
778numLegsbytenumber of valid legs below
781secKey1OptionKeyleg #1
784secType1enum : SpdrKeyType
787mult1ushort
790side1enum : BuySell
793legId1longSR leg Id
796altLegId1string(24)client leg Id (usually from a FIX order)
799posType1enum : PositionType
805ssaleFlag1enum : ShortSaleFlag
811vega1float
814refUPrc1doublereference underlier price (PrcDe orders)
817refDelta1floatreference delta (for PrcDe order handling)
820refEarnCnt1bytereference # of earnings moves before expiration
1061legStrikeType1enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)
823secKey2OptionKeyleg #2
826secType2enum : SpdrKeyType
829mult2ushort
832side2enum : BuySell
835legId2longSR leg Id
838altLegId2string(24)client leg Id (usually from a FIX order)
841posType2enum : PositionType
847ssaleFlag2enum : ShortSaleFlag
853vega2float
856refUPrc2doublereference underlier price (PrcDe orders)
859refDelta2floatreference delta (for PrcDe order handling)
862refEarnCnt2bytereference # of earnings moves before expiration
1062legStrikeType2enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)
865secKey3OptionKeyleg #3
868secType3enum : SpdrKeyType
871mult3ushort
874side3enum : BuySell
877legId3longSR leg Id
880altLegId3string(24)client leg Id (usually from a FIX order)
883posType3enum : PositionType
889ssaleFlag3enum : ShortSaleFlag
895vega3float
898refUPrc3doublereference underlier price (PrcDe orders)
901refDelta3floatreference delta (for PrcDe order handling)
904refEarnCnt3bytereference # of earnings moves before expiration
1063legStrikeType3enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)
907secKey4OptionKeyleg #4
910secType4enum : SpdrKeyType
913mult4ushort
916side4enum : BuySell
919legId4longSR leg Id
922altLegId4string(24)client leg Id (usually from a FIX order)
925posType4enum : PositionType
931ssaleFlag4enum : ShortSaleFlag
937vega4float
940refUPrc4doublereference underlier price (PrcDe orders)
943refDelta4floatreference delta (for PrcDe order handling)
946refEarnCnt4bytereference # of earnings moves before expiration
1064legStrikeType4enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)
949secKey5OptionKeyleg #5
952secType5enum : SpdrKeyType
955mult5ushort
958side5enum : BuySell
961legId5longSR leg Id
964altLegId5string(24)client leg Id (usually from a FIX order)
967posType5enum : PositionType
973ssaleFlag5enum : ShortSaleFlag
979vega5float
982refUPrc5doublereference underlier price (PrcDe orders)
985refDelta5floatreference delta (for PrcDe order handling)
988refEarnCnt5bytereference # of earnings moves before expiration
1065legStrikeType5enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)
991secKey6OptionKeyleg #6
994secType6enum : SpdrKeyType
997mult6ushort
1000side6enum : BuySell
1003legId6longSR leg Id
1006altLegId6string(24)client leg Id (usually from a FIX order)
1009posType6enum : PositionType
1015ssaleFlag6enum : ShortSaleFlag
1021vega6float
1024refUPrc6doublereference underlier price (PrcDe orders)
1027refDelta6floatreference delta (for PrcDe order handling)
1030refEarnCnt6bytereference # of earnings moves before expiration
1066legStrikeType6enum : StrikeTypeBlockPOC/PCV: Percent = PctOfClose, PctVariable = PctOfClose (response strike)

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

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

# 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|spdrActionType|parentShape|clientSeqNumIn|altOrderId|altPrevOrderId|altAutoHedgeId|altAccnt|altUserName|srcRoutingCode|packageId|secKey|secType|securityDesc|accnt|clientFirm|strategyAccnt|spdrSource|groupingCode|execBrkrCode|externExDest|externParams|strategy|userName|visibleInSV|userSource|orderDttm|orderSide|orderSize|orderActiveSize|curCumFillQuantity|addCumFillQuantity|maxExposureSize|numMakeExchanges|publicSize|canOverlapCxlRepl|progressRule|atsVisibility|progressSliceCnt|progressExposeTime|vwapParticipation|minMktOnClosePct|triggerType|triggerLevel|auctionResponder|maxMakeExchFee|maxTakeExchFee|incTakeExchFee|incMakeExchFee|makeExchRule|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|maxChildOrders|exchMask|spdrStageType|marketSession|startDttm|orderDuration|activeDuration|goodTillDttm|startType|triggerGroupId|triggerTimestamp|parentOrderHandling|parentBalanceHandling|orderLimitType|takeLimitClass|makeLimitClass|takeReachRule|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|nbboCap|autoHedge|hedgeInstrument|hedgeSecKey|hedgeBetaRatio|hedgeScope|hedgeSession|externHedgeExDest|externHedgeParams|hedgeFillUMarkLmtPrc|firmType|orderCapacity|positionType|ssaleFlag|locateFirm|locatePool|noCrossGroup|exchTraderId|largeTraderId|tradingLocation|leadSide|maxCompletionSlippage|orderRefPremium|noticeNumber|noticeCommission|hasNoticeComm|pkgRefPremPct|theoVol|clArriveMark|riskGroupId|reqAuxRiskGroupCtrl|refRMetric1Src|refRMetric2Src|refRMetric3Src|refRMetric4Src|refRMetric5Src|refRMetric6Src|refRMetric7Src|orderRefRMetric1|orderRefRMetric2|orderRefRMetric3|orderRefRMetric4|orderRefRMetric5|orderRefRMetric6|orderRefRMetric7|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|lastFillDttm|userData1|userData2|childData|srcTimestamp|sgwTimestamp|timestamp|includeSRNetwork'

# 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 = 'altOrderId: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 = 'SpdrParentOrder'

# 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|spdrActionType|parentShape|clientSeqNumIn|altOrderId|altPrevOrderId|altAutoHedgeId|altAccnt|altUserName|srcRoutingCode|packageId|secKey|secType|securityDesc|accnt|clientFirm|strategyAccnt|spdrSource|groupingCode|execBrkrCode|externExDest|externParams|strategy|userName|visibleInSV|userSource|orderDttm|orderSide|orderSize|orderActiveSize|curCumFillQuantity|addCumFillQuantity|maxExposureSize|numMakeExchanges|publicSize|canOverlapCxlRepl|progressRule|atsVisibility|progressSliceCnt|progressExposeTime|vwapParticipation|minMktOnClosePct|triggerType|triggerLevel|auctionResponder|maxMakeExchFee|maxTakeExchFee|incTakeExchFee|incMakeExchFee|makeExchRule|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|maxChildOrders|exchMask|spdrStageType|marketSession|startDttm|orderDuration|activeDuration|goodTillDttm|startType|triggerGroupId|triggerTimestamp|parentOrderHandling|parentBalanceHandling|orderLimitType|takeLimitClass|makeLimitClass|takeReachRule|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|nbboCap|autoHedge|hedgeInstrument|hedgeSecKey|hedgeBetaRatio|hedgeScope|hedgeSession|externHedgeExDest|externHedgeParams|hedgeFillUMarkLmtPrc|firmType|orderCapacity|positionType|ssaleFlag|locateFirm|locatePool|noCrossGroup|exchTraderId|largeTraderId|tradingLocation|leadSide|maxCompletionSlippage|orderRefPremium|noticeNumber|noticeCommission|hasNoticeComm|pkgRefPremPct|theoVol|clArriveMark|riskGroupId|reqAuxRiskGroupCtrl|refRMetric1Src|refRMetric2Src|refRMetric3Src|refRMetric4Src|refRMetric5Src|refRMetric6Src|refRMetric7Src|orderRefRMetric1|orderRefRMetric2|orderRefRMetric3|orderRefRMetric4|orderRefRMetric5|orderRefRMetric6|orderRefRMetric7|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|lastFillDttm|userData1|userData2|childData|srcTimestamp|sgwTimestamp|timestamp|includeSRNetwork'

# 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 = 'altOrderId: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 = 'SpdrParentOrder'

# Replace with fields you want to see aggregate values for. A "|" separated list of measures should be provided
MEASURE = 'sysEnvironment|runStatus|spdrActionType|parentShape|clientSeqNumIn|altOrderId|altPrevOrderId|altAutoHedgeId|altAccnt|altUserName|srcRoutingCode|packageId|secKey|secType|securityDesc|accnt|clientFirm|strategyAccnt|spdrSource|groupingCode|execBrkrCode|externExDest|externParams|strategy|userName|visibleInSV|userSource|orderDttm|orderSide|orderSize|orderActiveSize|curCumFillQuantity|addCumFillQuantity|maxExposureSize|numMakeExchanges|publicSize|canOverlapCxlRepl|progressRule|atsVisibility|progressSliceCnt|progressExposeTime|vwapParticipation|minMktOnClosePct|triggerType|triggerLevel|auctionResponder|maxMakeExchFee|maxTakeExchFee|incTakeExchFee|incMakeExchFee|makeExchRule|cxlUPrcRange|minUBid|maxUAsk|minMaxType|minOptionPx|maxChildOrders|exchMask|spdrStageType|marketSession|startDttm|orderDuration|activeDuration|goodTillDttm|startType|triggerGroupId|triggerTimestamp|parentOrderHandling|parentBalanceHandling|orderLimitType|takeLimitClass|makeLimitClass|takeReachRule|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|nbboCap|autoHedge|hedgeInstrument|hedgeSecKey|hedgeBetaRatio|hedgeScope|hedgeSession|externHedgeExDest|externHedgeParams|hedgeFillUMarkLmtPrc|firmType|orderCapacity|positionType|ssaleFlag|locateFirm|locatePool|noCrossGroup|exchTraderId|largeTraderId|tradingLocation|leadSide|maxCompletionSlippage|orderRefPremium|noticeNumber|noticeCommission|hasNoticeComm|pkgRefPremPct|theoVol|clArriveMark|riskGroupId|reqAuxRiskGroupCtrl|refRMetric1Src|refRMetric2Src|refRMetric3Src|refRMetric4Src|refRMetric5Src|refRMetric6Src|refRMetric7Src|orderRefRMetric1|orderRefRMetric2|orderRefRMetric3|orderRefRMetric4|orderRefRMetric5|orderRefRMetric6|orderRefRMetric7|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|lastFillDttm|userData1|userData2|childData|srcTimestamp|sgwTimestamp|timestamp|includeSRNetwork'

# Replace with fields you want to see aggregated. A "|" separated list of fields should be provided
GROUP = 'sysEnvironment|runStatus|spdrActionType|parentShape|secType|spdrSource|visibleInSV|userSource|orderSide|addCumFillQuantity|publicSize|canOverlapCxlRepl|progressRule|atsVisibility|triggerType|auctionResponder|incTakeExchFee|incMakeExchFee|makeExchRule|cxlUPrcRange|minMaxType|spdrStageType|marketSession|startType|parentOrderHandling|parentBalanceHandling|orderLimitType|takeLimitClass|makeLimitClass|takeReachRule|overrideCode|stateModel|uStateModel|takeAlphaType|makeAlphaType|nbboCap|autoHedge|hedgeInstrument|hedgeScope|hedgeSession|hedgeFillUMarkLmtPrc|firmType|orderCapacity|positionType|ssaleFlag|leadSide|hasNoticeComm|reqAuxRiskGroupCtrl|refRMetric1Src|refRMetric2Src|refRMetric3Src|refRMetric4Src|refRMetric5Src|refRMetric6Src|refRMetric7Src|includeSRNetwork'

# 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 = 'altOrderId: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 = 'SpdrParentOrder'

# 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 = 'altOrderId: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": "U", # (U)pdate, (I)nsert, or (R)eplace
"postmerge": "Y", # (Y)es or (N)o
}

payload = {
"header": {
"mTyp": "SpdrParentOrder"
},
"message": {
"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
"spdrActionType": "enumValue", // enum(SpdrActionType) - Add, AddReplace, Replace, Cancel, Modify
"parentShape": "enumValue", // enum(SpdrOrderShape) - None, Single, Cross, MLeg, MLegCross
"clientSeqNumIn": 1, // int
"altOrderId": "exampleString", // string
"altPrevOrderId": "exampleString", // string
"altAutoHedgeId": "exampleString", // string
"altAccnt": "exampleString", // string
"altUserName": "exampleString", // string
"srcRoutingCode": "exampleString", // text1
"packageId": 1, // long
"secKey": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"securityDesc": "exampleString", // text1
"accnt": "exampleString", // string
"clientFirm": "exampleString", // string
"strategyAccnt": "exampleString", // string
"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, SymChatGateway, RiskDrop, PolicyOpn, PolicyTrd, PolicyExe
"groupingCode": 1, // long
"execBrkrCode": "exampleString", // string
"externExDest": "exampleString", // string
"externParams": "exampleString", // text1
"strategy": "exampleString", // string
"userName": "exampleString", // string
"visibleInSV": "enumValue", // enum(YesNo) - None, Yes, No
"userSource": "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, SymChatGateway, RiskDrop, PolicyOpn, PolicyTrd, PolicyExe
"orderDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"orderSide": "enumValue", // enum(BuySell) - None, Buy, Sell
"orderSize": 1, // int
"orderActiveSize": 1, // int
"curCumFillQuantity": 1, // int
"addCumFillQuantity": "enumValue", // enum(YesNo) - None, Yes, No
"maxExposureSize": 1, // int
"numMakeExchanges": 1, // byte
"publicSize": "enumValue", // enum(PublicSizeHandling) - None, Randomize, MktSize, FullSize, MktSizeA, MktSizeB, MktSizeC, FullSizeR, Max25Pct, Max50Pct, Max75Pct, NoSize
"canOverlapCxlRepl": "enumValue", // enum(YesNo) - None, Yes, No
"progressRule": "enumValue", // enum(ProgressRule) - None, Twap, Vwap, TwapReset, VwapReset, FastReset, SlowReset, TwapAlpha, VwapAlpha, TwapAlphaC, VwapAlphaC, AutoComplete, AllowImmediate, Manual, SpdrPulse, IOC, FlashMakeTake
"atsVisibility": "enumValue", // enum(AtsVisibility) - None, Neither, Side, SidePrice
"progressSliceCnt": 1, // byte
"progressExposeTime": 1, // int
"vwapParticipation": 1.0, // float
"minMktOnClosePct": 1, // byte
"triggerType": "enumValue", // enum(TriggerType) - None, PrintPrc, PrintVol, SurfVol, PrtSurfVol
"triggerLevel": 1.0, // float
"auctionResponder": "enumValue", // enum(AuctionResponder) - None, Any
"maxMakeExchFee": 1.0, // float
"maxTakeExchFee": 1.0, // float
"incTakeExchFee": "enumValue", // enum(IncExchFee) - None, ExclFee, IncFee
"incMakeExchFee": "enumValue", // enum(IncExchFee) - None, ExclFee, IncFee
"makeExchRule": "enumValue", // enum(MakeExchRule) - None, MaxPart, FeeOptimal, ImprvOnly, FeeStrict, RoundRobin, ProRataOptim
"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
"maxChildOrders": 1, // int
"exchMask": 1, // long
"spdrStageType": "enumValue", // enum(SpdrStageType) - None, ModifyAny, ModifyAlgo
"marketSession": "enumValue", // enum(MarketSession) - None, PreMkt, RegMkt, PostMkt, PreRegMkt, RegPostMkt, AllDay
"startDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"orderDuration": 1, // int
"activeDuration": 1, // int
"goodTillDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"startType": "enumValue", // enum(StartType) - None, WaitTrigger, TriggerAll
"triggerGroupId": 1, // long
"triggerTimestamp": 1, // long
"parentOrderHandling": "enumValue", // enum(ParentOrderHandling) - None, ActiveTaker, PostOnly, DMA, MktOnOpn, MktOnCls, Facilitate, Matrix, Legger, Seeker, SeekerLegger, CrossResponse, AuctionResponse, MLegAuctionResp, RFQRequest, AwayAlgo, ExchPing, BlockAuction, AtsResponse, SweepTake, CobMaker, FaceOmni, TestParent, FlashAuction, BlockAuctionDAC, BlockAuctionPOC, BlockAuctionPCV
"parentBalanceHandling": "enumValue", // enum(ParentBalanceHandling) - None, PostWith, PostTurn, PostImprove, PostLimit, MaxIntern, PostWthF, PostImprvR, PostFlash, PostFlashW, PostPeg, PostFlashI
"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, UPrcPctStrike
"takeLimitClass": "enumValue", // enum(SpdrLimitClass) - Simple, Surface, Probability, SurfProb
"makeLimitClass": "enumValue", // enum(SpdrLimitClass) - Simple, Surface, Probability, SurfProb
"takeReachRule": "enumValue", // enum(ReachRule) - None, Delayed, Passive, WeakOnly, RespondOnly, FullSize, ISOSweep, AllOrNone, QtyOrMore, UpToQty, AtMost25, AtMost50, MinTakeFee
"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
"nbboCap": "enumValue", // enum(NbboCap) - None, NoCap, Nbbo, Penny, FivePennies, TenPennies
"autoHedge": "enumValue", // enum(AutoHedge) - None, Static, AutoMid, AutoCrx, AutoTrn, SpdrAuto, Spdr10S, Spdr30S, Spdr90S, Spdr5M, Spdr30M, SpdrDay, SmartFast, SmartNorm, FastCrx, FastDark, SlowDark, AlphaVwap1pct, AlphaVwap2pct, AlphaVwap5pct, AlphaVwap25pct, Custom, AwayAlgo, EuMsAlgo, Policy
"hedgeInstrument": "Default", // enum(HedgeInst) - None, Default, FrontMonth, Stock, Future. Default=Default
"hedgeSecKey": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01"
},
"hedgeBetaRatio": 1.0, // float
"hedgeScope": "enumValue", // enum(HedgeScope) - None, Accnt, RiskGroup
"hedgeSession": "enumValue", // enum(MarketSession) - None, PreMkt, RegMkt, PostMkt, PreRegMkt, RegPostMkt, AllDay
"externHedgeExDest": "exampleString", // string
"externHedgeParams": "exampleString", // text1
"hedgeFillUMarkLmtPrc": "enumValue", // enum(YesNo) - None, Yes, No
"firmType": "enumValue", // enum(FirmType) - None, Customer, Firm, MarketMaker, ProCustomer, BrokerDealer, AwayMM, FirmJBO, BrkrDlrCust
"orderCapacity": "enumValue", // enum(OrderCapacity) - None, Agency, Principal, Individual, Proprietary, AgentOtherMember, RisklessPrincipal, MarketMaker
"positionType": "Auto", // enum(PositionType) - None, Opening, Closing, Auto. Default=Auto
"ssaleFlag": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"locateFirm": "exampleString", // string
"locatePool": "exampleString", // string
"noCrossGroup": "exampleString", // string
"exchTraderId": "exampleString", // string
"largeTraderId": "exampleString", // string
"tradingLocation": "exampleString", // string
"leadSide": "enumValue", // enum(BuySell) - None, Buy, Sell
"maxCompletionSlippage": 1.0, // double
"orderRefPremium": 1.0, // float
"noticeNumber": 1, // long
"noticeCommission": 1.0, // float
"hasNoticeComm": "enumValue", // enum(YesNo) - None, Yes, No
"pkgRefPremPct": 1.0, // float
"theoVol": 1.0, // float
"clArriveMark": 1.0, // float
"riskGroupId": 1, // long
"reqAuxRiskGroupCtrl": "enumValue", // enum(YesNo) - None, Yes, No
"refRMetric1Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric2Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric3Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric4Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric5Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric6Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"refRMetric7Src": "enumValue", // enum(RMetricSource) - None, User, Vega, WVega, WTVega, TVega, Theta, Gamma, DGamma, DDeltaIvS, BDDelta, OptDDelta, Premium, Notional, Quantity, StrictPremium
"orderRefRMetric1": 1.0, // float
"orderRefRMetric2": 1.0, // float
"orderRefRMetric3": 1.0, // float
"orderRefRMetric4": 1.0, // float
"orderRefRMetric5": 1.0, // float
"orderRefRMetric6": 1.0, // float
"orderRefRMetric7": 1.0, // float
"expDayWtVegaOffset": -1, // float. Default=-1
"maxExpDayWtVegaLn": -1, // float. Default=-1
"maxExpDayWtVegaSh": -1, // float. Default=-1
"maxExpDayRMetric6Ln": -1, // float. Default=-1
"maxExpDayRMetric6Sh": -1, // float. Default=-1
"symDayDDeltaOffset": -1, // float. Default=-1
"maxSymDayDDeltaLn": -1, // float. Default=-1
"maxSymDayDDeltaSh": -1, // float. Default=-1
"symDayVegaOffset": -1, // float. Default=-1
"maxSymDayVegaLn": -1, // float. Default=-1
"maxSymDayVegaSh": -1, // float. Default=-1
"symDayWtVegaOffset": -1, // float. Default=-1
"maxSymDayWtVegaLn": -1, // float. Default=-1
"maxSymDayWtVegaSh": -1, // float. Default=-1
"maxSymDayRMetric7Ln": -1, // float. Default=-1
"maxSymDayRMetric7Sh": -1, // float. Default=-1
"maxGrpDayDDeltaLn": -1, // float. Default=-1
"maxGrpDayDDeltaSh": -1, // float. Default=-1
"maxGrpDayVegaLn": -1, // float. Default=-1
"maxGrpDayVegaSh": -1, // float. Default=-1
"maxGrpDayVegaAbs": -1, // float. Default=-1
"grpDayVegaRatio": 1.0, // float. Default=1.0
"maxGrpDayContractsLn": -1, // int. Default=-1
"maxGrpDayContractsSh": -1, // int. Default=-1
"maxGrpDayContractsAbs": -1, // int. Default=-1
"maxGrpDayRMetric1Ln": -1, // float. Default=-1
"maxGrpDayRMetric1Sh": -1, // float. Default=-1
"maxGrpDayRMetric1Abs": -1, // float. Default=-1
"grpDayRMetric1Ratio": 1.0, // float. Default=1.0
"maxGrpDayRMetric2Ln": -1, // float. Default=-1
"maxGrpDayRMetric2Sh": -1, // float. Default=-1
"maxGrpDayRMetric3Ln": -1, // float. Default=-1
"maxGrpDayRMetric3Sh": -1, // float. Default=-1
"maxGrpDayRMetric4Ln": -1, // float. Default=-1
"maxGrpDayRMetric4Sh": -1, // float. Default=-1
"maxGrpDayRMetric5Ln": -1, // float. Default=-1
"maxGrpDayRMetric5Sh": -1, // float. Default=-1
"symEmaCxlDDeltaLn": -1, // float. Default=-1
"symEmaCxlDDeltaSh": -1, // float. Default=-1
"symEmaCxlWtVegaLn": -1, // float. Default=-1
"symEmaCxlWtVegaSh": -1, // float. Default=-1
"lastFillDttm": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"userData1": "exampleString", // text1
"userData2": "exampleString", // text1
"childData": "exampleString", // text1
"srcTimestamp": 1, // long
"sgwTimestamp": 1, // long
"timestamp": "2025-01-01 12:00:00.000000", // yyyy-MM-dd HH:mm:ss.SSSSSS
"includeSRNetwork": "enumValue", // enum(InclExclDisclose) - None, Include, Exclude, Disclose
"DirectedCounterParty": [ // Repeating Field
{
"clientFirm": "exampleString", // string
"inclExcl": "enumValue" // enum(InclExclDisclose) - None, Include, Exclude, Disclose
}
],
"ClearingFlip": [ // Repeating Field
{
"exDest": "exampleString", // string
"clrFlipType": "enumValue", // enum(FlipType) - None, CMTA, Giveup, QSR, NSCC_Flip, DVP, BrkrAccnt
"clrFlipFirm": "exampleString", // string
"clrFlipAccnt": "exampleString", // string
"clrAgent": "exampleString", // string
"clrTaxID": "exampleString", // string
"clrBrkrMPID": "exampleString", // string
"badge": "exampleString" // string
}
],
"OrderLegs": [ // Repeating Field
{
"ticker": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL"
},
"stockSide": "enumValue", // enum(BuySell) - None, Buy, Sell
"stockShares": 1, // int
"stockLegId": 1, // long
"altStkLegId": "exampleString", // string
"ssaleFlag": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"refUPrc": 1.0, // float
"numLegs": 1, // byte
"secKey1": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType1": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult1": 1, // ushort
"side1": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId1": 1, // long
"altLegId1": "exampleString", // string
"posType1": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag1": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega1": 1.0, // float
"refUPrc1": 1.0, // double
"refDelta1": 1.0, // float
"refEarnCnt1": 1, // byte
"legStrikeType1": "enumValue", // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
"secKey2": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType2": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult2": 1, // ushort
"side2": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId2": 1, // long
"altLegId2": "exampleString", // string
"posType2": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag2": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega2": 1.0, // float
"refUPrc2": 1.0, // double
"refDelta2": 1.0, // float
"refEarnCnt2": 1, // byte
"legStrikeType2": "enumValue", // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
"secKey3": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType3": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult3": 1, // ushort
"side3": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId3": 1, // long
"altLegId3": "exampleString", // string
"posType3": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag3": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega3": 1.0, // float
"refUPrc3": 1.0, // double
"refDelta3": 1.0, // float
"refEarnCnt3": 1, // byte
"legStrikeType3": "enumValue", // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
"secKey4": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType4": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult4": 1, // ushort
"side4": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId4": 1, // long
"altLegId4": "exampleString", // string
"posType4": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag4": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega4": 1.0, // float
"refUPrc4": 1.0, // double
"refDelta4": 1.0, // float
"refEarnCnt4": 1, // byte
"legStrikeType4": "enumValue", // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
"secKey5": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType5": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult5": 1, // ushort
"side5": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId5": 1, // long
"altLegId5": "exampleString", // string
"posType5": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag5": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega5": 1.0, // float
"refUPrc5": 1.0, // double
"refDelta5": 1.0, // float
"refEarnCnt5": 1, // byte
"legStrikeType5": "enumValue", // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
"secKey6": {
"at": "EQT",
"ts": "NMS",
"tk": "AAPL",
"dt": "2025-01-01",
"xx": 1,
"cp": "Call"
},
"secType6": "enumValue", // enum(SpdrKeyType) - None, Stock, Future, Option, MLeg
"mult6": 1, // ushort
"side6": "enumValue", // enum(BuySell) - None, Buy, Sell
"legId6": 1, // long
"altLegId6": "exampleString", // string
"posType6": "enumValue", // enum(PositionType) - None, Opening, Closing, Auto
"ssaleFlag6": "enumValue", // enum(ShortSaleFlag) - None, Long, Short, Exempt, Auto, Open, Close, Cover, NA
"vega6": 1.0, // float
"refUPrc6": 1.0, // double
"refDelta6": 1.0, // float
"refEarnCnt6": 1, // byte
"legStrikeType6": "enumValue" // enum(StrikeType) - None, DollarAmt, Percent, PctVariable
}
]
}
}

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