Streams one market’s statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.
An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.
Future
FutureInv
Option
Perp
PerpInv
Spot
Show child attributes
Response
Each item in the stream
One message per line: a Reset first, then Updates, until an Ended line.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Plurex Docs","colors":{"primary":"#ba54f5","light":"#16C99D","dark":"#0C9473"},"logo":{"light":"https://mintcdn.com/plurex/55zZlLmLoaaEFioa/logo/light.svg?fit=max\u0026auto=format\u0026n=55zZlLmLoaaEFioa\u0026q=85\u0026s=e150115596b050b7a538e6f784ec2f44","dark":"https://mintcdn.com/plurex/55zZlLmLoaaEFioa/logo/dark.svg?fit=max\u0026auto=format\u0026n=55zZlLmLoaaEFioa\u0026q=85\u0026s=50700e3bf45d56130284da4e11ac0267"},"favicon":"https://mintcdn.com/plurex/55zZlLmLoaaEFioa/favicon.svg?fit=max\u0026auto=format\u0026n=55zZlLmLoaaEFioa\u0026q=85\u0026s=b75896d74b2a1f4042f455cecc2be909","navbar":{"links":[{"href":"https://support.plurex.io/portal/en/newticket","label":"Support"}],"primary":{"type":"button","label":"Platform","href":"https://platform.plurex.io"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"plurex","hasAudioNarration":false,"actualSubdomain":"plurex","customDomains":["docs.plurex.io"],"gitSource":{"type":"github","owner":"plurex","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae069e8d674d5fcdf0f8fc8","collectionId":"10a7ca6c-7ce8-4970-aa5a-284258f77003","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae069e8d674d5fcdf0f8fc8"},"entitlements":{},"buildId":"6ae13cd95d82eb0117f897be","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API reference","count":47},{"language":"default","tag":"Trading","count":22},{"language":"default","tag":"Documentation","count":22},{"language":"default","tag":"Market data","count":10},{"language":"default","tag":"Orders","count":9},{"language":"default","tag":"Paper trading","count":9},{"language":"default","tag":"Accounts","count":6},{"language":"default","tag":"Prices and market statistics","count":5},{"language":"default","tag":"Concepts","count":5},{"language":"default","tag":"Leverage and position mode","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/platform/venues/subscribe-to-market-statistics","slug":"/api-reference/platform/venues/subscribe-to-market-statistics","pageMetadata":{"title":"Stream market statistics","description":"Streams one market's statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToMarketStatistics","playground":"none","href":"/api-reference/platform/venues/subscribe-to-market-statistics"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Streams one market’s statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const CapabilityCheck=({source=`host`,header=[],market=[],none=false,perMarket=false})=>{const _components={a:`a`,..._provideComponents()},{Info}=_components;if(!Info)_missingMdxReference(`Info`,true);const isHost=source===`host`;const noun=isHost?`host`:`venue`;const list=`/api-reference/platform/${noun}s/list`;const markets=`/api-reference/platform/${noun}s/list-markets`;const guide=`/capabilities/${noun}-capabilities`;const gated=header.some(item=>item.support);const keyed=header.find(item=>item.when);const path=value=>value.replace(/^capabilities\\./,``);return _jsxs(Info,{children:[_jsx(`p`,{children:_jsx(`strong`,{children:`Check support`})}),none?_jsx(`p`,{children:`No capability gates this operation.`}):_jsxs(_Fragment,{children:[_jsxs(`p`,{children:[`Read the `,noun,` with `,_jsxs(_components.a,{href:list,children:[`List `,noun,`s`]}),`. In its `,_jsx(`code`,{children:`capabilities`}),keyed?_jsxs(_Fragment,{children:[`, by your request's `,_jsx(`code`,{children:keyed.when.field})]}):null,`:`]}),_jsx(`ul`,{children:header.map(item=>_jsxs(`li`,{children:[item.when?_jsxs(_Fragment,{children:[_jsx(`code`,{children:item.when.value}),` → `]}):null,_jsx(`code`,{children:path(item.path)}),item.always?_jsxs(_Fragment,{children:[`, always `,_jsx(`code`,{children:`Supported`})]}):null,item.note?_jsxs(_Fragment,{children:[`: `,item.note]}):null]},item.path))}),gated?_jsxs(`p`,{children:[_jsx(`code`,{children:`Supported`}),`: go ahead.`,` `,perMarket?_jsxs(_Fragment,{children:[_jsx(`code`,{children:`PerMarket`}),`: check the market below. `]}):null,_jsx(`code`,{children:`NotSupported`}),`: the call fails with `,_jsx(`code`,{children:`422 NotSupported`}),`.`]}):null,market.length>0?_jsxs(_Fragment,{children:[_jsxs(`p`,{children:[`On the market, from `,_jsxs(_components.a,{href:markets,children:[`List `,noun,` markets`]}),`:`]}),_jsx(`ul`,{children:market.map(item=>_jsxs(`li`,{children:[_jsx(`code`,{children:item.path}),`: `,item.note]},item.path))})]}):null]}),_jsxs(`p`,{children:[`See `,_jsxs(_components.a,{href:guide,children:[isHost?`Host`:`Venue`,` capabilities`]}),` and`,` `,_jsx(_components.a,{href:`/capabilities/overview#support-values`,children:`support values`}),`.`]})]})};const OperationBadges=({badges=[]})=>{const{Badge,Tooltip}=_provideComponents()||{};if(!Badge)_missingMdxReference(`Badge`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);const colors={query:`blue`,command:`purple`,stream:`yellow`,public:`green`,optional:`orange`,\"not-repeat-safe\":`red`};return _jsx(`p`,{children:badges.map(badge=>_jsx(`span`,{style:{marginRight:`0.5rem`},children:_jsx(Tooltip,{tip:badge.description,children:_jsx(Badge,{color:colors[badge.name]||`gray`,children:badge.label})})},badge.name))})};function _createMdxContent(props){const{_MdxComponentBoundary}={..._provideComponents(),...props.components};if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_MdxComponentBoundary,{name:`OperationBadges`,children:_jsx(OperationBadges,{badges:[{\"name\":`stream`,\"label\":`Stream`,\"description\":`The response stays open and carries one JSON message per line until an Ended line.`},{\"name\":`optional`,\"label\":`Check capabilities`,\"description\":`Not every host or venue supports this operation; check its capabilities first or expect 422 NotSupported.`}]})}),`\n`,_jsx(_MdxComponentBoundary,{name:`CapabilityCheck`,children:_jsx(CapabilityCheck,{source:`venue`,header:[{\"path\":`capabilities.statistics.subscribeToMarketStatistics`,\"support\":true}],market:[{\"path\":`marketData.statistics.subscribe`,\"note\":`true when the market streams statistics`},{\"path\":`marketData.statistics.supportedFields`,\"note\":`which statistics it reports`}],perMarket:true})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{CapabilityCheck,OperationBadges,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Stream market statistics","description":"Streams one market's statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToMarketStatistics","playground":"none","href":"/api-reference/platform/venues/subscribe-to-market-statistics"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[151,2867,")=>null;const OperationBadges=()=>null;f"]]},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"venuesSubscribeToMarketStatistics","summary":"Stream market statistics","description":"Streams one market's statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.","tags":["market-observations","optional"],"requestBody":"a05e0637-7dee-4b7e-9a13-ee333f4884cc","responses":{"200":"0a41cdba-3f61-47ed-ab19-c9df19a3029c","400":"889a2e57-bf8e-419e-8793-ff8adce19121","401":"f1ea0971-3819-4151-95e0-5290320dd341","404":"9819406a-a0db-40bf-b2c9-abe21d98cab7","415":"d950d2af-b2c7-49fa-8df7-91e80a5097b7","422":"53d01c55-de59-424c-aecd-6fc769988d87","429":"4185ca4d-075f-4cb1-b024-79699cb3e702","500":"0339f8fa-fb62-4fcb-8009-1b530c092f62","502":"78aea2c1-68d5-4828-981c-95a0e7b7c897","503":"e1a38193-3793-4701-a666-4f10c29fb835","504":"03f45d16-ad69-4d25-9869-ebb4700f6cfa"},"method":"post","type":"path","servers":["370bdac0-2687-440d-bc90-9160600a2147"],"security":["a45268ca-b483-4971-9c05-34ba8906f701"],"path":"/api/v1/venues/stream/SubscribeToMarketStatistics","baseUrlOptions":["https://api.plurex.io"],"title":"Stream market statistics","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"venueId":{"type":"string","isRequired":true,"uniqueKey":"venueId","typeLabel":"string"},"instrument":{"oneOf":[{"type":"object","title":"Future","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote","expiry"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.0.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.0.quote","typeLabel":"string"},"expiry":{"type":"string","format":"date","description":"Contract expiry date (YYYY-MM-DD).","isRequired":true,"uniqueKey":"instrument.oneOf.0.expiry","typeLabel":"string\u003cdate>"},"type":{"type":"string","enum":["Future"],"isRequired":true,"uniqueKey":"instrument.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.0","typeLabel":"Future · object"},{"type":"object","title":"FutureInv","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote","expiry"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.1.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.1.quote","typeLabel":"string"},"expiry":{"type":"string","format":"date","description":"Contract expiry date (YYYY-MM-DD).","isRequired":true,"uniqueKey":"instrument.oneOf.1.expiry","typeLabel":"string\u003cdate>"},"type":{"type":"string","enum":["FutureInv"],"isRequired":true,"uniqueKey":"instrument.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.1","typeLabel":"FutureInv · object"},{"type":"object","title":"Option","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote","expiry","strike","right"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.2.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.2.quote","typeLabel":"string"},"expiry":{"type":"string","format":"date","description":"Contract expiry date (YYYY-MM-DD).","isRequired":true,"uniqueKey":"instrument.oneOf.2.expiry","typeLabel":"string\u003cdate>"},"strike":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]*[1-9])?$","description":"Positive strike price in the quote asset, in canonical form so identity is exact; a plain decimal with no exponent and no trailing fractional zeros (50000, not 50000.0 or 5E4).","isRequired":true,"uniqueKey":"instrument.oneOf.2.strike","typeLabel":"string"},"right":{"type":"string","enum":["Call","Put"],"description":"Whether an option gives the right to buy (Call) or to sell (Put) the underlying at the strike.","isRequired":true,"uniqueKey":"instrument.oneOf.2.right","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["Option"],"isRequired":true,"uniqueKey":"instrument.oneOf.2.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.2","typeLabel":"Option · object"},{"type":"object","title":"Perp","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.3.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.3.quote","typeLabel":"string"},"type":{"type":"string","enum":["Perp"],"isRequired":true,"uniqueKey":"instrument.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.3","typeLabel":"Perp · object"},{"type":"object","title":"PerpInv","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.4.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.4.quote","typeLabel":"string"},"type":{"type":"string","enum":["PerpInv"],"isRequired":true,"uniqueKey":"instrument.oneOf.4.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.4","typeLabel":"PerpInv · object"},{"type":"object","title":"Spot","description":"An instrument, identified by its fields rather than a venue symbol: type, base, quote, and expiry, strike and right where they apply. type takes the InstrumentType values; unknown types are rejected. Market summaries also give its canonical symbol.","required":["type","base","quote"],"properties":{"base":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.5.base","typeLabel":"string"},"quote":{"type":"string","pattern":"^[A-Z0-9.]{1,32}$","isRequired":true,"uniqueKey":"instrument.oneOf.5.quote","typeLabel":"string"},"type":{"type":"string","enum":["Spot"],"isRequired":true,"uniqueKey":"instrument.oneOf.5.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"instrument.oneOf.5","typeLabel":"Spot · object"}],"isRequired":true,"uniqueKey":"instrument","typeLabel":"Future · object | FutureInv · object | Option · object | Perp · object | PerpInv · object | Spot · object"}},"required":["venueId","instrument"],"description":"Streams one market's statistics on a venue.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"venueId":"\u003cstring>","instrument":{"base":"\u003cstring>","quote":"\u003cstring>","expiry":"2023-12-25","type":"Future"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"0a41cdba-3f61-47ed-ab19-c9df19a3029c":{"description":"One message per line: a Reset first, then Updates, until an Ended line.","content":{"application/jsonl":{"itemSchema":{"oneOf":[{"type":"object","title":"Reset","description":"One line of the statistics stream.","required":["type","timestamp","data"],"properties":{"type":{"type":"string","enum":["Reset"],"description":"Always Reset.","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"enum\u003cstring>"},"timestamp":{"type":"string","format":"date-time","description":"When Plurex sent the event.","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"type":"object","properties":{"value":{"type":"object","properties":{"window":{"oneOf":[{"type":"object","title":"Rolling","description":"The window the venue computes statistics over. Two venues' windows need not mean the same.","required":["type","length"],"properties":{"type":{"type":"string","enum":["Rolling"],"isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.0.type","typeLabel":"enum\u003cstring>"},"length":{"type":"string","format":"duration","description":"ISO 8601 duration, e.g. PT24H.","isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.0.length","typeLabel":"string\u003cduration>"}},"isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.0","typeLabel":"Rolling · object"},{"type":"object","title":"CalendarDay","description":"The window the venue computes statistics over. Two venues' windows need not mean the same.","required":["type","timeZone"],"properties":{"type":{"type":"string","enum":["CalendarDay"],"isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.1.type","typeLabel":"enum\u003cstring>"},"timeZone":{"type":"string","description":"IANA time zone.","isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.1.timeZone","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.data.value.window.oneOf.1","typeLabel":"CalendarDay · object"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.window","typeLabel":"Rolling · object | CalendarDay · object"},"open":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.open.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.open.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.open","typeLabel":"string | null"},"high":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.high.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.high.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.high","typeLabel":"string | null"},"low":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.low.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.low.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.low","typeLabel":"string | null"},"previousClose":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.previousClose.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.previousClose.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.previousClose","typeLabel":"string | null"},"volumeBase":{"oneOf":[{"type":"string","description":"Traded volume in the base asset; null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeBase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Traded volume in the base asset; null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeBase.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeBase","typeLabel":"string | null"},"volumeQuote":{"oneOf":[{"type":"string","description":"Traded volume in the quote asset; null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeQuote.oneOf.0","typeLabel":"string"},{"type":"null","description":"Traded volume in the quote asset; null when not reported.","isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeQuote.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.value.volumeQuote","typeLabel":"string | null"}},"required":["window","open","high","low","previousClose","volumeBase","volumeQuote"],"description":"Venue-reported statistics over window. Fields outside StatisticsSpec.supportedFields are always null.","isRequired":true,"uniqueKey":"oneOf.0.data.value","typeLabel":"object"},"observedAt":{"oneOf":[{"type":"string","format":"date-time","description":"Venue time of the value; null when the venue gives none.","isRequired":true,"uniqueKey":"oneOf.0.data.observedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Venue time of the value; null when the venue gives none.","isRequired":true,"uniqueKey":"oneOf.0.data.observedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.data.observedAt","typeLabel":"string\u003cdate-time> | null"},"receivedAt":{"type":"string","format":"date-time","description":"When Plurex received the value.","isRequired":true,"uniqueKey":"oneOf.0.data.receivedAt","typeLabel":"string\u003cdate-time>"}},"required":["value","observedAt","receivedAt"],"description":"The current value.","isRequired":true,"uniqueKey":"oneOf.0.data","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"Reset · object"},{"type":"object","title":"Update","description":"One line of the statistics stream.","required":["type","timestamp","data"],"properties":{"type":{"type":"string","enum":["Update"],"description":"Always Update.","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"timestamp":{"type":"string","format":"date-time","description":"When Plurex sent the event.","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"type":"object","properties":{"value":{"type":"object","properties":{"window":{"oneOf":[{"type":"object","title":"Rolling","description":"The window the venue computes statistics over. Two venues' windows need not mean the same.","required":["type","length"],"properties":{"type":{"type":"string","enum":["Rolling"],"isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.0.type","typeLabel":"enum\u003cstring>"},"length":{"type":"string","format":"duration","description":"ISO 8601 duration, e.g. PT24H.","isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.0.length","typeLabel":"string\u003cduration>"}},"isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.0","typeLabel":"Rolling · object"},{"type":"object","title":"CalendarDay","description":"The window the venue computes statistics over. Two venues' windows need not mean the same.","required":["type","timeZone"],"properties":{"type":{"type":"string","enum":["CalendarDay"],"isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.1.type","typeLabel":"enum\u003cstring>"},"timeZone":{"type":"string","description":"IANA time zone.","isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.1.timeZone","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.data.value.window.oneOf.1","typeLabel":"CalendarDay · object"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.window","typeLabel":"Rolling · object | CalendarDay · object"},"open":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.open.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.open.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.open","typeLabel":"string | null"},"high":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.high.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.high.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.high","typeLabel":"string | null"},"low":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.low.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.low.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.low","typeLabel":"string | null"},"previousClose":{"oneOf":[{"type":"string","description":"Null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.previousClose.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.previousClose.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.previousClose","typeLabel":"string | null"},"volumeBase":{"oneOf":[{"type":"string","description":"Traded volume in the base asset; null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeBase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Traded volume in the base asset; null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeBase.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeBase","typeLabel":"string | null"},"volumeQuote":{"oneOf":[{"type":"string","description":"Traded volume in the quote asset; null when not reported.","pattern":"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$","isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeQuote.oneOf.0","typeLabel":"string"},{"type":"null","description":"Traded volume in the quote asset; null when not reported.","isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeQuote.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.value.volumeQuote","typeLabel":"string | null"}},"required":["window","open","high","low","previousClose","volumeBase","volumeQuote"],"description":"Venue-reported statistics over window. Fields outside StatisticsSpec.supportedFields are always null.","isRequired":true,"uniqueKey":"oneOf.1.data.value","typeLabel":"object"},"observedAt":{"oneOf":[{"type":"string","format":"date-time","description":"Venue time of the value; null when the venue gives none.","isRequired":true,"uniqueKey":"oneOf.1.data.observedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Venue time of the value; null when the venue gives none.","isRequired":true,"uniqueKey":"oneOf.1.data.observedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.data.observedAt","typeLabel":"string\u003cdate-time> | null"},"receivedAt":{"type":"string","format":"date-time","description":"When Plurex received the value.","isRequired":true,"uniqueKey":"oneOf.1.data.receivedAt","typeLabel":"string\u003cdate-time>"}},"required":["value","observedAt","receivedAt"],"description":"The complete new value.","isRequired":true,"uniqueKey":"oneOf.1.data","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"Update · object"},{"type":"object","title":"Ended","description":"One line of the statistics stream.","required":["type","code","message"],"properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Why the stream stopped, for example UpstreamFailure when the venue's or host's own feed ended.","isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Readable detail for logs; do not parse it.","isRequired":true,"uniqueKey":"oneOf.2.message","typeLabel":"string"},"type":{"type":"string","enum":["Ended"],"description":"Always Ended.","isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2","typeLabel":"Ended · object"}],"uniqueKey":"","typeLabel":"Reset · object | Update · object | Ended · object"},"examples":{"Stream":{"title":"Stream","value":{"type":"Reset","timestamp":"2026-10-27T09:00:00.120Z","data":{"value":{"window":{"type":"Rolling","length":"PT24H"},"open":"66100","high":"67600","low":"65950","previousClose":null,"volumeBase":"18234.5","volumeQuote":"1215367000.4"},"observedAt":"2026-10-27T09:00:00.101Z","receivedAt":"2026-10-27T09:00:00.115Z"}},"serializedValue":"{\"type\":\"Reset\",\"timestamp\":\"2026-10-27T09:00:00.120Z\",\"data\":{\"value\":{\"window\":{\"type\":\"Rolling\",\"length\":\"PT24H\"},\"open\":\"66100\",\"high\":\"67600\",\"low\":\"65950\",\"previousClose\":null,\"volumeBase\":\"18234.5\",\"volumeQuote\":\"1215367000.4\"},\"observedAt\":\"2026-10-27T09:00:00.101Z\",\"receivedAt\":\"2026-10-27T09:00:00.115Z\"}}\n{\"type\":\"Update\",\"timestamp\":\"2026-10-27T09:00:01.320Z\",\"data\":{\"value\":{\"window\":{\"type\":\"Rolling\",\"length\":\"PT24H\"},\"open\":\"66100\",\"high\":\"67600\",\"low\":\"65950\",\"previousClose\":null,\"volumeBase\":\"18235.1\",\"volumeQuote\":\"1215407350.5\"},\"observedAt\":\"2026-10-27T09:00:01.301Z\",\"receivedAt\":\"2026-10-27T09:00:01.316Z\"}}\n\n{\"type\":\"Ended\",\"code\":\"UpstreamFailure\",\"message\":\"Upstream stream ended\"}\n"}},"exampleType":"examples"}},"exampleType":"examples"},"889a2e57-bf8e-419e-8793-ff8adce19121":{"description":"400 BadRequest; code is InvalidRequest.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"InvalidRequest":{"title":"InvalidRequest","value":{"code":"InvalidRequest","message":"Invalid cursor"}}},"exampleType":"examples"}},"exampleType":"examples"},"f1ea0971-3819-4151-95e0-5290320dd341":{"description":"401 Unauthenticated; code is Unauthenticated.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"Unauthenticated":{"title":"Unauthenticated","value":{"code":"Unauthenticated","message":"Unauthorized"}}},"exampleType":"examples"}},"exampleType":"examples"},"9819406a-a0db-40bf-b2c9-abe21d98cab7":{"description":"404 NotFound; code is AccountNotFound, OrderNotFound or NotFound.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"AccountNotFound":{"title":"AccountNotFound","value":{"code":"AccountNotFound","message":"Account not found: acc_123"}},"OrderNotFound":{"title":"OrderNotFound","value":{"code":"OrderNotFound","message":"Order not found: ord_456"}},"NotFound":{"title":"NotFound","value":{"code":"NotFound","message":"Not Found"}}},"exampleType":"examples"}},"exampleType":"examples"},"d950d2af-b2c7-49fa-8df7-91e80a5097b7":{"description":"415 UnsupportedMediaType; code is UnsupportedMediaType.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"UnsupportedMediaType":{"title":"UnsupportedMediaType","value":{"code":"UnsupportedMediaType","message":"Content type text/plain is not supported"}}},"exampleType":"examples"}},"exampleType":"examples"},"53d01c55-de59-424c-aecd-6fc769988d87":{"description":"422 Rejected; code is InsufficientFunds, InvalidProviderCredentials, AccountLimit, NotSupported or Rejected.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"InsufficientFunds":{"title":"InsufficientFunds","value":{"code":"InsufficientFunds","message":"Insufficient Funds"}},"InvalidProviderCredentials":{"title":"InvalidProviderCredentials","value":{"code":"InvalidProviderCredentials","message":"Unprocessable Entity"}},"AccountLimit":{"title":"AccountLimit","value":{"code":"AccountLimit","message":"Subscription limit reached"}},"NotSupported":{"title":"NotSupported","value":{"code":"NotSupported","message":"Unprocessable Entity"}},"Rejected":{"title":"Rejected","value":{"code":"Rejected","message":"Order price is not a multiple of the price increment"}}},"exampleType":"examples"}},"exampleType":"examples"},"4185ca4d-075f-4cb1-b024-79699cb3e702":{"description":"429 RateLimited; code is RateLimited.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"RateLimited":{"title":"RateLimited","value":{"code":"RateLimited","message":"Provider rate limited"}}},"exampleType":"examples"}},"exampleType":"examples"},"0339f8fa-fb62-4fcb-8009-1b530c092f62":{"description":"500 UnexpectedError; code is UnexpectedError.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"UnexpectedError":{"title":"UnexpectedError","value":{"code":"UnexpectedError","message":"Internal Server Error"}}},"exampleType":"examples"}},"exampleType":"examples"},"78aea2c1-68d5-4828-981c-95a0e7b7c897":{"description":"502 UpstreamFailure; code is UpstreamFailure or CancelAllFailed.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"UpstreamFailure":{"title":"UpstreamFailure","value":{"code":"UpstreamFailure","message":"Bad Gateway"}},"CancelAllFailed":{"title":"CancelAllFailed","value":{"code":"CancelAllFailed","message":"Bad Gateway"}}},"exampleType":"examples"}},"exampleType":"examples"},"e1a38193-3793-4701-a666-4f10c29fb835":{"description":"503 Unavailable; code is Unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"Unavailable":{"title":"Unavailable","value":{"code":"Unavailable","message":"Service Unavailable"}}},"exampleType":"examples"}},"exampleType":"examples"},"03f45d16-ad69-4d25-9869-ebb4700f6cfa":{"description":"504 UpstreamTimeout; code is UpstreamTimeout.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["InvalidRequest","Unauthenticated","Forbidden","AccountNotFound","OrderNotFound","NotFound","MethodNotAllowed","DuplicateClientOrderId","OrderAlreadyClosed","Conflict","UnsupportedMediaType","InsufficientFunds","InvalidProviderCredentials","AccountLimit","NotSupported","Rejected","RateLimited","UnexpectedError","CancelAllFailed","UpstreamFailure","Unavailable","UpstreamTimeout"],"description":"Stable error reason. The HTTP status for each code is fixed: InvalidRequest (400): Malformed JSON, wrong types, unknown fields or enum values, or invalid values.; Unauthenticated (401): Missing or invalid API key headers.; Forbidden (403): Authenticated, but without access to the account or operation.; AccountNotFound (404): The accountId does not exist.; OrderNotFound (404): The account exists, but the order identifier does not.; NotFound (404): Unknown path, host or venue.; MethodNotAllowed (405): The path exists but only accepts POST.; DuplicateClientOrderId (409): An order with this clientOrderId already exists.; OrderAlreadyClosed (409): The order is already filled, cancelled or rejected.; Conflict (409): A unique value (for example an account name) is already used.; UnsupportedMediaType (415): The request is not Content-Type application/json.; InsufficientFunds (422): The account cannot fund the order or withdrawal.; InvalidProviderCredentials (422): The provider rejected the account credentials.; AccountLimit (422): An account or subscription limit was reached.; NotSupported (422): The host does not support this operation, variant or instrument.; Rejected (422): The host or validation rejected the command.; RateLimited (429): The provider rate limited the request.; UnexpectedError (500): Unexpected server failure.; CancelAllFailed (502): At least one sub-cancel failed; reconcile with ListOpenOrders.; UpstreamFailure (502): The provider failed or returned an unusable response.; Unavailable (503): The service or provider is temporarily unavailable.; UpstreamTimeout (504): The provider did not respond in time. New codes may be added; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"description":"Every error has this shape, at every HTTP status, including unknown paths (404 NotFound) and wrong methods (405 MethodNotAllowed). code is the specific reason. Each operation describes when to retry and how to check the outcome; an error alone does not prove a command had no effect.","uniqueKey":"","typeLabel":"object"},"examples":{"UpstreamTimeout":{"title":"UpstreamTimeout","value":{"code":"UpstreamTimeout","message":"Gateway Timeout"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a45268ca-b483-4971-9c05-34ba8906f701":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[],"schemeName":"ApiKey"},"ApiSecret":{"type":"apiKey","in":"header","name":"X-API-SECRET","scopes":[],"schemeName":"ApiSecret"}}},"servers":{"370bdac0-2687-440d-bc90-9160600a2147":{"url":"https://api.plurex.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"X-API-KEY","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-API-KEY"},{"scheme":{"type":"apiKey","in":"header","name":"X-API-SECRET","scopes":[],"schemeName":"ApiSecret"},"schema":{"title":"X-API-SECRET","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiSecret","name":"X-API-SECRET"}],"title":"ApiKey \u0026 ApiSecret"}]},"originalFileLocation":"api-reference/platform/plurex-platform-api.yaml"},"subdomain":"plurex","siteName":"Plurex Docs","title":"Stream market statistics - Plurex Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T00:08:02.168Z","originalFileLocation":"api-reference/platform/venues/subscribe-to-market-statistics.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Streams one market\u0026#x27;s statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Plurex Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Stream market statistics - Plurex Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Streams one market\u0026#x27;s statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Plurex Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://plurex.mintlify.app/_mintlify/api/og/v2?division=Prices+and+market+statistics\u0026amp;title=Stream+market+statistics\u0026amp;description=Streams+one+market%27s+statistics+over+the+window+its+market+declares%3A+a+Reset+with+the+current+values%2C+then+an+Update+whenever+they+change.+A+market+the+venue+do\u0026amp;theme=1267ba68e08c08afc9c8746c\u0026amp;signature=85f7f39e65c5477584e840bf370b228e2fb15341c5fb2e369bfb2efbf6dcedf1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Stream market statistics - Plurex Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Streams one market\u0026#x27;s statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://plurex.mintlify.app/_mintlify/api/og/v2?division=Prices+and+market+statistics\u0026amp;title=Stream+market+statistics\u0026amp;description=Streams+one+market%27s+statistics+over+the+window+its+market+declares%3A+a+Reset+with+the+current+values%2C+then+an+Update+whenever+they+change.+A+market+the+venue+do\u0026amp;theme=1267ba68e08c08afc9c8746c\u0026amp;signature=85f7f39e65c5477584e840bf370b228e2fb15341c5fb2e369bfb2efbf6dcedf1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/plurex/xiN9lOeJgzOgEDZE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Plurex Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ba54f5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/platform/venues/subscribe-to-market-statistics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.plurex.io/#organization\",\"name\":\"Plurex Docs\",\"url\":\"https://docs.plurex.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/plurex/55zZlLmLoaaEFioa/logo/light.svg?fit=max\u0026auto=format\u0026n=55zZlLmLoaaEFioa\u0026q=85\u0026s=e150115596b050b7a538e6f784ec2f44\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.plurex.io#website\",\"name\":\"Plurex Docs\",\"url\":\"https://docs.plurex.io\",\"publisher\":{\"@id\":\"https://docs.plurex.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics#webpage\",\"url\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics\",\"name\":\"Stream market statistics\",\"description\":\"Streams one market's statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\",\"dateModified\":\"2026-10-28T00:08:02.168Z\",\"isPartOf\":{\"@id\":\"https://docs.plurex.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Market data\",\"item\":\"https://docs.plurex.io/api-reference/platform/venues/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prices and market statistics\",\"item\":\"https://docs.plurex.io/api-reference/platform/venues/get-prices\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Stream market statistics\",\"item\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics#apireference\",\"headline\":\"Stream market statistics\",\"name\":\"Stream market statistics\",\"description\":\"Streams one market's statistics over the window its market declares: a Reset with the current values, then an Update whenever they change. A market the venue does not stream returns 422 NotSupported.\",\"url\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.plurex.io/api-reference/platform/venues/subscribe-to-market-statistics#webpage\"},\"dateModified\":\"2026-10-28T00:08:02.168Z\",\"publisher\":{\"@id\":\"https://docs.plurex.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.plurex.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Plurex Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Plurex Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"Getting started","pages":[{"title":"Platform API","href":"/api-reference/platform/overview"},{"title":"API conventions","href":"/api-reference/platform/conventions"},{"title":"Errors","href":"/api-reference/platform/errors"}]},{"group":"Market data","pages":[{"group":"Venues and markets","pages":[{"title":"List venues","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/List","href":"/api-reference/platform/venues/list"},{"title":"List venue markets","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/ListMarkets","href":"/api-reference/platform/venues/list-markets"}]},{"group":"Order books","pages":[{"title":"Get order book","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetOrderBook","href":"/api-reference/platform/venues/get-order-book"},{"title":"Stream an order book","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToOrderBooks","playground":"none","href":"/api-reference/platform/venues/subscribe-to-order-books"}]},{"group":"Public trades","pages":[{"title":"Get recent trades","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetRecentTrades","href":"/api-reference/platform/venues/get-recent-trades"},{"title":"Stream public trades","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToTrades","playground":"none","href":"/api-reference/platform/venues/subscribe-to-trades"}]},{"group":"Prices and market statistics","pages":[{"title":"Get prices","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetPrices","href":"/api-reference/platform/venues/get-prices"},{"title":"Stream a price","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToPrices","playground":"none","href":"/api-reference/platform/venues/subscribe-to-prices"},{"title":"Get best quotes","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetBestQuotes","href":"/api-reference/platform/venues/get-best-quotes"},{"title":"Stream the best bid and ask","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToBestQuotes","playground":"none","href":"/api-reference/platform/venues/subscribe-to-best-quotes"},{"title":"Get market statistics","description":"Venue-reported statistics for each instrument, over the window its market declares.","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetMarketStatistics","href":"/api-reference/platform/venues/get-market-statistics"},{"title":"Stream market statistics","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToMarketStatistics","playground":"none","href":"/api-reference/platform/venues/subscribe-to-market-statistics"},{"title":"Get indicative fundings","description":"The current indicative funding rate for each perpetual. It is an estimate: the rate that settles can differ.","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetIndicativeFundings","href":"/api-reference/platform/venues/get-indicative-fundings"},{"title":"Stream indicative funding","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToIndicativeFundings","playground":"none","href":"/api-reference/platform/venues/subscribe-to-indicative-fundings"},{"title":"Get open interests","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/GetOpenInterests","href":"/api-reference/platform/venues/get-open-interests"},{"title":"Stream open interest","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToOpenInterests","playground":"none","href":"/api-reference/platform/venues/subscribe-to-open-interests"}]},{"group":"Candles","pages":[{"title":"List candles","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/query/ListCandles","href":"/api-reference/platform/venues/list-candles"},{"title":"Stream candles","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/venues/stream/SubscribeToCandles","playground":"none","href":"/api-reference/platform/venues/subscribe-to-candles"}]}]},{"group":"Trading","pages":[{"group":"Hosts and markets","pages":[{"title":"List hosts","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/List","href":"/api-reference/platform/hosts/list"},{"title":"List host markets","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListMarkets","href":"/api-reference/platform/hosts/list-markets"}]},{"group":"Orders","pages":[{"title":"Get an order","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/GetOrder","href":"/api-reference/platform/hosts/get-order"},{"title":"Get orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/GetOrders","href":"/api-reference/platform/hosts/get-orders"},{"title":"List open orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListOpenOrders","href":"/api-reference/platform/hosts/list-orders"},{"title":"Stream account orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/stream/SubscribeToAccountOrders","playground":"none","href":"/api-reference/platform/hosts/subscribe-to-account-orders"},{"title":"List closed orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListClosedOrders","href":"/api-reference/platform/hosts/list-closed-orders"},{"title":"Submit an order","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/SubmitOrder","href":"/api-reference/platform/hosts/submit-order"},{"title":"Cancel an order","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/CancelOrder","href":"/api-reference/platform/hosts/cancel-order"},{"title":"Cancel orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/CancelOrders","href":"/api-reference/platform/hosts/cancel-orders"},{"title":"Cancel all orders","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/CancelAllOrders","href":"/api-reference/platform/hosts/cancel-all-orders"}]},{"group":"Fills","pages":[{"title":"List fills","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListFills","href":"/api-reference/platform/hosts/list-fills"}]},{"group":"Balances and positions","pages":[{"title":"List wallets","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListWallets","href":"/api-reference/platform/hosts/list-wallets"},{"title":"List open positions","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListOpenPositions","href":"/api-reference/platform/hosts/list-positions"},{"title":"List margin states","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListAccountMarginStates","href":"/api-reference/platform/hosts/list-margin-states"},{"title":"Get market account state","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/GetAccountMarketState","href":"/api-reference/platform/hosts/get-market-state"}]},{"group":"Leverage and position mode","pages":[{"title":"Get market leverage","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/GetMarketLeverage","href":"/api-reference/platform/hosts/get-leverage"},{"title":"Get market position mode","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/GetMarketPositionMode","href":"/api-reference/platform/hosts/get-position-mode"},{"title":"Set market leverage","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/SetMarketLeverage","href":"/api-reference/platform/hosts/set-leverage"},{"title":"Set market position mode","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/command/SetMarketPositionMode","href":"/api-reference/platform/hosts/set-position-mode"}]},{"group":"Transactions","pages":[{"title":"List account transactions","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/query/ListTransactions","href":"/api-reference/platform/hosts/list-transactions"},{"title":"Stream account transactions","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/hosts/stream/SubscribeToAccountTransactions","playground":"none","href":"/api-reference/platform/hosts/subscribe-to-account-transactions"}]}]},{"group":"Accounts","pages":[{"title":"Connect an exchange or broker account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/command/Connect","href":"/api-reference/platform/accounts/connect"},{"title":"Update account credentials","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/command/UpdateConnection","href":"/api-reference/platform/accounts/update-connection"},{"title":"Rename an account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/command/Rename","href":"/api-reference/platform/accounts/rename"},{"title":"Delete an account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/command/Delete","href":"/api-reference/platform/accounts/delete"},{"title":"List accounts","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/query/List","href":"/api-reference/platform/accounts/list"},{"title":"Get an account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/accounts/query/Get","href":"/api-reference/platform/accounts/get"}]},{"group":"Paper trading","pages":[{"group":"Paper accounts","pages":[{"title":"Create a paper account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/command/CreateAccount","href":"/api-reference/platform/paper/create"},{"title":"Deposit into a paper account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/command/Deposit","href":"/api-reference/platform/paper/deposit"},{"title":"Withdraw from a paper account","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/command/Withdraw","href":"/api-reference/platform/paper/withdraw"}]},{"group":"Paper fees","pages":[{"title":"Set paper fee tier","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/command/SetFeeTier","href":"/api-reference/platform/paper/set-fee-tier"},{"title":"Get paper fee settings","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/query/GetFeeSettings","href":"/api-reference/platform/paper/get-fee-settings"},{"title":"Get effective paper fee rates","openapi":"api-reference/platform/plurex-platform-api.yaml POST /api/v1/paper/query/GetEffectiveFeeRates","href":"/api-reference/platform/paper/get-effective-fee-rates"}]}]}]}]},"title":"Stream market statistics - Plurex Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}