Ed25519 session-key request signing. Every authenticated request carries three headers: X-Monaco-PublicKey (64-char lowercase-hex session public key), X-Monaco-Timestamp (Unix milliseconds, within 30s of server time), and X-Monaco-Signature (hex ed25519 signature). The signature is over METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body), where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from POST /api/v1/auth/challenge followed by POST /api/v1/auth/verify.
One of the caller's margin accounts (the default one or a sub-account) to
describe instead of the default one: total, positions and
risk_buckets are then that account's own.
With include_accounts: the sum of accounts' totals.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Monaco Protocol SDK v1.1.14","description":"High-performance spot and perpetuals trading infrastructure built on Sei. Complete documentation for builders integrating Monaco Protocol into their applications.","colors":{"primary":"#233329","light":"#3A5544","dark":"#1A2620"},"logo":{"light":"https://mintcdn.com/monaco/Puhxf4Whf6wQMalZ/logo.png?fit=max\u0026auto=format\u0026n=Puhxf4Whf6wQMalZ\u0026q=85\u0026s=6b0d46b12348c8cb28126629f97faae0","dark":"https://mintcdn.com/monaco/Puhxf4Whf6wQMalZ/logo-white.png?fit=max\u0026auto=format\u0026n=Puhxf4Whf6wQMalZ\u0026q=85\u0026s=2e00e628ed93f72b88edb25eb8d8725e"},"favicon":"https://mintcdn.com/monaco/Puhxf4Whf6wQMalZ/logoMark.png?fit=max\u0026auto=format\u0026n=Puhxf4Whf6wQMalZ\u0026q=85\u0026s=7cfd00a92f26b8cb3855b908c31629b8","api":{"playground":{"proxy":false},"examples":{"prefill":true}},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://0xmonaco.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"monaco","hasAudioNarration":false,"actualSubdomain":"monaco","customDomains":["docs.0xmonaco.com"],"gitSource":{"type":"github","owner":"monaco-research","repo":"monaco-core","deployBranch":"develop","contentDirectory":"docs/src","isPrivate":true,"mountPath":"","label":""},"feedback":{"issues":false,"edits":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5296f119781e823692a89","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"APIs","count":189},{"language":"default","tag":"REST API","count":166},{"language":"default","tag":"Libraries","count":27},{"language":"default","tag":"gRPC API","count":21},{"language":"default","tag":"Protobuf Reference","count":21},{"language":"default","tag":"Market","count":20},{"language":"default","tag":"TypeScript SDK","count":19},{"language":"default","tag":"Margin Accounts","count":19},{"language":"default","tag":"Orders","count":19},{"language":"default","tag":"Accounts","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/accountsservice/get-portfolio-margin","slug":"/api-reference/accountsservice/get-portfolio-margin","pageMetadata":{"title":"Get portfolio margin","description":"Get the current authoritative parent margin and risk-bucket projection.","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/margin","href":"/api-reference/accountsservice/get-portfolio-margin","autogeneratedByOpenApi":true},"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: \"Get the current authoritative parent margin and risk-bucket projection.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get portfolio margin","description":"Get the current authoritative parent margin and risk-bucket projection.","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/margin","href":"/api-reference/accountsservice/get-portfolio-margin","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["AccountsService","Accounts"],"summary":"Get portfolio margin","description":"Get the current authoritative parent margin and risk-bucket projection.","operationId":"get_portfolio_margin","parameters":["dc2a2824-bbc7-4aa0-bd9c-0d9df391df3a","5c565f13-ed94-4103-9b01-41e6009b3c9a"],"responses":{"200":"b608a0f4-06d3-4224-a305-65d7efc78b6e","401":"fb863198-c0f7-4797-9289-7f6ac49767db","429":"2fd748dc-6410-42b4-a3dd-79c8a1df80f1","500":"9c198956-14e1-4e68-8b76-a096bb224910","503":"0eba5da2-e92a-4217-9a97-e582f5c143f0"},"security":["0e92f93d-afb0-4e54-8d43-ff02f6ced201","b0da41e1-e82c-4881-952e-222ff690750f"],"method":"get","type":"path","servers":["76af5a68-1490-444f-9e1c-a0268868c659"],"path":"/api/v1/accounts/me/portfolio/margin","baseUrlOptions":["https://apimonaco.xyz"],"title":"Get portfolio margin","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[],"disableProxy":true},"dependencies":{"parameters":{"dc2a2824-bbc7-4aa0-bd9c-0d9df391df3a":{"name":"marginAccountId","in":"query","description":"One of the caller's margin accounts (the default one or a sub-account) to\n describe instead of the default one: `total`, `positions` and\n `risk_buckets` are then that account's own.","schema":{"type":"string","description":"One of the caller's margin accounts (the default one or a sub-account) to\n describe instead of the default one: `total`, `positions` and\n `risk_buckets` are then that account's own.","uniqueKey":"","typeLabel":"string"}},"5c565f13-ed94-4103-9b01-41e6009b3c9a":{"name":"includeAccounts","in":"query","description":"Also return `accounts`, one row per open margin account of the caller,\n and `owner_total`, their sum: the owner rollup across sub-accounts.","schema":{"type":"boolean","description":"Also return `accounts`, one row per open margin account of the caller,\n and `owner_total`, their sum: the owner rollup across sub-accounts.","uniqueKey":"","typeLabel":"boolean"}}},"responses":{"b608a0f4-06d3-4224-a305-65d7efc78b6e":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"oneOf":[{"type":"string","uniqueKey":"asOf.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"asOf.oneOf.1","typeLabel":"null"}],"uniqueKey":"asOf","typeLabel":"string | null"},"total":{"type":"object","properties":{"equity":{"oneOf":[{"type":"string","uniqueKey":"total.equity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.equity.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.equity","typeLabel":"string | null"},"collateralBalance":{"oneOf":[{"type":"string","uniqueKey":"total.collateralBalance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.collateralBalance.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.collateralBalance","typeLabel":"string | null"},"parentAvailableCollateral":{"oneOf":[{"type":"string","uniqueKey":"total.parentAvailableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.parentAvailableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.parentAvailableCollateral","typeLabel":"string | null"},"initialMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"total.initialMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.initialMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.initialMarginRequired","typeLabel":"string | null"},"maintenanceMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"total.maintenanceMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.maintenanceMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.maintenanceMarginRequired","typeLabel":"string | null"},"unrealizedPnl":{"oneOf":[{"type":"string","uniqueKey":"total.unrealizedPnl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"total.unrealizedPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.unrealizedPnl","typeLabel":"string | null"},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"total.withdrawableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"total.withdrawableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"total.withdrawableCollateral","typeLabel":"string | null"}},"uniqueKey":"total","typeLabel":"object"},"positions":{"type":"object","properties":{"total":{"oneOf":[{"type":"string","uniqueKey":"positions.total.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.total.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.total","typeLabel":"string | null"},"cross":{"oneOf":[{"type":"string","uniqueKey":"positions.cross.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.cross.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.cross","typeLabel":"string | null"},"isolated":{"oneOf":[{"type":"string","uniqueKey":"positions.isolated.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"positions.isolated.oneOf.1","typeLabel":"null"}],"uniqueKey":"positions.isolated","typeLabel":"string | null"}},"uniqueKey":"positions","typeLabel":"object"},"riskBuckets":{"oneOf":[{"type":"array","items":{"required":["marginMode"],"type":"object","properties":{"marginMode":{"example":"CROSS","enum":["ISOLATED","CROSS"],"type":"string","description":"The mode this risk bucket is margined under. Always present: every row here is a risk bucket and its mode is a non-null column, unlike MarginAccountSummary.marginMode which is optional because that shape also models a parent row belonging to no bucket. Labels each row so bucket margin can be attributed to cross or isolated from this response alone, instead of resolving the opaque riskBucketId against the margin-accounts surface. It does NOT reconcile with the positions.cross / positions.isolated counts beside it: those are counted by a separate query over every margin account for the caller's user/application pair (these rows come from the single oldest, parent account), and they attribute a legacy position carrying no risk-bucket reference to CROSS whether or not a cross bucket row exists. Treat the counts as account-wide totals, not as a checksum over these rows.","isRequired":true,"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].marginMode","typeLabel":"enum\u003cstring>"},"riskBucketId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].riskBucketId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].riskBucketId.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].riskBucketId","typeLabel":"string\u003cuuid> | null"},"collateral":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].collateral.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].collateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].collateral","typeLabel":"string | null"},"freeCollateral":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].freeCollateral.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].freeCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].freeCollateral","typeLabel":"string | null"},"initialMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].initialMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].initialMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].initialMarginRequired","typeLabel":"string | null"},"maintenanceMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maintenanceMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maintenanceMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maintenanceMarginRequired","typeLabel":"string | null"},"unrealizedPnl":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].unrealizedPnl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].unrealizedPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].unrealizedPnl","typeLabel":"string | null"},"positionCount":{"oneOf":[{"type":"string","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].positionCount.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].positionCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].positionCount","typeLabel":"string | null"},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest transfer-out of this risk bucket the engine accepts without\n lowering a position's posted margin β the bound enforced on bucket\n collateral withdrawals that leave the positions' leverage alone. A removal\n from an isolated risk bucket with one open position can take more: see\n `max_removable_collateral`.\n\n NOT a clamped `free_collateral`: free collateral is equity headroom and\n credits mark-to-market gains that a transfer-out cannot move. This bound\n is the bucket's allocated collateral plus its realized PnL, less funding\n paid, unrealized losses and the margin its positions and resting orders\n require. Realized profit can leave a live bucket this way (the bucket's\n allocation may go negative); an unrealized gain never raises it.\n\n This is the largest accepted transfer-out, and every smaller amount is\n accepted too. It is zero on a risk bucket that is not `NORMAL` and on one\n whose realized loss has used up its allocation. The same figure as the\n risk-bucket rows' `MarginAccountSummary.withdrawable_collateral`.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].withdrawableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The largest transfer-out of this risk bucket the engine accepts without\n lowering a position's posted margin β the bound enforced on bucket\n collateral withdrawals that leave the positions' leverage alone. A removal\n from an isolated risk bucket with one open position can take more: see\n `max_removable_collateral`.\n\n NOT a clamped `free_collateral`: free collateral is equity headroom and\n credits mark-to-market gains that a transfer-out cannot move. This bound\n is the bucket's allocated collateral plus its realized PnL, less funding\n paid, unrealized losses and the margin its positions and resting orders\n require. Realized profit can leave a live bucket this way (the bucket's\n allocation may go negative); an unrealized gain never raises it.\n\n This is the largest accepted transfer-out, and every smaller amount is\n accepted too. It is zero on a risk bucket that is not `NORMAL` and on one\n whose realized loss has used up its allocation. The same figure as the\n risk-bucket rows' `MarginAccountSummary.withdrawable_collateral`.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].withdrawableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].withdrawableCollateral","typeLabel":"string | null"},"availableOrderCollateral":{"oneOf":[{"type":"string","description":"The collateral still available to open NEW orders in this risk bucket β\n the same engine-served admission bound as\n `MarginAccountSummary.available_order_collateral` (see that field for the\n full semantics: an envelope delta with parent auto top-up included, NOT\n additive across rows, zero while frozen), truncated toward zero at quote\n decimals like `withdrawable_collateral` beside it.\n\n Present only when a live risk engine snapshot served the bound; absent on\n persisted-fallback reads, where neither of the gate's terms is\n reconstructable.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].availableOrderCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The collateral still available to open NEW orders in this risk bucket β\n the same engine-served admission bound as\n `MarginAccountSummary.available_order_collateral` (see that field for the\n full semantics: an envelope delta with parent auto top-up included, NOT\n additive across rows, zero while frozen), truncated toward zero at quote\n decimals like `withdrawable_collateral` beside it.\n\n Present only when a live risk engine snapshot served the bound; absent on\n persisted-fallback reads, where neither of the gate's terms is\n reconstructable.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].availableOrderCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].availableOrderCollateral","typeLabel":"string | null"},"tradingPairId":{"oneOf":[{"type":"string","description":"Trading pair UUID this bucket is scoped to. Present for ISOLATED buckets;\n absent for CROSS, which spans the markets where it has an open position and\n is scoped to none of them individually β the same invariant the\n transfer-in endpoint enforces by rejecting a `trading_pair_id` in CROSS\n mode. Read the cross bucket's membership from\n `MarginAccountSummary.selected_trading_pair_ids`; it is not carried here\n because deriving it would cost this endpoint an extra query per request.\n\n These labels do NOT make this response row-for-row joinable with the\n margin-accounts surface on (mode, pair). That surface emits rows this one\n has no counterpart for β a provisioned-but-unfunded auto bucket, and a\n parent row with no mode at all β and on a persisted-fallback read (no live\n risk engine snapshot) the two surfaces attribute a legacy position\n carrying no risk-bucket reference to OPPOSITE buckets: this endpoint reads\n it as cross, the margin-accounts summary as isolated on pair match. Use\n these fields to label and group this response, not to cross-foot it\n against another.","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].tradingPairId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"Trading pair UUID this bucket is scoped to. Present for ISOLATED buckets;\n absent for CROSS, which spans the markets where it has an open position and\n is scoped to none of them individually β the same invariant the\n transfer-in endpoint enforces by rejecting a `trading_pair_id` in CROSS\n mode. Read the cross bucket's membership from\n `MarginAccountSummary.selected_trading_pair_ids`; it is not carried here\n because deriving it would cost this endpoint an extra query per request.\n\n These labels do NOT make this response row-for-row joinable with the\n margin-accounts surface on (mode, pair). That surface emits rows this one\n has no counterpart for β a provisioned-but-unfunded auto bucket, and a\n parent row with no mode at all β and on a persisted-fallback read (no live\n risk engine snapshot) the two surfaces attribute a legacy position\n carrying no risk-bucket reference to OPPOSITE buckets: this endpoint reads\n it as cross, the margin-accounts summary as isolated on pair match. Use\n these fields to label and group this response, not to cross-foot it\n against another.","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].tradingPairId.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].tradingPairId","typeLabel":"string\u003cuuid> | null"},"copyFollowId":{"oneOf":[{"type":"string","description":"On a copy risk bucket row, the id of the follow (copy account) that funds it","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyFollowId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"On a copy risk bucket row, the id of the follow (copy account) that funds it","format":"uuid","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyFollowId.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyFollowId","typeLabel":"string\u003cuuid> | null"},"copyLeaderHandle":{"oneOf":[{"type":"string","description":"On a copy risk bucket row, the followed leader's custom TraderCode handle, when they still hold one","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyLeaderHandle.oneOf.0","typeLabel":"string"},{"type":"null","description":"On a copy risk bucket row, the followed leader's custom TraderCode handle, when they still hold one","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyLeaderHandle.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].copyLeaderHandle","typeLabel":"string | null"},"maxRemovableCollateral":{"oneOf":[{"type":"string","description":"The largest removal from this risk bucket the engine accepts when the\n removal may also lower the posted margin of the bucket's one open\n position, down to its initial margin at the mark β the same figure as\n `MarginAccountSummary.max_removable_collateral`. Equal to\n `withdrawable_collateral` for a cross risk bucket and for an isolated one\n with no open position or several. Present only when a live risk engine\n snapshot served it; truncated toward zero at quote decimals.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maxRemovableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The largest removal from this risk bucket the engine accepts when the\n removal may also lower the posted margin of the bucket's one open\n position, down to its initial margin at the mark β the same figure as\n `MarginAccountSummary.max_removable_collateral`. Equal to\n `withdrawable_collateral` for a cross risk bucket and for an isolated one\n with no open position or several. Present only when a live risk engine\n snapshot served it; truncated toward zero at quote decimals.","uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maxRemovableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX].maxRemovableCollateral","typeLabel":"string | null"}},"uniqueKey":"riskBuckets.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"riskBuckets.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"required":["marginMode"],"type":"object","properties":{"riskBucketId":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"collateral":{"oneOf":[{"type":"string"},{"type":"null"}]},"freeCollateral":{"oneOf":[{"type":"string"},{"type":"null"}]},"initialMarginRequired":{"oneOf":[{"type":"string"},{"type":"null"}]},"maintenanceMarginRequired":{"oneOf":[{"type":"string"},{"type":"null"}]},"unrealizedPnl":{"oneOf":[{"type":"string"},{"type":"null"}]},"positionCount":{"oneOf":[{"type":"string"},{"type":"null"}]},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest transfer-out of this risk bucket the engine accepts without\n lowering a position's posted margin β the bound enforced on bucket\n collateral withdrawals that leave the positions' leverage alone. A removal\n from an isolated risk bucket with one open position can take more: see\n `max_removable_collateral`.\n\n NOT a clamped `free_collateral`: free collateral is equity headroom and\n credits mark-to-market gains that a transfer-out cannot move. This bound\n is the bucket's allocated collateral plus its realized PnL, less funding\n paid, unrealized losses and the margin its positions and resting orders\n require. Realized profit can leave a live bucket this way (the bucket's\n allocation may go negative); an unrealized gain never raises it.\n\n This is the largest accepted transfer-out, and every smaller amount is\n accepted too. It is zero on a risk bucket that is not `NORMAL` and on one\n whose realized loss has used up its allocation. The same figure as the\n risk-bucket rows' `MarginAccountSummary.withdrawable_collateral`."},{"type":"null","description":"The largest transfer-out of this risk bucket the engine accepts without\n lowering a position's posted margin β the bound enforced on bucket\n collateral withdrawals that leave the positions' leverage alone. A removal\n from an isolated risk bucket with one open position can take more: see\n `max_removable_collateral`.\n\n NOT a clamped `free_collateral`: free collateral is equity headroom and\n credits mark-to-market gains that a transfer-out cannot move. This bound\n is the bucket's allocated collateral plus its realized PnL, less funding\n paid, unrealized losses and the margin its positions and resting orders\n require. Realized profit can leave a live bucket this way (the bucket's\n allocation may go negative); an unrealized gain never raises it.\n\n This is the largest accepted transfer-out, and every smaller amount is\n accepted too. It is zero on a risk bucket that is not `NORMAL` and on one\n whose realized loss has used up its allocation. The same figure as the\n risk-bucket rows' `MarginAccountSummary.withdrawable_collateral`."}]},"availableOrderCollateral":{"oneOf":[{"type":"string","description":"The collateral still available to open NEW orders in this risk bucket β\n the same engine-served admission bound as\n `MarginAccountSummary.available_order_collateral` (see that field for the\n full semantics: an envelope delta with parent auto top-up included, NOT\n additive across rows, zero while frozen), truncated toward zero at quote\n decimals like `withdrawable_collateral` beside it.\n\n Present only when a live risk engine snapshot served the bound; absent on\n persisted-fallback reads, where neither of the gate's terms is\n reconstructable."},{"type":"null","description":"The collateral still available to open NEW orders in this risk bucket β\n the same engine-served admission bound as\n `MarginAccountSummary.available_order_collateral` (see that field for the\n full semantics: an envelope delta with parent auto top-up included, NOT\n additive across rows, zero while frozen), truncated toward zero at quote\n decimals like `withdrawable_collateral` beside it.\n\n Present only when a live risk engine snapshot served the bound; absent on\n persisted-fallback reads, where neither of the gate's terms is\n reconstructable."}]},"marginMode":{"example":"CROSS","enum":["ISOLATED","CROSS"],"type":"string","description":"The mode this risk bucket is margined under. Always present: every row here is a risk bucket and its mode is a non-null column, unlike MarginAccountSummary.marginMode which is optional because that shape also models a parent row belonging to no bucket. Labels each row so bucket margin can be attributed to cross or isolated from this response alone, instead of resolving the opaque riskBucketId against the margin-accounts surface. It does NOT reconcile with the positions.cross / positions.isolated counts beside it: those are counted by a separate query over every margin account for the caller's user/application pair (these rows come from the single oldest, parent account), and they attribute a legacy position carrying no risk-bucket reference to CROSS whether or not a cross bucket row exists. Treat the counts as account-wide totals, not as a checksum over these rows."},"tradingPairId":{"oneOf":[{"type":"string","description":"Trading pair UUID this bucket is scoped to. Present for ISOLATED buckets;\n absent for CROSS, which spans the markets where it has an open position and\n is scoped to none of them individually β the same invariant the\n transfer-in endpoint enforces by rejecting a `trading_pair_id` in CROSS\n mode. Read the cross bucket's membership from\n `MarginAccountSummary.selected_trading_pair_ids`; it is not carried here\n because deriving it would cost this endpoint an extra query per request.\n\n These labels do NOT make this response row-for-row joinable with the\n margin-accounts surface on (mode, pair). That surface emits rows this one\n has no counterpart for β a provisioned-but-unfunded auto bucket, and a\n parent row with no mode at all β and on a persisted-fallback read (no live\n risk engine snapshot) the two surfaces attribute a legacy position\n carrying no risk-bucket reference to OPPOSITE buckets: this endpoint reads\n it as cross, the margin-accounts summary as isolated on pair match. Use\n these fields to label and group this response, not to cross-foot it\n against another.","format":"uuid"},{"type":"null","description":"Trading pair UUID this bucket is scoped to. Present for ISOLATED buckets;\n absent for CROSS, which spans the markets where it has an open position and\n is scoped to none of them individually β the same invariant the\n transfer-in endpoint enforces by rejecting a `trading_pair_id` in CROSS\n mode. Read the cross bucket's membership from\n `MarginAccountSummary.selected_trading_pair_ids`; it is not carried here\n because deriving it would cost this endpoint an extra query per request.\n\n These labels do NOT make this response row-for-row joinable with the\n margin-accounts surface on (mode, pair). That surface emits rows this one\n has no counterpart for β a provisioned-but-unfunded auto bucket, and a\n parent row with no mode at all β and on a persisted-fallback read (no live\n risk engine snapshot) the two surfaces attribute a legacy position\n carrying no risk-bucket reference to OPPOSITE buckets: this endpoint reads\n it as cross, the margin-accounts summary as isolated on pair match. Use\n these fields to label and group this response, not to cross-foot it\n against another.","format":"uuid"}]},"copyFollowId":{"oneOf":[{"type":"string","description":"On a copy risk bucket row, the id of the follow (copy account) that funds it","format":"uuid"},{"type":"null","description":"On a copy risk bucket row, the id of the follow (copy account) that funds it","format":"uuid"}]},"copyLeaderHandle":{"oneOf":[{"type":"string","description":"On a copy risk bucket row, the followed leader's custom TraderCode handle, when they still hold one"},{"type":"null","description":"On a copy risk bucket row, the followed leader's custom TraderCode handle, when they still hold one"}]},"maxRemovableCollateral":{"oneOf":[{"type":"string","description":"The largest removal from this risk bucket the engine accepts when the\n removal may also lower the posted margin of the bucket's one open\n position, down to its initial margin at the mark β the same figure as\n `MarginAccountSummary.max_removable_collateral`. Equal to\n `withdrawable_collateral` for a cross risk bucket and for an isolated one\n with no open position or several. Present only when a live risk engine\n snapshot served it; truncated toward zero at quote decimals."},{"type":"null","description":"The largest removal from this risk bucket the engine accepts when the\n removal may also lower the posted margin of the bucket's one open\n position, down to its initial margin at the mark β the same figure as\n `MarginAccountSummary.max_removable_collateral`. Equal to\n `withdrawable_collateral` for a cross risk bucket and for an isolated one\n with no open position or several. Present only when a live risk engine\n snapshot served it; truncated toward zero at quote decimals."}]}}},"uniqueKey":"riskBuckets.oneOf.1","typeLabel":"null"}],"uniqueKey":"riskBuckets","typeLabel":"object[] | null"},"marginAccountId":{"oneOf":[{"type":"string","description":"The margin account `total`, `positions` and `risk_buckets` describe;\n absent when the caller has no margin account yet.","uniqueKey":"marginAccountId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The margin account `total`, `positions` and `risk_buckets` describe;\n absent when the caller has no margin account yet.","uniqueKey":"marginAccountId.oneOf.1","typeLabel":"null"}],"uniqueKey":"marginAccountId","typeLabel":"string | null"},"accounts":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"marginAccountId":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].marginAccountId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].marginAccountId.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].marginAccountId","typeLabel":"string | null"},"subaccountKey":{"oneOf":[{"type":"string","description":"`default` for the default margin account, else the sub-account's key.","uniqueKey":"accounts.oneOf.0.items.[INDEX].subaccountKey.oneOf.0","typeLabel":"string"},{"type":"null","description":"`default` for the default margin account, else the sub-account's key.","uniqueKey":"accounts.oneOf.0.items.[INDEX].subaccountKey.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].subaccountKey","typeLabel":"string | null"},"total":{"oneOf":[{"type":"object","description":"The account's totals. `withdrawable_collateral` here is the persisted\n reconstruction of the engine's bound.","properties":{"equity":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.equity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.equity.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.equity","typeLabel":"string | null"},"collateralBalance":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.collateralBalance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.collateralBalance.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.collateralBalance","typeLabel":"string | null"},"parentAvailableCollateral":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.parentAvailableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.parentAvailableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.parentAvailableCollateral","typeLabel":"string | null"},"initialMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.initialMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.initialMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.initialMarginRequired","typeLabel":"string | null"},"maintenanceMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.maintenanceMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.maintenanceMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.maintenanceMarginRequired","typeLabel":"string | null"},"unrealizedPnl":{"oneOf":[{"type":"string","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.unrealizedPnl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.unrealizedPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.unrealizedPnl","typeLabel":"string | null"},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.withdrawableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.withdrawableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0.withdrawableCollateral","typeLabel":"string | null"}},"uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"accounts.oneOf.0.items.[INDEX].total.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts.oneOf.0.items.[INDEX].total","typeLabel":"object | null"}},"description":"One of the caller's open margin accounts in the owner rollup.","uniqueKey":"accounts.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"With `include_accounts`: every open margin account of the caller, the\n default one first, then sub-accounts by key.","uniqueKey":"accounts.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"marginAccountId":{"oneOf":[{"type":"string"},{"type":"null"}]},"subaccountKey":{"oneOf":[{"type":"string","description":"`default` for the default margin account, else the sub-account's key."},{"type":"null","description":"`default` for the default margin account, else the sub-account's key."}]},"total":{"oneOf":[{"type":"object","description":"The account's totals. `withdrawable_collateral` here is the persisted\n reconstruction of the engine's bound.","properties":{"equity":{"oneOf":[{"type":"string"},{"type":"null"}]},"collateralBalance":{"oneOf":[{"type":"string"},{"type":"null"}]},"parentAvailableCollateral":{"oneOf":[{"type":"string"},{"type":"null"}]},"initialMarginRequired":{"oneOf":[{"type":"string"},{"type":"null"}]},"maintenanceMarginRequired":{"oneOf":[{"type":"string"},{"type":"null"}]},"unrealizedPnl":{"oneOf":[{"type":"string"},{"type":"null"}]},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure."},{"type":"null","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure."}]}}},{"type":"null"}]}},"description":"One of the caller's open margin accounts in the owner rollup."},"description":"With `include_accounts`: every open margin account of the caller, the\n default one first, then sub-accounts by key.","uniqueKey":"accounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"accounts","typeLabel":"object[] | null"},"ownerTotal":{"oneOf":[{"type":"object","description":"With `include_accounts`: the sum of `accounts`' totals.","properties":{"equity":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.equity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.equity.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.equity","typeLabel":"string | null"},"collateralBalance":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.collateralBalance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.collateralBalance.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.collateralBalance","typeLabel":"string | null"},"parentAvailableCollateral":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.parentAvailableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.parentAvailableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.parentAvailableCollateral","typeLabel":"string | null"},"initialMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.initialMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.initialMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.initialMarginRequired","typeLabel":"string | null"},"maintenanceMarginRequired":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.maintenanceMarginRequired.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.maintenanceMarginRequired.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.maintenanceMarginRequired","typeLabel":"string | null"},"unrealizedPnl":{"oneOf":[{"type":"string","uniqueKey":"ownerTotal.oneOf.0.unrealizedPnl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ownerTotal.oneOf.0.unrealizedPnl.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.unrealizedPnl","typeLabel":"string | null"},"withdrawableCollateral":{"oneOf":[{"type":"string","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"ownerTotal.oneOf.0.withdrawableCollateral.oneOf.0","typeLabel":"string"},{"type":"null","description":"The largest amount that can actually leave the parent margin account β\n the bound the engine enforces on transfers-out and withdrawals, and\n therefore also the effective ceiling on funding new isolated or\n first-use order capacity, because allocating collateral to a risk\n bucket passes through the same capacity-gated door.\n\n NOT a clamped `parent_available_collateral`. That field is\n `free_collateral`, an equity figure: it credits mark-to-market gains\n and realized PnL still held in open risk buckets, which a transfer-out\n of the parent cannot move, so the two can differ without limit. This bound never credits an\n unrealized gain. It counts net deposits plus the account's settled\n realized PnL and funding, less what risk buckets have allocated:\n `min(net deposits + settled realized PnL - bucket allocations,\n free_collateral - max(unrealized_pnl, 0))`, floored at zero. This is the\n bound the engine's gates actually enforce. The same figure as\n `MarginAccountSummary.withdrawable_collateral`: both surfaces truncate it\n toward zero at the quote asset's precision.\n\n Size transfers-out, withdrawals, and new isolated/first-use positions\n from this field; `parent_available_collateral` remains the trading-margin\n headroom for existing cross exposure.","uniqueKey":"ownerTotal.oneOf.0.withdrawableCollateral.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal.oneOf.0.withdrawableCollateral","typeLabel":"string | null"}},"uniqueKey":"ownerTotal.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"ownerTotal.oneOf.1","typeLabel":"null"}],"uniqueKey":"ownerTotal","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"asOf":"\u003cstring>","total":{"equity":"\u003cstring>","collateralBalance":"\u003cstring>","parentAvailableCollateral":"\u003cstring>","initialMarginRequired":"\u003cstring>","maintenanceMarginRequired":"\u003cstring>","unrealizedPnl":"\u003cstring>","withdrawableCollateral":"\u003cstring>"},"positions":{"total":"\u003cstring>","cross":"\u003cstring>","isolated":"\u003cstring>"},"riskBuckets":[{"marginMode":"CROSS","riskBucketId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","collateral":"\u003cstring>","freeCollateral":"\u003cstring>","initialMarginRequired":"\u003cstring>","maintenanceMarginRequired":"\u003cstring>","unrealizedPnl":"\u003cstring>","positionCount":"\u003cstring>","withdrawableCollateral":"\u003cstring>","availableOrderCollateral":"\u003cstring>","tradingPairId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","copyFollowId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","copyLeaderHandle":"\u003cstring>","maxRemovableCollateral":"\u003cstring>"}],"marginAccountId":"\u003cstring>","accounts":[{"marginAccountId":"\u003cstring>","subaccountKey":"\u003cstring>","total":{"equity":"\u003cstring>","collateralBalance":"\u003cstring>","parentAvailableCollateral":"\u003cstring>","initialMarginRequired":"\u003cstring>","maintenanceMarginRequired":"\u003cstring>","unrealizedPnl":"\u003cstring>","withdrawableCollateral":"\u003cstring>"}}],"ownerTotal":{"equity":"\u003cstring>","collateralBalance":"\u003cstring>","parentAvailableCollateral":"\u003cstring>","initialMarginRequired":"\u003cstring>","maintenanceMarginRequired":"\u003cstring>","unrealizedPnl":"\u003cstring>","withdrawableCollateral":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fb863198-c0f7-4797-9289-7f6ac49767db":{"description":"Authentication required","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"2fd748dc-6410-42b4-a3dd-79c8a1df80f1":{"description":"Read rate limit exceeded β every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"9c198956-14e1-4e68-8b76-a096bb224910":{"description":"Internal server error","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0eba5da2-e92a-4217-9a97-e582f5c143f0":{"description":"Portfolio data unavailable","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"0e92f93d-afb0-4e54-8d43-ff02f6ced201":{"monacoSignature":{"type":"apiKey","description":"Ed25519 session-key request signing. Every authenticated request carries three headers: `X-Monaco-PublicKey` (64-char lowercase-hex session public key), `X-Monaco-Timestamp` (Unix milliseconds, within 30s of server time), and `X-Monaco-Signature` (hex ed25519 signature). The signature is over `METHOD\\npath?query\\ntimestamp_ms\\nSHA256_hex(body)`, where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from `POST /api/v1/auth/challenge` followed by `POST /api/v1/auth/verify`.","name":"X-Monaco-Signature","in":"header","scopes":[],"schemeName":"monacoSignature"}},"b0da41e1-e82c-4881-952e-222ff690750f":{"monacoHttpSignature":{"type":"apiKey","description":"RFC 9421 Ed25519 session-key request signatures. Send Signature-Input, Signature, and Content-Digest together; never combine them with X-Monaco-* credentials. The monaco signature covers @method, @path, @query, and content-digest in that order, with created (Unix seconds within 30s of server time), keyid (registered lowercase-hex session public key), and alg=ed25519 parameters. Content-Digest uses RFC 9530 sha-256 over the exact body bytes, including the empty body. Query coverage retains ordering and percent encoding. Timestamp freshness does not reject repeated identical requests; use endpoint idempotency where supported. Existing legacy signing remains supported during server-first migration; SDK RFC 9421 signing is opt-in. See https://docs.0xmonaco.com/reference/http-message-signatures for the complete profile and trust model.","name":"Signature","in":"header","scopes":[],"schemeName":"monacoHttpSignature"}}},"servers":{"76af5a68-1490-444f-9e1c-a0268868c659":{"url":"https://apimonaco.xyz","description":"Production (Sei mainnet)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","description":"Ed25519 session-key request signing. Every authenticated request carries three headers: `X-Monaco-PublicKey` (64-char lowercase-hex session public key), `X-Monaco-Timestamp` (Unix milliseconds, within 30s of server time), and `X-Monaco-Signature` (hex ed25519 signature). The signature is over `METHOD\\npath?query\\ntimestamp_ms\\nSHA256_hex(body)`, where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from `POST /api/v1/auth/challenge` followed by `POST /api/v1/auth/verify`.","name":"X-Monaco-Signature","in":"header","scopes":[],"schemeName":"monacoSignature"},"schema":{"title":"X-Monaco-Signature","type":"string","description":"Ed25519 session-key request signing. Every authenticated request carries three headers: `X-Monaco-PublicKey` (64-char lowercase-hex session public key), `X-Monaco-Timestamp` (Unix milliseconds, within 30s of server time), and `X-Monaco-Signature` (hex ed25519 signature). The signature is over `METHOD\\npath?query\\ntimestamp_ms\\nSHA256_hex(body)`, where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from `POST /api/v1/auth/challenge` followed by `POST /api/v1/auth/verify`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"monacoSignature","name":"X-Monaco-Signature"}],"title":"monacoSignature"},{"schemes":[{"scheme":{"type":"apiKey","description":"RFC 9421 Ed25519 session-key request signatures. Send Signature-Input, Signature, and Content-Digest together; never combine them with X-Monaco-* credentials. The monaco signature covers @method, @path, @query, and content-digest in that order, with created (Unix seconds within 30s of server time), keyid (registered lowercase-hex session public key), and alg=ed25519 parameters. Content-Digest uses RFC 9530 sha-256 over the exact body bytes, including the empty body. Query coverage retains ordering and percent encoding. Timestamp freshness does not reject repeated identical requests; use endpoint idempotency where supported. Existing legacy signing remains supported during server-first migration; SDK RFC 9421 signing is opt-in. See https://docs.0xmonaco.com/reference/http-message-signatures for the complete profile and trust model.","name":"Signature","in":"header","scopes":[],"schemeName":"monacoHttpSignature"},"schema":{"title":"Signature","type":"string","description":"RFC 9421 Ed25519 session-key request signatures. Send Signature-Input, Signature, and Content-Digest together; never combine them with X-Monaco-* credentials. The monaco signature covers @method, @path, @query, and content-digest in that order, with created (Unix seconds within 30s of server time), keyid (registered lowercase-hex session public key), and alg=ed25519 parameters. Content-Digest uses RFC 9530 sha-256 over the exact body bytes, including the empty body. Query coverage retains ordering and percent encoding. Timestamp freshness does not reject repeated identical requests; use endpoint idempotency where supported. Existing legacy signing remains supported during server-first migration; SDK RFC 9421 signing is opt-in. See https://docs.0xmonaco.com/reference/http-message-signatures for the complete profile and trust model.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"monacoHttpSignature","name":"Signature"}],"title":"monacoHttpSignature"}]},"originalFileLocation":"proto-openapi/api/openapi.yaml"},"subdomain":"monaco","siteName":"Monaco Protocol SDK v1.1.14","title":"Get portfolio margin - Monaco Protocol SDK v1.1.14","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T00:28:13.135Z","originalFileLocation":"api-reference/accountsservice/get-portfolio-margin.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=\"Get the current authoritative parent margin and risk-bucket projection.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Monaco Protocol SDK v1.1.14\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_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/monaco/4wZNikyT1wBLArhB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get portfolio margin - Monaco Protocol SDK v1.1.14\">\u003cmeta data-mint-head property=\"og:description\" content=\"Get the current authoritative parent margin and risk-bucket projection.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Monaco Protocol SDK v1.1.14\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://monaco.mintlify.site/_mintlify/api/og/v2?division=Accounts\u0026amp;title=Get+portfolio+margin\u0026amp;description=Get+the+current+authoritative+parent+margin+and+risk-bucket+projection.\u0026amp;theme=86c8539ecb88515b97c26589\u0026amp;signature=627d7fda01fd8d3e9489a4a79c4062ce1ff6507c81094579363977c53464ed18\">\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=\"Get portfolio margin - Monaco Protocol SDK v1.1.14\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Get the current authoritative parent margin and risk-bucket projection.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://monaco.mintlify.site/_mintlify/api/og/v2?division=Accounts\u0026amp;title=Get+portfolio+margin\u0026amp;description=Get+the+current+authoritative+parent+margin+and+risk-bucket+projection.\u0026amp;theme=86c8539ecb88515b97c26589\u0026amp;signature=627d7fda01fd8d3e9489a4a79c4062ce1ff6507c81094579363977c53464ed18\">\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/monaco/4wZNikyT1wBLArhB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Monaco Protocol SDK v1.1.14\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#233329\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/accountsservice/get-portfolio-margin.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.0xmonaco.com/#organization\",\"name\":\"Monaco Protocol SDK v1.1.14\",\"url\":\"https://docs.0xmonaco.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/monaco/Puhxf4Whf6wQMalZ/logo.png?fit=max\u0026auto=format\u0026n=Puhxf4Whf6wQMalZ\u0026q=85\u0026s=6b0d46b12348c8cb28126629f97faae0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.0xmonaco.com#website\",\"name\":\"Monaco Protocol SDK v1.1.14\",\"url\":\"https://docs.0xmonaco.com\",\"publisher\":{\"@id\":\"https://docs.0xmonaco.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin#webpage\",\"url\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin\",\"name\":\"Get portfolio margin\",\"description\":\"Get the current authoritative parent margin and risk-bucket projection.\",\"dateModified\":\"2026-11-12T00:28:13.135Z\",\"isPartOf\":{\"@id\":\"https://docs.0xmonaco.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"APIs\",\"item\":\"https://docs.0xmonaco.com/api-reference/healthservice/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST API\",\"item\":\"https://docs.0xmonaco.com/api-reference\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Accounts\",\"item\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-user-profile\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Get portfolio margin\",\"item\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin#apireference\",\"headline\":\"Get portfolio margin\",\"name\":\"Get portfolio margin\",\"description\":\"Get the current authoritative parent margin and risk-bucket projection.\",\"url\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin\",\"mainEntityOfPage\":{\"@id\":\"https://docs.0xmonaco.com/api-reference/accountsservice/get-portfolio-margin#webpage\"},\"dateModified\":\"2026-11-12T00:28:13.135Z\",\"publisher\":{\"@id\":\"https://docs.0xmonaco.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.0xmonaco.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Monaco Protocol SDK v1.1.14\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Monaco Protocol SDK v1.1.14\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/accountsservice/get-portfolio-margin.md","siteName":"Monaco Protocol SDK v1.1.14","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://0xmonaco.com"}]},"pages":[{"title":"Introduction","href":"/introduction"},{"title":"Markets","href":"/markets"},{"title":"AI \u0026 Agents","href":"/build-with-ai"},{"group":"Learn","pages":[{"title":"Accounts","href":"/accounts"},{"title":"Orders","href":"/trading-mechanics/spot"},{"title":"Margin","href":"/trading-mechanics/perps"},{"title":"Funding Rates","href":"/trading-mechanics/funding-rates"},{"title":"Liquidations \u0026 Auto-Deleveraging","href":"/trading-mechanics/liquidations"},{"title":"Fees","href":"/fees"},{"title":"Earn","href":"/earn"}]},{"group":"Build","pages":[{"title":"Quickstart","href":"/quickstart"},{"title":"Testnet","href":"/testnet"},{"title":"Wallets \u0026 Auth","href":"/developers/accounts/wallets"},{"title":"Balances, Deposits \u0026 Withdrawals","href":"/developers/vault"},{"title":"Perps Collateral","href":"/developers/perps-collateral"},{"title":"Market Data","href":"/developers/markets"},{"title":"Order Management","href":"/developers/trade"},{"title":"Rate Limits","href":"/developers/rate-limits"},{"title":"Positions","href":"/developers/positions"},{"title":"Market-Maker Runbook","href":"/developers/market-maker-runbook"},{"title":"RFQ (block trades)","href":"/developers/rfq"},{"title":"Delegated Agents","href":"/developers/delegated-agents"},{"title":"Invite Codes","href":"/developers/invite-codes"},{"title":"TraderCodes","href":"/developers/tradercodes"},{"title":"BuilderCodes","href":"/developers/buildercodes"}]},{"group":"Libraries","pages":[{"title":"MCP Server","href":"/sdk/mcp-server"},{"group":"TypeScript SDK","root":{"title":"TypeScript SDK","href":"/sdk/typescript/intro"},"expanded":false,"pages":[{"title":"Applications","href":"/sdk/typescript/applications"},{"title":"Authentication","href":"/sdk/typescript/auth"},{"title":"Error Handling","href":"/sdk/typescript/error-handling"},{"title":"Market Data","href":"/sdk/typescript/market"},{"title":"Market Pulse","href":"/sdk/typescript/pulse"},{"title":"Region Status","href":"/sdk/typescript/compliance"},{"title":"Analytics","href":"/sdk/typescript/analytics"},{"title":"Profile","href":"/sdk/typescript/profile"},{"title":"Portfolio Analytics","href":"/sdk/typescript/portfolio"},{"title":"Trading","href":"/sdk/typescript/trades"},{"title":"RFQ","href":"/sdk/typescript/rfq"},{"title":"Margin Accounts","href":"/sdk/typescript/margin-accounts"},{"title":"Positions","href":"/sdk/typescript/positions"},{"title":"Delegated Agents","href":"/sdk/typescript/delegated-agents"},{"title":"Vault","href":"/sdk/typescript/vault"},{"title":"TraderCodes","href":"/sdk/typescript/tradercodes"},{"title":"BuilderCodes","href":"/sdk/typescript/buildercodes"},{"title":"Managed Markets","href":"/sdk/typescript/managed-markets"},{"title":"WebSockets","href":"/sdk/typescript/websockets"}]},{"group":"React SDK","root":{"title":"React SDK","href":"/sdk/react/intro"},"expanded":false,"pages":[{"title":"Session \u0026 Profile Hooks","href":"/sdk/react/hooks/session"},{"title":"Market Data Hooks","href":"/sdk/react/hooks/market-data"},{"title":"Trading Hooks","href":"/sdk/react/hooks/trading"},{"title":"Balance \u0026 Vault Hooks","href":"/sdk/react/hooks/balances"},{"title":"TraderCodes Hooks","href":"/sdk/react/hooks/codes"}]},{"title":"Rust SDK","href":"/sdk/rust"},{"title":"Python, Go, C++ \u0026 More","href":"/sdk/python-quickstart"}]},{"group":"APIs","pages":[{"group":"REST API","root":{"title":"REST API","href":"/api-reference"},"expanded":false,"pages":[{"group":"Health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /health","href":"/api-reference/healthservice/health-check"}]},{"group":"Auth","pages":[{"title":"Create authentication challenge","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/auth/challenge","href":"/api-reference/authservice/create-authentication-challenge"},{"title":"Verify signature and authenticate","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/auth/verify","href":"/api-reference/authservice/verify-signature-and-authenticate"},{"title":"Mint one Mainnet invite code","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/invite-codes/requests","href":"/api-reference/authservice/mint-one-mainnet-invite-code"},{"title":"List my Mainnet invite codes","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/invite-codes","href":"/api-reference/authservice/list-my-mainnet-invite-codes"},{"title":"Refresh session expiry","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/auth/refresh","href":"/api-reference/authservice/refresh-session-expiry"},{"title":"Revoke current session","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/auth/revoke","href":"/api-reference/authservice/revoke-current-session"}]},{"group":"Accounts","pages":[{"title":"Get user profile","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me","href":"/api-reference/accountsservice/get-user-profile"},{"title":"Get user balances","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/balances","href":"/api-reference/accountsservice/get-user-balances"},{"title":"Get user balance by asset","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/balances/{assetId}","href":"/api-reference/accountsservice/get-user-balance-by-asset"},{"title":"Get user movements","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/movements","href":"/api-reference/accountsservice/get-user-movements"},{"title":"Get user trade history","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/trades","href":"/api-reference/accountsservice/get-user-trade-history"},{"title":"Get portfolio stats","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio","href":"/api-reference/accountsservice/get-portfolio-stats"},{"title":"Get portfolio chart time series","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/chart","href":"/api-reference/accountsservice/get-portfolio-chart-time-series"},{"title":"Get portfolio summary","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/summary","href":"/api-reference/accountsservice/get-portfolio-summary"},{"title":"Get portfolio performance","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/performance","href":"/api-reference/accountsservice/get-portfolio-performance"},{"title":"Get portfolio realized PnL","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/realized-pnl","href":"/api-reference/accountsservice/get-portfolio-realized-pnl"},{"title":"Get portfolio assets","description":"Get authoritative spot asset values and spot-subportfolio performance.","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/assets","href":"/api-reference/accountsservice/get-portfolio-assets"},{"title":"Get portfolio margin","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/me/portfolio/margin","href":"/api-reference/accountsservice/get-portfolio-margin"},{"title":"List funding payments","description":"List funding payment history.\n\n Get the current user's private funding payment history with pagination and\n optional filters by market, margin account, and position.","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/funding-payments","href":"/api-reference/accountsservice/list-funding-payments"},{"title":"List sub-accounts with balances","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/sub-accounts","href":"/api-reference/accountsservice/list-sub-accounts-with-balances"},{"title":"Get your self-trade-prevention default","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/self-trade-prevention","href":"/api-reference/accountsservice/get-your-self-trade-prevention-default"},{"title":"Set your self-trade-prevention default","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/accounts/self-trade-prevention","href":"/api-reference/accountsservice/set-your-self-trade-prevention-default"}]},{"group":"Account Limits","pages":[{"title":"Create sub-account limit","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/accounts/sub-accounts/limits","href":"/api-reference/accountsservice/create-sub-account-limit"},{"title":"Get sub-account limits","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/accounts/sub-accounts/{subAccountId}/limits","href":"/api-reference/accountsservice/get-sub-account-limits"},{"title":"Update sub-account limit","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/accounts/sub-accounts/{subAccountId}/limits/{assetId}","href":"/api-reference/accountsservice/update-sub-account-limit"},{"title":"Delete sub-account limit","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml delete /api/v1/accounts/sub-accounts/{subAccountId}/limits/{assetId}","href":"/api-reference/accountsservice/delete-sub-account-limit"}]},{"group":"Applications","pages":[{"title":"Get application configuration","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/config","href":"/api-reference/applicationsservice/get-application-configuration"},{"title":"Get application stats","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/stats","href":"/api-reference/applicationsservice/get-application-stats"},{"title":"List application users","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/users","href":"/api-reference/applicationsservice/list-application-users"},{"title":"List application balances","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/balances","href":"/api-reference/applicationsservice/list-application-balances"},{"title":"List application margin accounts","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/margin-accounts","href":"/api-reference/applicationsservice/list-application-margin-accounts"},{"title":"List application orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/orders","href":"/api-reference/applicationsservice/list-application-orders"},{"title":"List application movements","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/applications/movements","href":"/api-reference/applicationsservice/list-application-movements"}]},{"group":"Market","pages":[{"title":"Trading Pairs","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs","href":"/api-reference/marketservice/trading-pairs"},{"title":"Trading Pair By ID","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}","href":"/api-reference/marketservice/trading-pair-by-id"},{"title":"Market Metadata","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/metadata","href":"/api-reference/marketservice/market-metadata"},{"title":"Get apiv1marketpairs perpconfig","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/perp/config","href":"/api-reference/marketservice/get-apiv1marketpairs-perpconfig"},{"title":"Get apiv1marketpairs perpsummary","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/perp/summary","href":"/api-reference/marketservice/get-apiv1marketpairs-perpsummary"},{"title":"Get apiv1marketpairs mark price","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/mark-price","href":"/api-reference/marketservice/get-apiv1marketpairs-mark-price"},{"title":"Get apiv1marketpairs index price","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/index-price","href":"/api-reference/marketservice/get-apiv1marketpairs-index-price"},{"title":"Get apiv1marketpairs funding","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/funding","href":"/api-reference/marketservice/get-apiv1marketpairs-funding"},{"title":"Get apiv1marketpairs fundinghistory","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/funding/history","href":"/api-reference/marketservice/get-apiv1marketpairs-fundinghistory"},{"title":"Get apiv1marketfundinghistory","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/funding/history","href":"/api-reference/marketservice/get-apiv1marketfundinghistory"},{"title":"Open Interest","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/open-interest","href":"/api-reference/marketservice/open-interest"},{"title":"Trader Metrics","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/trader-metrics","href":"/api-reference/marketservice/trader-metrics"},{"title":"Trade Flow","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/trade-flow","href":"/api-reference/marketservice/trade-flow"},{"title":"Liquidation Events","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/liquidation-events","href":"/api-reference/marketservice/liquidation-events"},{"title":"All Liquidation Events","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/liquidation-events","href":"/api-reference/marketservice/all-liquidation-events"},{"title":"Insurance Funds","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/insurance-funds","href":"/api-reference/marketservice/insurance-funds"},{"title":"Liquidation Metrics","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/liquidation-metrics","href":"/api-reference/marketservice/liquidation-metrics"},{"title":"Candlestick Data","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/pairs/charts/candlestick/{tradingPairId}/{interval}","href":"/api-reference/marketservice/candlestick-data"},{"title":"Market Stats","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/stats","href":"/api-reference/marketservice/market-stats"},{"title":"Market Screener","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/market/screener","href":"/api-reference/marketservice/market-screener"}]},{"group":"Orderbook","pages":[{"title":"Orderbook Snapshot","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orderbook/{tradingPairId}","href":"/api-reference/orderbookservice/orderbook-snapshot"}]},{"group":"Trades","pages":[{"title":"Trade Feed","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/trades","href":"/api-reference/tradesservice/trade-feed"},{"title":"Recent Trades","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/trades/{tradingPairId}","href":"/api-reference/tradesservice/recent-trades"},{"title":"Get Trade by ID","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/trades/by-id/{tradeId}","href":"/api-reference/tradesservice/get-trade-by-id"}]},{"group":"RFQ","pages":[{"title":"Get RFQ capabilities","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/rfq/capabilities","href":"/api-reference/rfqservice/get-rfq-capabilities"},{"title":"Request quotes","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/rfqs","href":"/api-reference/rfqservice/request-quotes"},{"title":"List your RFQs","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/rfqs","href":"/api-reference/rfqservice/list-your-rfqs"},{"title":"Get an RFQ","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/rfqs/{rfqId}","href":"/api-reference/rfqservice/get-an-rfq"},{"title":"Accept an RFQ","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/rfqs/{rfqId}/accept","href":"/api-reference/rfqservice/accept-an-rfq"},{"title":"Cancel an RFQ","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/rfqs/{rfqId}/cancel","href":"/api-reference/rfqservice/cancel-an-rfq"},{"title":"Quote an RFQ","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/rfqs/{rfqId}/quote","href":"/api-reference/rfqservice/quote-an-rfq"},{"title":"Withdraw a quote","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml delete /api/v1/rfqs/{rfqId}/quote","href":"/api-reference/rfqservice/withdraw-a-quote"},{"title":"Answer last look","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/rfqs/{rfqId}/last-look","href":"/api-reference/rfqservice/answer-last-look"}]},{"group":"Fees","pages":[{"title":"Simulate fees for a potential order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/fees/simulate","href":"/api-reference/feesservice/simulate-fees-for-a-potential-order"},{"title":"Get my fee tier and pair schedule","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/fees/tier","href":"/api-reference/feesservice/get-my-fee-tier-and-pair-schedule"},{"title":"Get a trading pair's fee tier schedule","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/fees/schedule","href":"/api-reference/feesservice/get-a-trading-pairs-fee-tier-schedule"}]},{"group":"Withdrawals","pages":[{"title":"Initiate withdrawal","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/withdrawals","href":"/api-reference/withdrawalsservice/initiate-withdrawal"},{"title":"List pending withdrawals","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/withdrawals","href":"/api-reference/withdrawalsservice/list-pending-withdrawals"},{"title":"Get withdrawal","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/withdrawals/{withdrawalIndex}","href":"/api-reference/withdrawalsservice/get-withdrawal"}]},{"group":"Analytics","pages":[{"title":"Protocol totals","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/protocol/totals","href":"/api-reference/analyticsservice/protocol-totals"},{"title":"Protocol series","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/protocol/series","href":"/api-reference/analyticsservice/protocol-series"},{"title":"Market volumes","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/markets/volume","href":"/api-reference/analyticsservice/market-volumes"},{"title":"Treasury net fees","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/treasury/net-fees","href":"/api-reference/analyticsservice/treasury-net-fees"},{"title":"Builders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/builders","href":"/api-reference/analyticsservice/builders"},{"title":"Builder","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/builders/{builder}","href":"/api-reference/analyticsservice/builder"},{"title":"Builder totals","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/builders/{builder}/totals","href":"/api-reference/analyticsservice/builder-totals"},{"title":"Builder series","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/builders/{builder}/series","href":"/api-reference/analyticsservice/builder-series"},{"title":"Builder leaderboard","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/builder-leaderboard","href":"/api-reference/analyticsservice/builder-leaderboard"},{"title":"Wallet leaderboard","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/wallet-leaderboard","href":"/api-reference/analyticsservice/wallet-leaderboard"},{"title":"Wallet summary","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/wallets/{wallet}","href":"/api-reference/analyticsservice/wallet-summary"},{"title":"Wallet liquidations","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/wallets/{wallet}/liquidations","href":"/api-reference/analyticsservice/wallet-liquidations"},{"title":"Token custody","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/tokens","href":"/api-reference/analyticsservice/token-custody"},{"title":"Token custody detail","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/tokens/{token}","href":"/api-reference/analyticsservice/token-custody-detail"},{"title":"Vault deposits","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/deposits","href":"/api-reference/analyticsservice/vault-deposits"},{"title":"Vault withdrawals","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/analytics/withdrawals","href":"/api-reference/analyticsservice/vault-withdrawals"}]},{"group":"Pulse","pages":[{"title":"Get the market pulse news feed","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/pulse","href":"/api-reference/pulseservice/get-the-market-pulse-news-feed"}]},{"group":"Compliance","pages":[{"title":"Get the caller's region status","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/compliance/region","href":"/api-reference/complianceservice/get-the-callers-region-status"}]},{"group":"Sweeper","pages":[{"title":"Register a deposit address for monitoring","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/sweeper/register","href":"/api-reference/sweeperservice/register-a-deposit-address-for-monitoring"},{"title":"List the chains and assets the sweeper watches","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/sweeper/chains","href":"/api-reference/sweeperservice/list-the-chains-and-assets-the-sweeper-watches"},{"title":"List the caller's sweeper deposits, newest first","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/sweeper/deposits","href":"/api-reference/sweeperservice/list-the-callers-sweeper-deposits-newest-first"},{"title":"Get the status of the caller's deposit from Hyperliquid by its action nonce","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/sweeper/deposits/hypercore/{nonce}","href":"/api-reference/sweeperservice/get-the-status-of-the-callers-deposit-from-hyperliquid-by-its-action-nonce"},{"title":"Get the status of the caller's sweeper deposits in one transaction","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/sweeper/deposits/{txHash}","href":"/api-reference/sweeperservice/get-the-status-of-the-callers-sweeper-deposits-in-one-transaction"}]},{"group":"Managed Markets","pages":[{"title":"List caller managed market assignments","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/managed-markets/assignments","href":"/api-reference/managedmarketsservice/list-caller-managed-market-assignments"},{"title":"Claim or renew a fenced maker lease","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/managed-markets/{launchId}/lease","href":"/api-reference/managedmarketsservice/claim-or-renew-a-fenced-maker-lease"},{"title":"Refresh the server-bounded managed quote set","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/managed-markets/{launchId}/quotes","href":"/api-reference/managedmarketsservice/refresh-the-server-bounded-managed-quote-set"}]},{"group":"Orders","pages":[{"title":"Get user orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders","href":"/api-reference/ordersservice/get-user-orders"},{"title":"Create new order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders","href":"/api-reference/ordersservice/create-new-order"},{"title":"Get order by ID","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/{orderId}","href":"/api-reference/ordersservice/get-order-by-id"},{"title":"Replace existing order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/orders/{orderId}","href":"/api-reference/ordersservice/replace-existing-order"},{"title":"Cancel existing order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/cancel","href":"/api-reference/ordersservice/cancel-existing-order"},{"title":"Batch cancel specific orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/batch-cancel","href":"/api-reference/ordersservice/batch-cancel-specific-orders"},{"title":"Batch create orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/batch-create","href":"/api-reference/ordersservice/batch-create-orders"},{"title":"Batch replace orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/batch-replace","href":"/api-reference/ordersservice/batch-replace-orders"},{"title":"Cancel all orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/batch-cancel-all","href":"/api-reference/ordersservice/cancel-all-orders"},{"title":"Cancel all orders for a trading pair","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/batch-cancel-all/{tradingPairId}","href":"/api-reference/ordersservice/cancel-all-orders-for-a-trading-pair"},{"title":"Cancel all orders after a timeout","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/cancel-all-after","href":"/api-reference/ordersservice/cancel-all-orders-after-a-timeout"},{"title":"Get apiv1ordersconditional","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/conditional/{conditionalOrderId}","href":"/api-reference/ordersservice/get-apiv1ordersconditional"},{"title":"Get apiv1ordersconditional","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/conditional/{conditionalOrderId}","href":"/api-reference/ordersservice/get-apiv1ordersconditional"},{"title":"Delete apiv1ordersconditional","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml delete /api/v1/orders/conditional/{conditionalOrderId}","href":"/api-reference/ordersservice/delete-apiv1ordersconditional"},{"title":"Create TWAP order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/twap","href":"/api-reference/ordersservice/create-twap-order"},{"title":"List TWAP orders","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/twap","href":"/api-reference/ordersservice/list-twap-orders"},{"title":"Get TWAP order by ID","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/twap/{twapOrderId}","href":"/api-reference/ordersservice/get-twap-order-by-id"},{"title":"Get TWAP order TCA report","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/twap/{twapOrderId}/tca","href":"/api-reference/ordersservice/get-twap-order-tca-report"},{"title":"List TWAP order slices","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/orders/twap/{twapOrderId}/slices","href":"/api-reference/ordersservice/list-twap-order-slices"},{"title":"Cancel TWAP order","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/orders/twap/{twapOrderId}/cancel","href":"/api-reference/ordersservice/cancel-twap-order"}]},{"group":"Margin Accounts","pages":[{"title":"Get apiv1marginaccounts","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/accounts/{marginAccountId}","href":"/api-reference/marginaccountsservice/get-apiv1marginaccounts"},{"title":"Get apiv1marginaccounts","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/accounts/{marginAccountId}","href":"/api-reference/marginaccountsservice/get-apiv1marginaccounts"},{"title":"Post apiv1marginaccounts collateraltransfer in","deprecated":true,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/accounts/{marginAccountId}/collateral/transfer-in","href":"/api-reference/marginaccountsservice/post-apiv1marginaccounts-collateraltransfer-in"},{"title":"Post apiv1marginaccounts collateraltransfer out","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out","href":"/api-reference/marginaccountsservice/post-apiv1marginaccounts-collateraltransfer-out"},{"title":"Get apiv1marginaccounts movements","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/accounts/{marginAccountId}/movements","href":"/api-reference/marginaccountsservice/get-apiv1marginaccounts-movements"},{"title":"Get apiv1marginaccounts pnl","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/accounts/{marginAccountId}/pnl","href":"/api-reference/marginaccountsservice/get-apiv1marginaccounts-pnl"},{"title":"Post apiv1marginaccounts simulate order risk","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/accounts/{marginAccountId}/simulate-order-risk","href":"/api-reference/marginaccountsservice/post-apiv1marginaccounts-simulate-order-risk"},{"title":"Get apiv1margincollateralavailable","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/collateral/available","href":"/api-reference/marginaccountsservice/get-apiv1margincollateralavailable"},{"title":"Post apiv1margincollateraltransfer","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/collateral/transfer","href":"/api-reference/marginaccountsservice/post-apiv1margincollateraltransfer"},{"title":"Get apiv1marginparent margin account","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/parent-margin-account","href":"/api-reference/marginaccountsservice/get-apiv1marginparent-margin-account"},{"title":"Post apiv1marginparent margin accountcollateraltransfer in","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/parent-margin-account/collateral/transfer-in","href":"/api-reference/marginaccountsservice/post-apiv1marginparent-margin-accountcollateraltransfer-in"},{"title":"Post apiv1marginparent margin accountcollateraltransfer out","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/parent-margin-account/collateral/transfer-out","href":"/api-reference/marginaccountsservice/post-apiv1marginparent-margin-accountcollateraltransfer-out"},{"title":"Get apiv1marginparent margin accountmovements","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/margin/parent-margin-account/movements","href":"/api-reference/marginaccountsservice/get-apiv1marginparent-margin-accountmovements"},{"title":"Post apiv1marginparent margin accountsimulate order risk","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/parent-margin-account/simulate-order-risk","href":"/api-reference/marginaccountsservice/post-apiv1marginparent-margin-accountsimulate-order-risk"},{"title":"Post apiv1marginrisk bucketscollateraltransfer in","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/risk-buckets/collateral/transfer-in","href":"/api-reference/marginaccountsservice/post-apiv1marginrisk-bucketscollateraltransfer-in"},{"title":"Post apiv1marginrisk bucketssimulate order risk","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/risk-buckets/simulate-order-risk","href":"/api-reference/marginaccountsservice/post-apiv1marginrisk-bucketssimulate-order-risk"},{"title":"Post apiv1marginsub accounts","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/sub-accounts","href":"/api-reference/marginaccountsservice/post-apiv1marginsub-accounts"},{"title":"Post apiv1marginsub accounts close","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/sub-accounts/{marginAccountId}/close","href":"/api-reference/marginaccountsservice/post-apiv1marginsub-accounts-close"},{"title":"Post apiv1marginsub accounts collateraltransfer in","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in","href":"/api-reference/marginaccountsservice/post-apiv1marginsub-accounts-collateraltransfer-in"},{"title":"Post apiv1marginsub accounts collateraltransfer out","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-out","href":"/api-reference/marginaccountsservice/post-apiv1marginsub-accounts-collateraltransfer-out"}]},{"group":"Positions","pages":[{"title":"Get apiv1positions","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/positions/{positionId}","href":"/api-reference/positionsservice/get-apiv1positions"},{"title":"Get apiv1positionshistory","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/positions/history","href":"/api-reference/positionsservice/get-apiv1positionshistory"},{"title":"Post apiv1positionsbatch close all","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/positions/batch-close-all","href":"/api-reference/positionsservice/post-apiv1positionsbatch-close-all"},{"title":"Get apiv1positions","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/positions/{positionId}","href":"/api-reference/positionsservice/get-apiv1positions"},{"title":"Post apiv1positions close","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/positions/{positionId}/close","href":"/api-reference/positionsservice/post-apiv1positions-close"},{"title":"Get position PnL history","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/positions/{positionId}/pnl/history","href":"/api-reference/positionsservice/get-position-pnl-history"},{"title":"Get apiv1positions risk","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/positions/{positionId}/risk","href":"/api-reference/positionsservice/get-apiv1positions-risk"},{"title":"Post apiv1positions tp sl","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/positions/{positionId}/tp-sl","href":"/api-reference/positionsservice/post-apiv1positions-tp-sl"}]},{"group":"Delegated Agents","pages":[{"title":"Upsert delegated agent","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/delegated-agents","href":"/api-reference/delegatedagentsservice/upsert-delegated-agent"},{"title":"List delegated agents","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/delegated-agents","href":"/api-reference/delegatedagentsservice/list-delegated-agents"},{"title":"List delegating owners","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/delegated-agents/owners","href":"/api-reference/delegatedagentsservice/list-delegating-owners"},{"title":"Revoke delegated agent","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml delete /api/v1/delegated-agents/{delegatedAgentId}","href":"/api-reference/delegatedagentsservice/revoke-delegated-agent"},{"title":"Create delegated session","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/delegated-agents/sessions","href":"/api-reference/delegatedagentsservice/create-delegated-session"}]},{"group":"TraderCodes","pages":[{"title":"Get your TraderCode","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/codes/me","href":"/api-reference/tradercodeservice/get-your-tradercode"},{"title":"Check custom TraderCode availability","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/codes/available","href":"/api-reference/tradercodeservice/check-custom-tradercode-availability"},{"title":"Look up a TraderCode","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/codes/{code}","href":"/api-reference/tradercodeservice/look-up-a-tradercode"},{"title":"Claim or edit your custom TraderCode","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/tradercodes/codes/me/custom","href":"/api-reference/tradercodeservice/claim-or-edit-your-custom-tradercode"},{"title":"Clear your custom TraderCode","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml delete /api/v1/tradercodes/codes/me/custom","href":"/api-reference/tradercodeservice/clear-your-custom-tradercode"},{"title":"Get your referral position","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/referrals/me","href":"/api-reference/tradercodeservice/get-your-referral-position"},{"title":"Get your referral downline and earnings","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/referrals/me/downline","href":"/api-reference/tradercodeservice/get-your-referral-downline-and-earnings"},{"title":"Get one level of your referral tree","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/referrals/me/tree","href":"/api-reference/tradercodeservice/get-one-level-of-your-referral-tree"},{"title":"Get your rewards balance","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/tradercodes/rewards/balance","href":"/api-reference/tradercodeservice/get-your-rewards-balance"},{"title":"Transfer rewards into a trading balance","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/tradercodes/rewards/transfer","href":"/api-reference/tradercodeservice/transfer-rewards-into-a-trading-balance"}]},{"group":"BuilderCodes","pages":[{"title":"Get your BuilderCodes program configuration","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/buildercodes/config","href":"/api-reference/buildercoderewardsservice/get-your-buildercodes-program-configuration"},{"title":"Set your builder fees","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml put /api/v1/buildercodes/builder-fee","href":"/api-reference/buildercoderewardsservice/set-your-builder-fees"},{"title":"List your builder-fee changes","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/buildercodes/builder-fee/changes","href":"/api-reference/buildercoderewardsservice/list-your-builder-fee-changes"},{"title":"List your per-trade BuilderCodes earnings","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/buildercodes/payouts","href":"/api-reference/buildercoderewardsservice/list-your-per-trade-buildercodes-earnings"},{"title":"Summarize your BuilderCodes earnings","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/buildercodes/payouts/summary","href":"/api-reference/buildercoderewardsservice/summarize-your-buildercodes-earnings"},{"title":"Get your accrued BuilderCodes balance","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml get /api/v1/buildercodes/rewards/balance","href":"/api-reference/buildercoderewardsservice/get-your-accrued-buildercodes-balance"},{"title":"Claim accrued BuilderCodes payout balance","deprecated":null,"version":null,"openapi":"/proto-openapi/api/openapi.yaml post /api/v1/buildercodes/rewards/claim","href":"/api-reference/buildercoderewardsservice/claim-accrued-buildercodes-payout-balance"}]}]},{"title":"WebSocket API","href":"/reference/websockets"},{"title":"HTTP message signatures","href":"/reference/http-message-signatures"},{"group":"gRPC API","root":{"title":"gRPC API","href":"/reference/grpc"},"expanded":false,"pages":[{"group":"Protobuf Reference","root":{"title":"Protobuf Reference","href":"/grpc/protos"},"expanded":false,"pages":[{"group":"Core","pages":[{"title":"AuthService","href":"/grpc/protos/auth"},{"title":"AccountsService","href":"/grpc/protos/accounts"},{"title":"ApplicationsService","href":"/grpc/protos/applications"},{"title":"HealthService","href":"/grpc/protos/health"},{"title":"ComplianceService","href":"/grpc/protos/compliance"}]},{"group":"Trading","pages":[{"title":"MarketService","href":"/grpc/protos/market"},{"title":"AnalyticsService","href":"/grpc/protos/analytics"},{"title":"PulseService","href":"/grpc/protos/pulse"},{"title":"OrdersService","href":"/grpc/protos/orders"},{"title":"OrderbookService","href":"/grpc/protos/orderbook"},{"title":"TradesService","href":"/grpc/protos/trades"},{"title":"FeesService","href":"/grpc/protos/fees"},{"title":"RfqService","href":"/grpc/protos/rfq"}]},{"group":"Perps","pages":[{"title":"MarginAccountsService","href":"/grpc/protos/margin-accounts"},{"title":"PositionsService","href":"/grpc/protos/positions"}]},{"group":"Vault and Delegation","pages":[{"title":"WithdrawalsService","href":"/grpc/protos/withdrawals"},{"title":"SweeperService","href":"/grpc/protos/sweeper"},{"title":"DelegatedAgentsService","href":"/grpc/protos/delegated-agents"}]},{"group":"TraderCodes","pages":[{"title":"TraderCodeService","href":"/grpc/protos/tradercodes"}]},{"group":"BuilderCodes","pages":[{"title":"BuildercodeRewardsService","href":"/grpc/protos/buildercodes"}]},{"group":"Managed Markets","pages":[{"title":"ManagedMarketsService","href":"/grpc/protos/managed-markets"}]}]}]}]},{"group":"Resources","pages":[{"title":null,"href":"/changelog"},{"group":"Examples","expanded":false,"pages":[{"title":"Build a Trading App","href":"/examples/build-trading-app"},{"title":"End-to-End Examples","href":"/examples/end-to-end"}]}]}]},"basePath":"","title":"Get portfolio margin - Monaco Protocol SDK v1.1.14","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}