{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus","title":"Get all accounts of current user risk status","description":"GET /accounts/risk-status: The per account risk snapshot, for every account of the caller at once. Authenticated with an API key, only accounts that have api trading enabled are…","kind":"api-operation","locale":"en","inLanguage":"en","lastModified":"2026-09-28T19:22:49.100Z","revision":"25c86f549328fcff320805d5945f4c9804e3927950d831e601d6e3b18c170f66","section":{"title":"Developers","url":"https://docs.upscale.trade/developers"},"representations":{"html":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus","markdown":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus.md","json":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus.json"},"translations":{"en":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus","ru":"https://docs.upscale.trade/ru/developers/operations/getaccountsriskstatus","es":"https://docs.upscale.trade/es/developers/operations/getaccountsriskstatus"},"operation":{"id":"getAccountsRiskStatus","method":"GET","path":"/accounts/risk-status","summary":"Get all accounts of current user risk status","description":"The per-account risk snapshot, for every account of the caller at once.\n\n- Authenticated with an API key, only accounts that have `api_trading` enabled are included.\n- Interactive sessions share one budget here with the single-account risk status; an API key is limited by its own read limits instead.","tags":["Accounts"],"deprecated":false,"parameters":[],"bodies":[],"responses":[{"status":"401","description":"Unauthorized","properties":[],"headers":[]},{"status":"429","description":"Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`.","properties":[],"headers":[]},{"status":"default","description":"Response","mediaType":"application/json","properties":[],"schema":{"type":"object[]","types":["array"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"reference":"#/components/schemas/AccountsRiskStatusResponse","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"accountId","type":"string · uuid","required":true,"description":"Trader account the snapshot belongs to.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Trader account the snapshot belongs to.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"tradingDays","type":"number","required":true,"description":"Number of days the account has traded on — counted against the minimum trading days of the challenge.","example":"0","schema":{"type":"number","types":["number"],"description":"Number of days the account has traded on — counted against the minimum trading days of the challenge.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"currentBalance","type":"string · int32","required":true,"description":"Account balance without the unrealised pnl of open positions, fp9 raw.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Account balance without the unrealised pnl of open positions, fp9 raw.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"currentEquity","type":"string · int32","required":true,"description":"Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"dayStartEquity","type":"string · int32","required":true,"description":"Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxEquity","type":"string · int32 · nullable","required":true,"description":"Highest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Highest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"periodStartEquity","type":"string · int32 · nullable","required":true,"description":"Equity the current withdrawal period opened at, fp9 raw. Null while no period is running.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Equity the current withdrawal period opened at, fp9 raw. Null while no period is running.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxPeriodDailyEquityDelta","type":"string · int32 · nullable","required":true,"description":"Largest single-day equity gain inside the current period, fp9 raw — the numerator of the consistency rule. Null while no day has closed in profit.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Largest single-day equity gain inside the current period, fp9 raw — the numerator of the consistency rule. Null while no day has closed in profit.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxPeriodDailyEquityDeltaAt","type":"string · date-time · nullable","required":true,"description":"Day that produced `maxPeriodDailyEquityDelta`. Null together with it.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time · nullable","types":["string"],"description":"Day that produced `maxPeriodDailyEquityDelta`. Null together with it.","example":"2026-05-01T12:30:00.000Z","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"consistencyRuleApplies","type":"boolean","required":true,"description":"Whether the consistency rule is part of the rules of this account in its current phase.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Whether the consistency rule is part of the rules of this account in its current phase.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"consistencyRuleMet","type":"boolean[]","required":true,"description":"Whether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.","example":"[\n  true\n]","schema":{"type":"boolean[]","types":["array"],"description":"Whether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"boolean","types":["boolean"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"consistencyRuleRatio","type":"string · int32 · nullable","required":true,"description":"Share of the period profit made on its best day, fp9 raw fraction. Null together with `consistencyRuleMet`.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Share of the period profit made on its best day, fp9 raw fraction. Null together with `consistencyRuleMet`.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"consistencyRuleLimit","type":"string · int32","required":true,"description":"Largest share of period profit one day may account for, fp9 raw fraction (`300000000` = 30%). A ratio above it fails the rule.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Largest share of period profit one day may account for, fp9 raw fraction (`300000000` = 30%). A ratio above it fails the rule.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"payoutBaselineBalance","type":"string · int32","required":true,"description":"Balance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Balance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"isPayoutBaselineRequirementMet","type":"boolean","required":true,"description":"Whether equity is above `payoutBaselineBalance` — the condition for being eligible to request a payout.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Whether equity is above `payoutBaselineBalance` — the condition for being eligible to request a payout.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]},"variants":[]},"example":"[\n  {\n    \"accountId\": \"00000000-0000-4000-8000-000000000000\",\n    \"tradingDays\": 0,\n    \"currentBalance\": \"1000000000\",\n    \"currentEquity\": \"1000000000\",\n    \"dayStartEquity\": \"1000000000\",\n    \"maxEquity\": \"1000000000\",\n    \"periodStartEquity\": \"1000000000\",\n    \"maxPeriodDailyEquityDelta\": \"1000000000\",\n    \"maxPeriodDailyEquityDeltaAt\": \"2026-05-01T12:30:00.000Z\",\n    \"consistencyRuleApplies\": true,\n    \"consistencyRuleMet\": [\n      true\n    ],\n    \"consistencyRuleRatio\": \"1000000000\",\n    \"consistencyRuleLimit\": \"1000000000\",\n    \"payoutBaselineBalance\": \"1000000000\",\n    \"isPayoutBaselineRequirementMet\": true\n  }\n]","headers":[]}],"security":[{"name":"bearer","type":"http · bearer","description":"Personal API key, prefixed with `usk_`.","required":true,"scopes":[]}],"codeSamples":[{"label":"cURL","language":"bash","source":"curl --request GET 'https://api.upscale.trade/accounts/risk-status' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'"},{"label":"JavaScript","language":"javascript","source":"const response = await fetch(\"https://api.upscale.trade/accounts/risk-status\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());"},{"label":"Python","language":"python","source":"import requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/accounts/risk-status\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)"}]},"breadcrumbs":[{"title":"What is Prop Trading","url":"https://docs.upscale.trade"},{"title":"Developers","url":"https://docs.upscale.trade/developers"},{"title":"Get all accounts of current user risk status","url":"https://docs.upscale.trade/developers/operations/getaccountsriskstatus"}],"headings":[{"depth":2,"id":"authorization","title":"Authorization"},{"depth":2,"id":"examples","title":"Examples"},{"depth":2,"id":"responses","title":"Responses"}],"markdown":"# Get all accounts of current user risk status\n\n`GET /accounts/risk-status`\n\nThe per-account risk snapshot, for every account of the caller at once.\n\n- Authenticated with an API key, only accounts that have `api_trading` enabled are included.\n- Interactive sessions share one budget here with the single-account risk status; an API key is limited by its own read limits instead.\n\n## Authorization\n\nbearer: http · bearer (required). Personal API key, prefixed with `usk_`.\n\n## Parameters\n\n\n\n## Example · cURL\n\n```bash\ncurl --request GET 'https://api.upscale.trade/accounts/risk-status' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n## Example · JavaScript\n\n```javascript\nconst response = await fetch(\"https://api.upscale.trade/accounts/risk-status\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());\n```\n\n## Example · Python\n\n```python\nimport requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/accounts/risk-status\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)\n```\n\n## Response 401\n\n**401**  — Unauthorized\n\n## Response 429\n\n**429**  — Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`.\n\n## Response default · AccountsRiskStatusResponse\n\n**default** application/json — Response\n\nType: object[]\n\n[]Schema: AccountsRiskStatusResponse\n\n[]Type: object\n\n[]Required fields: accountId, tradingDays, currentBalance, currentEquity, dayStartEquity, maxEquity, periodStartEquity, maxPeriodDailyEquityDelta, maxPeriodDailyEquityDeltaAt, consistencyRuleApplies, consistencyRuleMet, consistencyRuleRatio, consistencyRuleLimit, payoutBaselineBalance, isPayoutBaselineRequirementMet\n\n[]Required field types: accountId (string · uuid; required), tradingDays (number; required), currentBalance (string · int32; required), currentEquity (string · int32; required), dayStartEquity (string · int32; required), maxEquity (string · int32 · nullable; required), periodStartEquity (string · int32 · nullable; required), maxPeriodDailyEquityDelta (string · int32 · nullable; required), maxPeriodDailyEquityDeltaAt (string · date-time · nullable; required), consistencyRuleApplies (boolean; required), consistencyRuleMet (boolean[]; required), consistencyRuleRatio (string · int32 · nullable; required), consistencyRuleLimit (string · int32; required), payoutBaselineBalance (string · int32; required), isPayoutBaselineRequirementMet (boolean; required)\n\n- []accountId (string · uuid; required)\n\n[]accountId example: 00000000-0000-4000-8000-000000000000\n\n[]accountId.Type: string · uuid\n\n[]accountId.Trader account the snapshot belongs to.\n\n[]accountId.format: uuid\n\n[]accountId.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []tradingDays (number; required)\n\n[]tradingDays example: 0\n\n[]tradingDays.Type: number\n\n[]tradingDays.Number of days the account has traded on — counted against the minimum trading days of the challenge.\n\n- []currentBalance (string · int32; required)\n\n[]currentBalance example: 1000000000\n\n[]currentBalance.Type: string · int32\n\n[]currentBalance.Account balance without the unrealised pnl of open positions, fp9 raw.\n\n[]currentBalance.format: int32\n\n[]currentBalance.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []currentEquity (string · int32; required)\n\n[]currentEquity example: 1000000000\n\n[]currentEquity.Type: string · int32\n\n[]currentEquity.Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.\n\n[]currentEquity.format: int32\n\n[]currentEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []dayStartEquity (string · int32; required)\n\n[]dayStartEquity example: 1000000000\n\n[]dayStartEquity.Type: string · int32\n\n[]dayStartEquity.Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.\n\n[]dayStartEquity.format: int32\n\n[]dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []maxEquity (string · int32 · nullable; required)\n\n[]maxEquity example: 1000000000\n\n[]maxEquity.Type: string · int32 · nullable\n\n[]maxEquity.Highest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade.\n\n[]maxEquity.format: int32\n\n[]maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []periodStartEquity (string · int32 · nullable; required)\n\n[]periodStartEquity example: 1000000000\n\n[]periodStartEquity.Type: string · int32 · nullable\n\n[]periodStartEquity.Equity the current withdrawal period opened at, fp9 raw. Null while no period is running.\n\n[]periodStartEquity.format: int32\n\n[]periodStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []maxPeriodDailyEquityDelta (string · int32 · nullable; required)\n\n[]maxPeriodDailyEquityDelta example: 1000000000\n\n[]maxPeriodDailyEquityDelta.Type: string · int32 · nullable\n\n[]maxPeriodDailyEquityDelta.Largest single-day equity gain inside the current period, fp9 raw — the numerator of the consistency rule. Null while no day has closed in profit.\n\n[]maxPeriodDailyEquityDelta.format: int32\n\n[]maxPeriodDailyEquityDelta.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []maxPeriodDailyEquityDeltaAt (string · date-time · nullable; required)\n\n[]maxPeriodDailyEquityDeltaAt example: 2026-05-01T12:30:00.000Z\n\n[]maxPeriodDailyEquityDeltaAt.Type: string · date-time · nullable\n\n[]maxPeriodDailyEquityDeltaAt.Day that produced `maxPeriodDailyEquityDelta`. Null together with it.\n\n[]maxPeriodDailyEquityDeltaAt.format: date-time\n\n- []consistencyRuleApplies (boolean; required)\n\n[]consistencyRuleApplies example: true\n\n[]consistencyRuleApplies.Type: boolean\n\n[]consistencyRuleApplies.Whether the consistency rule is part of the rules of this account in its current phase.\n\n- []consistencyRuleMet (boolean[]; required)\n\n[]consistencyRuleMet example: [\n  true\n]\n\n[]consistencyRuleMet.Type: boolean[]\n\n[]consistencyRuleMet.Whether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.\n\n[]consistencyRuleMet.[]Type: boolean\n\n- []consistencyRuleRatio (string · int32 · nullable; required)\n\n[]consistencyRuleRatio example: 1000000000\n\n[]consistencyRuleRatio.Type: string · int32 · nullable\n\n[]consistencyRuleRatio.Share of the period profit made on its best day, fp9 raw fraction. Null together with `consistencyRuleMet`.\n\n[]consistencyRuleRatio.format: int32\n\n[]consistencyRuleRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []consistencyRuleLimit (string · int32; required)\n\n[]consistencyRuleLimit example: 1000000000\n\n[]consistencyRuleLimit.Type: string · int32\n\n[]consistencyRuleLimit.Largest share of period profit one day may account for, fp9 raw fraction (`300000000` = 30%). A ratio above it fails the rule.\n\n[]consistencyRuleLimit.format: int32\n\n[]consistencyRuleLimit.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []payoutBaselineBalance (string · int32; required)\n\n[]payoutBaselineBalance example: 1000000000\n\n[]payoutBaselineBalance.Type: string · int32\n\n[]payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it.\n\n[]payoutBaselineBalance.format: int32\n\n[]payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []isPayoutBaselineRequirementMet (boolean; required)\n\n[]isPayoutBaselineRequirementMet example: true\n\n[]isPayoutBaselineRequirementMet.Type: boolean\n\n[]isPayoutBaselineRequirementMet.Whether equity is above `payoutBaselineBalance` — the condition for being eligible to request a payout.\n\nExample\n\n\n\n```json\n[\n  {\n    \"accountId\": \"00000000-0000-4000-8000-000000000000\",\n    \"tradingDays\": 0,\n    \"currentBalance\": \"1000000000\",\n    \"currentEquity\": \"1000000000\",\n    \"dayStartEquity\": \"1000000000\",\n    \"maxEquity\": \"1000000000\",\n    \"periodStartEquity\": \"1000000000\",\n    \"maxPeriodDailyEquityDelta\": \"1000000000\",\n    \"maxPeriodDailyEquityDeltaAt\": \"2026-05-01T12:30:00.000Z\",\n    \"consistencyRuleApplies\": true,\n    \"consistencyRuleMet\": [\n      true\n    ],\n    \"consistencyRuleRatio\": \"1000000000\",\n    \"consistencyRuleLimit\": \"1000000000\",\n    \"payoutBaselineBalance\": \"1000000000\",\n    \"isPayoutBaselineRequirementMet\": true\n  }\n]\n```","text":"Get all accounts of current user risk status The per-account risk snapshot, for every account of the caller at once. - Authenticated with an API key, only accounts that have `api_trading` enabled are included. - Interactive sessions share one budget here with the single-account risk status; an API key is limited by its own read limits instead. GET /accounts/risk-status Accounts 401 Unauthorized 429 Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`. default Response","api":{"title":"Upscale Public API","version":"d796ac9","documentation":"https://docs.upscale.trade/developers","playgroundServer":"https://api.upscale.trade"}}