The response body shown here is a static example, not live data. After you click Send, your live result appears in a separate panel headed 200 OK. The panel under the status-code tabs is a fixed sample from the spec — its field values (fees, prices, sizes, IDs, timestamps) are placeholders. Use Send, or call the endpoint, for current values.
Returns all open positions for the requested account address. No authentication header is required.
Query Parameters
address
string
required
Master Ethereum address for this API key (must match address from POST /createApiKey for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.
20-byte EVM address as hex: optional 0x or 0X prefix and exactly 40 hexadecimal digits. API responses normalize to lowercase a–f after 0x.
Pattern: ^(0x|0X)?[0-9a-fA-F]{40}$
accountIndex
integer
default:0
Subaccount index (0–9) to scope the request to. Defaults to 0 (the primary account). Values above 9 → 400.
Required range: 0 <= x <= 9
market
string
Restrict results to a single market. Accepts either the display name (e.g. BTC-USD, case-insensitive) or the numeric market id (e.g. 1). Omit to return positions across all markets. An unresolvable value → 400. An account with no position in the requested market returns an empty positions object, not a 404.
Example:
"BTC-USD"
Response
List of positions.
positions
object
required
Open positions keyed by marketId (integer; 1=BTC-USD, 2=ETH-USD, etc). JSON keys are stringified integers. Always present — an account with no open positions returns an empty object {}. Same shape as Account.positions and the accounts channel snapshot, so a single shape works across REST GET /positions, REST GET /account, and the accounts / positions WebSocket snapshots. Streaming PositionUpdate frames keep their array shape — they're a different schema (one event per frame).
Show child attributes
total
integer
Number of items in this response (size of the positions map). Counts the returned page, not the full result set matching the query. REST-only: the positions WebSocket snapshot (PositionsSnapshot) does not carry this field.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Arcus Docs","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/arcus-11aecf6e/Pw2ZUiZemhLSrOMO/logo/light.svg?fit=max\u0026auto=format\u0026n=Pw2ZUiZemhLSrOMO\u0026q=85\u0026s=9bbd1de2de2a31d08c50e0d58bdac466","dark":"https://mintcdn.com/arcus-11aecf6e/Pw2ZUiZemhLSrOMO/logo/dark.svg?fit=max\u0026auto=format\u0026n=Pw2ZUiZemhLSrOMO\u0026q=85\u0026s=811a9395d1f3457230f9f5defa23c9d0"},"favicon":"https://mintcdn.com/arcus-11aecf6e/cwobDWFqGCQyNAqW/favicon.svg?fit=max\u0026auto=format\u0026n=cwobDWFqGCQyNAqW\u0026q=85\u0026s=c3d0e980a4a9fe344d7143e7f3c18caf","navbar":{"links":[{"href":"https://help.arcus.xyz","label":"Help Center"}],"primary":{"type":"button","label":"Go to Arcus","href":"https://app.arcus.xyz"}},"integrations":{"ga4":{"measurementId":"G-1232GKGLVQ"},"intercom":{"appId":"fdd72bam"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"arcus-11aecf6e","hasAudioNarration":false,"actualSubdomain":"arcus-11aecf6e","customDomains":["docs.arcus.xyz"],"gitSource":{"type":"github","owner":"dydxprotocol","repo":"v5-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af6b1f7aa6a9b02a8ca4e72","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API reference","count":99},{"language":"default","tag":"Endpoints","count":69},{"language":"default","tag":"Public","count":36},{"language":"default","tag":"WebSocket","count":22},{"language":"default","tag":"Concepts","count":20},{"language":"default","tag":"Referral","count":17},{"language":"default","tag":"Exchange","count":13},{"language":"default","tag":"Market data","count":11},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"Perpetuals","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6a0c053228609ad420f986bc","deploymentId":"69f19afe69cb5ad533409b0a","questionText":"How do I place an order","status":"active","generatedBy":"manual","createdAt":"2026-05-19T06:37:38.436Z","updatedAt":"2026-05-19T06:37:38.436Z","__v":0}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/public/get-positions","slug":"/api-reference/public/get-positions","pageMetadata":{"title":"Get positions","description":"Returns all open positions for the requested account address. No authentication header is required.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/positions","href":"/api-reference/public/get-positions","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: \"Returns all open positions for the requested account address. No authentication header is required.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(Note,{children:[_jsx(_components.strong,{children:`The response body shown here is a static example, not live data.`}),` After you click `,_jsx(_components.strong,{children:`Send`}),`, your live result appears in a separate panel headed `,_jsx(_components.strong,{children:`200 OK`}),`. The panel under the status-code tabs is a fixed sample from the spec — its field values (fees, prices, sizes, IDs, timestamps) are placeholders. Use `,_jsx(_components.strong,{children:`Send`}),`, or call the endpoint, for current values.`]}),`\n`,_jsx(_components.p,{children:`Returns all open positions for the requested account address. No authentication header is required.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get positions","description":"Returns all open positions for the requested account address. No authentication header is required.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/positions","href":"/api-reference/public/get-positions","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get positions","description":"Returns all open positions for the requested account address. No authentication header is required.\n","operationId":"getPositions","tags":["Public"],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"ADDR=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\ncurl \"https://api.arcus.xyz/v1/positions?address=${ADDR}\"\n"},{"lang":"Python","label":"requests","source":"import requests\nr = requests.get(\n \"https://api.arcus.xyz/v1/positions\",\n params={\"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\"},\n)\nprint(r.json())\n"},{"lang":"TypeScript","label":"fetch","source":"const url = new URL(\"https://api.arcus.xyz/v1/positions\");\nurl.searchParams.set(\"address\", \"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\");\nconst res = await fetch(url);\nconsole.log(await res.json());\n"}],"parameters":["4ba89900-2769-4a8e-9855-0f455cd6e4ca","b3d78b76-20a6-4a5f-8360-4e501b62c15d","ced014f2-1bbd-4bcb-9dbf-37444de557b8"],"responses":{"200":"32976704-9ee8-4c10-bf6c-9ee510301fe4","400":"44e1fd8d-1963-4ff2-89a1-b0eb34fd81e5","429":"6b977efe-b4a1-47b7-b4f8-8668cd79e242"},"x-mint":{"content":"\u003cNote>**The response body shown here is a static example, not live data.** After you click **Send**, your live result appears in a separate panel headed **200 OK**. The panel under the status-code tabs is a fixed sample from the spec — its field values (fees, prices, sizes, IDs, timestamps) are placeholders. Use **Send**, or call the endpoint, for current values.\u003c/Note>\n\nReturns all open positions for the requested account address. No authentication header is required."},"method":"get","type":"path","servers":["8bcbded4-ced7-41f7-9103-ef78afb86c4b","db341041-78f8-47d5-bb08-4c97d4cfedb3"],"security":[],"path":"/v1/positions","baseUrlOptions":["https://api.arcus.xyz","https://api.testnet.arcus.xyz"],"title":"Get positions","codeSamples":[{"label":"curl","lang":"Shell","source":"ADDR=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\ncurl \"https://api.arcus.xyz/v1/positions?address=${ADDR}\"\n"},{"label":"requests","lang":"Python","source":"import requests\nr = requests.get(\n \"https://api.arcus.xyz/v1/positions\",\n params={\"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\"},\n)\nprint(r.json())\n"},{"label":"fetch","lang":"TypeScript","source":"const url = new URL(\"https://api.arcus.xyz/v1/positions\");\nurl.searchParams.set(\"address\", \"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\");\nconst res = await fetch(url);\nconsole.log(await res.json());\n"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"4ba89900-2769-4a8e-9855-0f455cd6e4ca":{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^(0x|0X)?[0-9a-fA-F]{40}$","description":"Master Ethereum address for this API key (must match `address` from `POST /createApiKey` for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.\n\n20-byte EVM address as hex: optional `0x` or `0X` prefix and exactly 40 hexadecimal digits. API responses normalize to lowercase `a`–`f` after `0x`.\n","isRequired":true,"uniqueKey":"","typeLabel":"string"},"description":"Master Ethereum address for this API key (must match `address` from `POST /createApiKey` for the same key). Required on REST for account-scoped reads and for place/cancel. Invalid hex → 400; mismatch with key → 403.\n"},"b3d78b76-20a6-4a5f-8360-4e501b62c15d":{"name":"accountIndex","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":9,"default":0,"isRequired":false,"description":"Subaccount index (0–9) to scope the request to. Defaults to 0 (the primary account). Values above 9 → 400.\n","uniqueKey":"","typeLabel":"integer"},"description":"Subaccount index (0–9) to scope the request to. Defaults to 0 (the primary account). Values above 9 → 400.\n"},"ced014f2-1bbd-4bcb-9dbf-37444de557b8":{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"BTC-USD","isRequired":false,"description":"Restrict results to a single market. Accepts either the display name (e.g. `BTC-USD`, case-insensitive) or the numeric market id (e.g. `1`). Omit to return positions across all markets. An unresolvable value → 400. An account with no position in the requested market returns an empty `positions` object, not a 404.\n","uniqueKey":"","typeLabel":"string"},"description":"Restrict results to a single market. Accepts either the display name (e.g. `BTC-USD`, case-insensitive) or the numeric market id (e.g. `1`). Omit to return positions across all markets. An unresolvable value → 400. An account with no position in the requested market returns an empty `positions` object, not a 404.\n"}},"responses":{"32976704-9ee8-4c10-bf6c-9ee510301fe4":{"description":"List of positions.","content":{"application/json":{"schema":{"type":"object","required":["positions"],"properties":{"positions":{"type":"object","additionalProperties":{"type":"object","required":["address","accountIndex","marketId","marketDisplayName","side","size","averageEntryPrice","leverage","marginMode","borrowedCapital","marginUsed","positionValueNotional","unrealizedPnl","markPx"],"properties":{"address":{"type":"string","description":"Ethereum address as lowercase 0x + 40 hex digits.","examples":["0x0000000000000000000000000000000000000000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.address","typeLabel":"string"},"accountIndex":{"type":"integer","minimum":0,"maximum":9,"description":"Account index (account index, 0–9). Identifies the account for orders, positions, fills, and API keys.","isRequired":true,"uniqueKey":"positions.additionalProperties.accountIndex","typeLabel":"integer"},"marketId":{"type":"integer","minimum":0,"maximum":65535,"description":"Perpetual market identifier (uint16). Map to display name via `GET /markets`. Used for orders, positions, funding, and market metadata.","isRequired":true,"uniqueKey":"positions.additionalProperties.marketId","typeLabel":"integer"},"marketDisplayName":{"type":"string","description":"Market symbol (e.g. BTC-USD).","examples":["BTC-USD"],"isRequired":true,"uniqueKey":"positions.additionalProperties.marketDisplayName","typeLabel":"string"},"side":{"type":"string","enum":["LONG","SHORT"],"description":"Position direction.","isRequired":true,"uniqueKey":"positions.additionalProperties.side","typeLabel":"enum\u003cstring>"},"size":{"type":"string","description":"Signed position quantity. Positive for long, negative for short.","examples":["1000000","-500000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.size","typeLabel":"string"},"averageEntryPrice":{"type":"string","description":"Average entry price from the store (engine-derived from borrowed capital and size).","examples":["50000000000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.averageEntryPrice","typeLabel":"string"},"leverage":{"type":"string","description":"Effective leverage for this `(account, market)`, as a decimal string. Reflects the user override set via `POST /v1/setLeverage` when one is present, otherwise the market default.\n","examples":["10"],"isRequired":true,"uniqueKey":"positions.additionalProperties.leverage","typeLabel":"string"},"marginMode":{"type":"string","enum":["CROSS","ISOLATED"],"description":"Cross-margin uses shared account collateral across positions. Isolated margin allocates collateral per position. All positions are CROSS unless isolated margin is enabled.\n","isRequired":true,"uniqueKey":"positions.additionalProperties.marginMode","typeLabel":"enum\u003cstring>"},"borrowedCapital":{"type":"string","description":"Borrowed notional in quote currency (decimal string, same scale as account equity). Negative for longs, positive for shorts. Authoritative value from the store (engine).\n","examples":["-70000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.borrowedCapital","typeLabel":"string"},"marginUsed":{"type":"string","description":"Posted margin in quote currency (decimal string, same scale as equity).\n\n**CROSS:** initial margin required at the current mark: |size| × mark_price × initial_margin_fraction (per-market config, including user leverage and off-hours uplift). Uses the mark price when available; otherwise the entry price is used as the mark, consistent with notional and PnL fields.\n\n**ISOLATED:** the walled-off isolated-leg pool (engine `quoteBalance − borrowedCapital`), including extra posted via `POST /v1/adjustIsolatedMargin`. This does **not** track IMR as mark moves. The full isolated-leg cash balance is derivable as `marginUsed + borrowedCapital`.\n","examples":["7000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.marginUsed","typeLabel":"string"},"positionValueNotional":{"type":"string","description":"Signed position notional at mark in quote currency (decimal string, same scale as equity): base size × mark price. When no mark price is available for the market, the entry price is used as the mark for this value.\n","examples":["50000"],"isRequired":true,"uniqueKey":"positions.additionalProperties.positionValueNotional","typeLabel":"string"},"unrealizedPnl":{"type":"string","description":"Unrealized price PnL in quote currency: base size × (mark − average entry price), equivalently `size × mark + borrowedCapital`. Funding is excluded — it settles into `netQuoteBalance`. Uses the latest mark price (ticks); when no mark price is available, the entry price is used as the mark (so this reads \"0\").\n","examples":["125.5"],"isRequired":true,"uniqueKey":"positions.additionalProperties.unrealizedPnl","typeLabel":"string"},"markPx":{"type":"string","description":"Mark price (decimal string) at the time this position snapshot was calculated. `\"0\"` when no mark price was available for the market (the snapshot may still use entry price as the mark for notional and PnL fields).\n","examples":["97500.5"],"isRequired":true,"uniqueKey":"positions.additionalProperties.markPx","typeLabel":"string"},"cumulativeFunding":{"type":"object","description":"Lifetime funding payment totals for this position at three horizons. Values are decimal strings in quote-currency units. Sign convention: positive = received, negative = paid.\n\n**Populated only on snapshot paths:** REST `GET /account`, REST `GET /positions`, and the WebSocket `AccountsSnapshot` / `PositionsSnapshot` frames that mirror them.\n\n**Omitted from streaming `PositionUpdate` frames** because these totals only change at funding ticks (≈ once per hour) — stamping them on every position update would be mostly duplicate data. Clients that need up-to-the-moment funding totals should read them from the account snapshot, which is delivered on subscribe and refreshed periodically by the gateway, or via REST `GET /account` / `GET /positions`.\n","required":["allTime","sinceOpen","sinceChange"],"properties":{"allTime":{"type":"string","description":"Sum across every funding tick the position has ever been on book for, including across opens and closes.","examples":["1.234"],"isRequired":true,"uniqueKey":"positions.additionalProperties.cumulativeFunding.allTime","typeLabel":"string"},"sinceOpen":{"type":"string","description":"Sum since the position last went 0 → non-zero. Equals allTime if the position has never been closed.","examples":["0.567"],"isRequired":true,"uniqueKey":"positions.additionalProperties.cumulativeFunding.sinceOpen","typeLabel":"string"},"sinceChange":{"type":"string","description":"Sum since the most recent positions_history row (any size change). Resets on every fill that changes size.","examples":["0.012"],"isRequired":true,"uniqueKey":"positions.additionalProperties.cumulativeFunding.sinceChange","typeLabel":"string"}},"uniqueKey":"positions.additionalProperties.cumulativeFunding","typeLabel":"object"},"sequenceNumber":{"type":"integer","format":"uint64","description":"Per-account sequence of the engine event that last wrote this row (same counter as `AccountUpdate.sequenceNumber`). Present on WebSocket `positions` snapshots and streaming `PositionUpdate` rows; omitted on REST `GET /positions` when unset.\n","uniqueKey":"positions.additionalProperties.sequenceNumber","typeLabel":"integer\u003cuint64>"}},"uniqueKey":"positions.additionalProperties","typeLabel":"object"},"description":"Open positions keyed by marketId (integer; 1=BTC-USD, 2=ETH-USD, etc). JSON keys are stringified integers. Always present — an account with no open positions returns an empty object `{}`. Same shape as `Account.positions` and the `accounts` channel snapshot, so a single shape works across REST `GET /positions`, REST `GET /account`, and the `accounts` / `positions` WebSocket snapshots. Streaming `PositionUpdate` frames keep their array shape — they're a different schema (one event per frame).\n","properties":{},"isRequired":true,"uniqueKey":"positions","typeLabel":"object"},"total":{"type":"integer","description":"Number of items in this response (size of the `positions` map). Counts the returned page, not the full result set matching the query. REST-only: the `positions` WebSocket snapshot (`PositionsSnapshot`) does not carry this field.\n","uniqueKey":"total","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"positions":{},"total":123}}},"exampleType":"generated"}},"exampleType":"generated"},"44e1fd8d-1963-4ff2-89a1-b0eb34fd81e5":{"description":"Missing or invalid `address` or `market` query parameter.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","examples":["Invalid request body"],"isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code for generic (non-order) rejections. Present on geo-restriction blocks; clients should key product-availability UI off this rather than the human `error` string.\n\n| Value | Meaning |\n|------------------|---------|\n| `GEO_RESTRICTED` | The action is not available from the caller's country/region for this product (perps and/or spot). Reads remain available; only state-changing actions are blocked. |\n","enum":["GEO_RESTRICTED"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid request body","code":"GEO_RESTRICTED"}}},"exampleType":"generated"}},"exampleType":"generated"},"6b977efe-b4a1-47b7-b4f8-8668cd79e242":{"description":"Rate limit exceeded. Two signals are returned, designed to coexist with both naive HTTP clients and rate-limit-aware SDK clients:\n\n- `Retry-After` header (integer seconds, RFC 7231 compliant). Rounds up — clients that obey this header sleep at least as long as required. Safe for generic HTTP libraries to read.\n- JSON body `retryAfterMs` (precise milliseconds, matches the server's internal computation). Sophisticated clients should prefer this over the header to avoid the round-up overshoot.\n- JSON body `reason` indicates which rate-limit layer rejected: `ip` (per-IP weight bucket), `account_empty` (per-subaccount pool fully exhausted, in drip throttle), `account_partial` (pool has some credit but not enough for this batch — split the request smaller to drain), or `unknown` (defensive fallback).\n- JSON body `clientId` (single-order endpoints) or `clientIds` (batch endpoints) echoes the request's client-supplied order identifier(s) so the client can correlate the rejection to a specific order request.\n","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying the request.","schema":{"type":"integer","minimum":1,"example":1}}},"content":{"application/json":{"schema":{"description":"429 response body shape. Extends the generic `Error` with two rate-limit-specific fields:\n\n- `reason` — which limiter rejected the request. Stable string enum; new values may be added in future versions, so clients should treat unknown values as opaque.\n- `retryAfterMs` — precise milliseconds the client should wait before retrying. The HTTP `Retry-After` header carries the same information rounded up to whole seconds (RFC 7231); prefer this field when sub-second precision matters.\n","type":"object","required":["error"],"properties":{"error":{"type":"string","example":"rate limited","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"reason":{"type":"string","enum":["ip","account_empty","account_partial","unknown"],"description":"Layer that rejected the request:\n * `ip` — per-IP weight bucket exhausted.\n * `account_empty` — per-subaccount pool fully exhausted; the\n drip-throttle has no token available either.\n * `account_partial` — pool has some credit but not enough\n for this batch. Split the request into smaller chunks to\n drain the remaining headroom.\n * `unknown` — defensive fallback; clients should retry per\n `retryAfterMs` and report the occurrence.\n","uniqueKey":"reason","typeLabel":"enum\u003cstring>"},"retryAfterMs":{"type":"integer","format":"int64","minimum":0,"description":"Milliseconds to wait before retrying. Matches the precise wait the rate limiter computed (the `Retry-After` header rounds up to the next whole second).","uniqueKey":"retryAfterMs","typeLabel":"integer\u003cint64>"},"clientId":{"type":"string","description":"Echo of the request's client-supplied `clientId`, so the client can correlate the rejection to a specific order request. Present only on single-order endpoints (placeOrder, modifyOrder, cancelOrder) when the request carried a `clientId`. Omitted on batch endpoints (see `clientIds`) and when the request had none.\n","uniqueKey":"clientId","typeLabel":"string"},"clientIds":{"type":"array","items":{"type":"string","uniqueKey":"clientIds.items.[INDEX]","typeLabel":"string"},"description":"Echo of every client-supplied `clientId` in a batch request (batchPlaceOrders, batchCancelOrders), positionally aligned with the submitted `orders` / `cancels` array. A batch is rejected all-or-nothing, so every listed order was rejected; the echo lets a client submitting multiple batches concurrently correlate the 429 to a specific batch. An entry is empty when that element carried no `clientId` (e.g. a cancel-by-orderId). Omitted on single-order endpoints (see `clientId`).\n","uniqueKey":"clientIds","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"rate limited","reason":"account_empty","retryAfterMs":850,"clientId":"my-order-42"},"examples":{"Example":{"title":"Example","value":{"error":"rate limited","reason":"account_empty","retryAfterMs":850,"clientId":"my-order-42"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{},"servers":{"8bcbded4-ced7-41f7-9103-ef78afb86c4b":{"url":"https://api.arcus.xyz","description":"Mainnet"},"db341041-78f8-47d5-bb08-4c97d4cfedb3":{"url":"https://api.testnet.arcus.xyz","description":"Testnet"}}},"originalFileLocation":"api-reference/openapi.yml"},"subdomain":"arcus-11aecf6e","siteName":"Arcus Docs","title":"Get positions - Arcus Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T03:48:06.263Z","originalFileLocation":"api-reference/public/get-positions.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=\"Returns all open positions for the requested account address. No authentication header is required.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Arcus Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_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/arcus-11aecf6e/zluNDxrkwkprdXlm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get positions - Arcus Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns all open positions for the requested account address. No authentication header is required.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Arcus Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.arcus.xyz/api-reference/public/get-positions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://arcus-11aecf6e.mintlify.site/_mintlify/api/og/v2?division=Public\u0026amp;title=Get+positions\u0026amp;description=Returns+all+open+positions+for+the+requested+account+address.+No+authentication+header+is+required.%0A\u0026amp;theme=8f431044d56cd21a41b03f79\u0026amp;signature=51a7144ebe6a56a6c802c97558984a1186b58ed90717aa7b70e23fa7e33400ea\">\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 positions - Arcus Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns all open positions for the requested account address. No authentication header is required.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://arcus-11aecf6e.mintlify.site/_mintlify/api/og/v2?division=Public\u0026amp;title=Get+positions\u0026amp;description=Returns+all+open+positions+for+the+requested+account+address.+No+authentication+header+is+required.%0A\u0026amp;theme=8f431044d56cd21a41b03f79\u0026amp;signature=51a7144ebe6a56a6c802c97558984a1186b58ed90717aa7b70e23fa7e33400ea\">\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/arcus-11aecf6e/zluNDxrkwkprdXlm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Arcus Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.arcus.xyz/api-reference/public/get-positions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/public/get-positions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.arcus.xyz/#organization\",\"name\":\"Arcus Docs\",\"url\":\"https://docs.arcus.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/arcus-11aecf6e/Pw2ZUiZemhLSrOMO/logo/light.svg?fit=max\u0026auto=format\u0026n=Pw2ZUiZemhLSrOMO\u0026q=85\u0026s=9bbd1de2de2a31d08c50e0d58bdac466\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.arcus.xyz#website\",\"name\":\"Arcus Docs\",\"url\":\"https://docs.arcus.xyz\",\"publisher\":{\"@id\":\"https://docs.arcus.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.arcus.xyz/api-reference/public/get-positions#webpage\",\"url\":\"https://docs.arcus.xyz/api-reference/public/get-positions\",\"name\":\"Get positions\",\"description\":\"Returns all open positions for the requested account address. No authentication header is required.\",\"dateModified\":\"2026-11-12T03:48:06.263Z\",\"isPartOf\":{\"@id\":\"https://docs.arcus.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.arcus.xyz/api-reference/public/get-positions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.arcus.xyz/api-reference/public/get-positions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.arcus.xyz/api-reference/public/service-info\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Public\",\"item\":\"https://docs.arcus.xyz/api-reference/public/service-info\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get positions\",\"item\":\"https://docs.arcus.xyz/api-reference/public/get-positions\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.arcus.xyz/api-reference/public/get-positions#apireference\",\"headline\":\"Get positions\",\"name\":\"Get positions\",\"description\":\"Returns all open positions for the requested account address. No authentication header is required.\",\"url\":\"https://docs.arcus.xyz/api-reference/public/get-positions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.arcus.xyz/api-reference/public/get-positions#webpage\"},\"dateModified\":\"2026-11-12T03:48:06.263Z\",\"publisher\":{\"@id\":\"https://docs.arcus.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.arcus.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Arcus Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Arcus Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/public/get-positions.md","siteName":"Arcus Docs","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/fund-testnet-account"}]},{"tab":"Concepts","pages":[{"title":"Concepts","href":"/concepts/onboarding"}]},{"tab":"API reference","groups":[{"group":"API documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"WebSocket","href":"/api-reference/websocket"},{"title":"Rate limits","href":"/api-reference/rate-limits"}]},{"group":"Endpoints","pages":[{"group":"Public","pages":[{"title":"Service info","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /","href":"/api-reference/public/service-info"},{"title":"Health check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /health","href":"/api-reference/public/health-check"},{"title":"Get L2 orderbook snapshot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/l2OrderBook/{market}","href":"/api-reference/public/get-l2-orderbook-snapshot"},{"title":"Get Best Bid Offer (BBO)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/bbo/{market}","href":"/api-reference/public/get-best-bid-offer-bbo"},{"title":"Get current server time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/time","href":"/api-reference/public/get-current-server-time"},{"title":"Get all mid prices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/mids","href":"/api-reference/public/get-all-mid-prices"},{"title":"Get live prices for all markets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/prices","href":"/api-reference/public/get-live-prices-for-all-markets"},{"title":"Get fee tier table","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/feetiers","href":"/api-reference/public/get-fee-tier-table"},{"title":"Get referral commission rate schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/commissionrates","href":"/api-reference/public/get-referral-commission-rate-schedule"},{"title":"Get markets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/markets","href":"/api-reference/public/get-markets"},{"title":"Get market fee schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/markets/feeSchedules","href":"/api-reference/public/get-market-fee-schedules"},{"title":"Get corporate actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/corporateActions","href":"/api-reference/public/get-corporate-actions"},{"title":"Get corporate actions for a market","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/corporateActions/{market_id}","href":"/api-reference/public/get-corporate-actions-for-a-market"},{"title":"Get spot collateral assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/spotAssets","href":"/api-reference/public/get-spot-collateral-assets"},{"title":"Get global lending attributes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/lendingAttributes","href":"/api-reference/public/get-global-lending-attributes"},{"title":"Get recent public trades","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/trades","href":"/api-reference/public/get-recent-public-trades"},{"title":"Get a single trade by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/trade/{tradeId}","href":"/api-reference/public/get-a-single-trade-by-id"},{"title":"Get OHLCV candles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/candles","href":"/api-reference/public/get-ohlcv-candles"},{"title":"Get open orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/openOrders","href":"/api-reference/public/get-open-orders"},{"title":"Get order history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/orders","href":"/api-reference/public/get-order-history"},{"title":"Get fills","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/fills","href":"/api-reference/public/get-fills"},{"title":"Get spot fills","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/spotFills","href":"/api-reference/public/get-spot-fills"},{"title":"Get fill by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/fill/{tradeId}","href":"/api-reference/public/get-fill-by-id"},{"title":"Get account transfer updates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/accountTransferUpdates","href":"/api-reference/public/get-account-transfer-updates"},{"title":"Get funding payments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/funding","href":"/api-reference/public/get-funding-payments"},{"title":"Get interest payments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/interest","href":"/api-reference/public/get-interest-payments"},{"title":"Get market funding rates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/fundingRates","href":"/api-reference/public/get-market-funding-rates"},{"title":"Get portfolio history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/portfolio","href":"/api-reference/public/get-portfolio-history"},{"title":"Get current rate-limit usage","description":"Returns the rate-limit state of both per-subaccount pools (order and cancel) so callers can self-pace and inspect which throttle is constraining them.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/rateLimit","href":"/api-reference/public/get-current-rate-limit-usage"},{"title":"Get positions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/positions","href":"/api-reference/public/get-positions"},{"title":"Get spot positions","description":"Returns all open spot collateral positions for the requested account address, keyed by spot market id.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/spotPositions","href":"/api-reference/public/get-spot-positions"},{"title":"Get account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/account","href":"/api-reference/public/get-account"},{"title":"Get account stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/account/stats","href":"/api-reference/public/get-account-stats"},{"title":"Get order status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/order/{orderId}","href":"/api-reference/public/get-order-status"},{"title":"Get leverage and margin mode for an account across all markets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/leverages","href":"/api-reference/public/get-leverage-and-margin-mode-for-an-account-across-all-markets"},{"title":"Get the all-traders leaderboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/leaderboard","href":"/api-reference/public/get-the-all-traders-leaderboard"}]},{"group":"Exchange","pages":[{"title":"Place order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/placeOrder","href":"/api-reference/exchange/place-order"},{"title":"Place batch orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/batchPlaceOrders","href":"/api-reference/exchange/place-batch-orders"},{"title":"Cancel order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/cancelOrder","href":"/api-reference/exchange/cancel-order"},{"title":"Batch cancel orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/batchCancelOrders","href":"/api-reference/exchange/batch-cancel-orders"},{"title":"Schedule cancel-all (dead man's switch)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/scheduleCancel","href":"/api-reference/exchange/schedule-cancel-all-dead-mans-switch"},{"title":"Cancel all open orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/cancelAllOrders","href":"/api-reference/exchange/cancel-all-open-orders"},{"title":"Modify order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/modifyOrder","href":"/api-reference/exchange/modify-order"},{"title":"Batch modify orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/batchModifyOrders","href":"/api-reference/exchange/batch-modify-orders"},{"title":"Set leverage for a market","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/setLeverage","href":"/api-reference/exchange/set-leverage-for-a-market"},{"title":"Add or remove margin on an isolated-mode position","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/adjustIsolatedMargin","href":"/api-reference/exchange/add-or-remove-margin-on-an-isolated-mode-position"},{"title":"Sell spot collateral to settle the account's loan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/settleLoan","href":"/api-reference/exchange/sell-spot-collateral-to-settle-the-accounts-loan"},{"title":"Submit withdrawal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/withdraw","href":"/api-reference/exchange/submit-withdrawal"},{"title":"Submit internal transfer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/transfer","href":"/api-reference/exchange/submit-internal-transfer"}]},{"group":"Onboarding","pages":[{"title":"Get API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/apiKeys","href":"/api-reference/onboarding/get-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/createApiKey","href":"/api-reference/onboarding/create-api-key"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/revokeApiKey","href":"/api-reference/onboarding/revoke-api-key"}]},{"group":"Referral","pages":[{"title":"Create referral code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/createCode","href":"/api-reference/referral/create-referral-code"},{"title":"Register as referee","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/registerAffiliate","href":"/api-reference/referral/register-as-referee"},{"title":"Update kickback rate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/kickback","href":"/api-reference/referral/update-kickback-rate"},{"title":"Revoke referral code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/revokeCode","href":"/api-reference/referral/revoke-referral-code"},{"title":"Rename referral code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/modifyCode","href":"/api-reference/referral/rename-referral-code"},{"title":"Claim accrued commission","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/claim","href":"/api-reference/referral/claim-accrued-commission"},{"title":"Get affiliate info","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/info","href":"/api-reference/referral/get-affiliate-info"},{"title":"Get the caller's referral code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/code","href":"/api-reference/referral/get-the-callers-referral-code"},{"title":"Get referees","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/referees","href":"/api-reference/referral/get-referees"},{"title":"Get my referrer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/myReferrer","href":"/api-reference/referral/get-my-referrer"},{"title":"Get affiliate leaderboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/leaderboard","href":"/api-reference/referral/get-affiliate-leaderboard"},{"title":"Get affiliate commission history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/commissions","href":"/api-reference/referral/get-affiliate-commission-history"},{"title":"Get affiliate claim history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/claims","href":"/api-reference/referral/get-affiliate-claim-history"},{"title":"Look up a single claim","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/claimStatus","href":"/api-reference/referral/look-up-a-single-claim"},{"title":"Check whether a referral code is available","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/codeAvailable","href":"/api-reference/referral/check-whether-a-referral-code-is-available"},{"title":"List the caller's invite codes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /v1/affiliate/inviteCodes","href":"/api-reference/referral/list-the-callers-invite-codes"},{"title":"Redeem an invite code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /v1/affiliate/redeemInvite","href":"/api-reference/referral/redeem-an-invite-code"}]}]},{"group":"WebSocket","pages":[{"group":"Market data","pages":[{"asyncapi":"api-reference/asyncapi.yaml l2Orderbook","href":"/api-reference/market-data/l2orderbook","title":"L2 orderbook","version":null},{"asyncapi":"api-reference/asyncapi.yaml l2OrderbookUpdates","href":"/api-reference/market-data/l2orderbookupdates","title":"L2 orderbook updates","version":null},{"asyncapi":"api-reference/asyncapi.yaml trades","href":"/api-reference/market-data/trades","title":"Trades","version":null},{"asyncapi":"api-reference/asyncapi.yaml markets","href":"/api-reference/market-data/markets","title":"Markets","version":null},{"asyncapi":"api-reference/asyncapi.yaml oraclePrices","href":"/api-reference/market-data/oracleprices","title":"Oracle prices","version":null},{"asyncapi":"api-reference/asyncapi.yaml bbo","href":"/api-reference/market-data/bbo","title":"Bbo","version":null},{"asyncapi":"api-reference/asyncapi.yaml lendingRates","href":"/api-reference/market-data/lendingrates","title":"Lending rates","version":null},{"asyncapi":"api-reference/asyncapi.yaml predictedFunding","href":"/api-reference/market-data/predictedfunding","title":"Predicted funding","version":null},{"asyncapi":"api-reference/asyncapi.yaml exchangeAttributeUpdates","href":"/api-reference/market-data/exchangeattributeupdates","title":"Exchange attribute updates","version":null},{"asyncapi":"api-reference/asyncapi.yaml marketAttributes","href":"/api-reference/market-data/marketattributes","title":"Market attributes","version":null},{"asyncapi":"api-reference/asyncapi.yaml candles","href":"/api-reference/market-data/candles","title":"Candles","version":null}]},{"group":"Account","pages":[{"asyncapi":"api-reference/asyncapi.yaml account","href":"/api-reference/account/account","title":"Account","version":null},{"asyncapi":"api-reference/asyncapi.yaml positions","href":"/api-reference/account/positions","title":"Positions","version":null},{"asyncapi":"api-reference/asyncapi.yaml spotPositions","href":"/api-reference/account/spotpositions","title":"Spot positions","version":null},{"asyncapi":"api-reference/asyncapi.yaml userFills","href":"/api-reference/account/userfills","title":"User fills","version":null},{"asyncapi":"api-reference/asyncapi.yaml spotFills","href":"/api-reference/account/spotfills","title":"Spot fills","version":null},{"asyncapi":"api-reference/asyncapi.yaml settleLoanResults","href":"/api-reference/account/settleloanresults","title":"Settle loan results","version":null},{"asyncapi":"api-reference/asyncapi.yaml orders","href":"/api-reference/account/orders","title":"Orders","version":null},{"asyncapi":"api-reference/asyncapi.yaml funding","href":"/api-reference/account/funding","title":"Funding","version":null},{"asyncapi":"api-reference/asyncapi.yaml accountTransferUpdates","href":"/api-reference/account/accounttransferupdates","title":"Account transfer updates","version":null},{"asyncapi":"api-reference/asyncapi.yaml accountAttributeUpdates","href":"/api-reference/account/accountattributeupdates","title":"Account attribute updates","version":null}]},{"group":"Trading","pages":[{"asyncapi":"api-reference/asyncapi.yaml orderOperations","href":"/api-reference/trading/orderoperations","title":"Order operations","version":null}]}]},{"group":"Changelog","pages":[{"title":"Changelog API (Mainnet)","href":"/changelog"},{"title":"Upcoming mainnet release","href":"/changelog/upcoming"},{"title":"Changelog API (Testnet)","href":"/changelog/testnet"},{"title":"Arcus Changelog","href":"/changelog/frontend"}]}]}]},"basePath":"","title":"Get positions - Arcus Docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DdEMm2kG.js","utils-BMo572L7.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C-4m9KAx.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DPLK2Oq9.js","snippetPresets-BKjfJMC9.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTsgtCEj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C8vmhyQM.js","shallow-r9w8LQGS.js","getApiPlaygroundDisplay-DjPI64HQ.js","CodeSnippet-C8Bvhl16.js","CodeSnippets-BtWUwcMy.js","Page-BIYvYBgk.js","getPastedJson-Dcm_3Pgl.js","icon-BXwrTpjc.js","MethodPill-CcjfVmmy.js","DuplicateIcon-BuKIbXAQ.js","createIcon-DaL9yXsO.js","DynamicMarkdown-Co5nikxh.js","SectionHeading-P4UNTsMZ.js","axios-vUo_bRtp.js","Markdown-CEfymfIH.js","clsx-Dq9TQuNi.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-D2J8knkn.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BgZ2ThuU.js"]}