{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/developers/operations/getaccountriskstatus","title":"Get the risk status of the trader account","description":"GET /accounts/{accountId}/risk-status: The risk snapshot the trading engine keeps for the account: current balance and equity, day start and max equity, the trading day counter,…","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/getaccountriskstatus","markdown":"https://docs.upscale.trade/developers/operations/getaccountriskstatus.md","json":"https://docs.upscale.trade/developers/operations/getaccountriskstatus.json"},"translations":{"en":"https://docs.upscale.trade/developers/operations/getaccountriskstatus","ru":"https://docs.upscale.trade/ru/developers/operations/getaccountriskstatus","es":"https://docs.upscale.trade/es/developers/operations/getaccountriskstatus"},"operation":{"id":"getAccountRiskStatus","method":"GET","path":"/accounts/{accountId}/risk-status","summary":"Get the risk status of the trader account","description":"The risk snapshot the trading engine keeps for the account: current balance and equity, day-start and max equity, the trading-day counter,\nthe consistency-rule state and the payout baseline.\n\n- Read live from the shard that holds the account, so open positions are already reflected in the equity.\n- Interactive sessions get a budget for this endpoint apart from the other ones; an API key is limited by its own read limits instead.","tags":["Accounts"],"deprecated":false,"parameters":[{"name":"accountId","location":"path","schema":{"type":"string · uuid","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid"},"properties":[],"variants":[]},"type":"string · uuid","required":true,"description":"Trader account identifier. Must belong to the caller.","example":"00000000-0000-4000-8000-000000000000"}],"bodies":[],"responses":[{"status":"200","description":"Response","mediaType":"application/json","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":[]}}],"schema":{"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":[]},"example":"{\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}","headers":[]},{"status":"401","description":"Unauthorized","properties":[],"headers":[]},{"status":"403","description":"The account belongs to another user (`account_access_denied`), or the request is authenticated with an API key while `api_trading` is disabled on the account (`api_trading_not_enabled`).","properties":[],"headers":[]},{"status":"404","description":"No account with this identifier.","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":[]}],"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/{accountId}/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/{accountId}/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/{accountId}/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 the risk status of the trader account","url":"https://docs.upscale.trade/developers/operations/getaccountriskstatus"}],"headings":[{"depth":2,"id":"authorization","title":"Authorization"},{"depth":2,"id":"parameters","title":"Parameters"},{"depth":2,"id":"examples","title":"Examples"},{"depth":2,"id":"responses","title":"Responses"}],"markdown":"# Get the risk status of the trader account\n\n`GET /accounts/{accountId}/risk-status`\n\nThe risk snapshot the trading engine keeps for the account: current balance and equity, day-start and max equity, the trading-day counter,\nthe consistency-rule state and the payout baseline.\n\n- Read live from the shard that holds the account, so open positions are already reflected in the equity.\n- Interactive sessions get a budget for this endpoint apart from the other ones; 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- path: accountId (string · uuid; required). Trader account identifier. Must belong to the caller.\n\nType: string · uuid\n\nformat: uuid\n\n## Example · cURL\n\n```bash\ncurl --request GET 'https://api.upscale.trade/accounts/{accountId}/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/{accountId}/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/{accountId}/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 200 · AccountsRiskStatusResponse\n\n**200** application/json — Response\n\nSchema: AccountsRiskStatusResponse\n\nType: object\n\nRequired fields: accountId, tradingDays, currentBalance, currentEquity, dayStartEquity, maxEquity, periodStartEquity, maxPeriodDailyEquityDelta, maxPeriodDailyEquityDeltaAt, consistencyRuleApplies, consistencyRuleMet, consistencyRuleRatio, consistencyRuleLimit, payoutBaselineBalance, isPayoutBaselineRequirementMet\n\nRequired 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\naccountId example: 00000000-0000-4000-8000-000000000000\n\naccountId.Type: string · uuid\n\naccountId.Trader account the snapshot belongs to.\n\naccountId.format: uuid\n\naccountId.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\ntradingDays example: 0\n\ntradingDays.Type: number\n\ntradingDays.Number of days the account has traded on — counted against the minimum trading days of the challenge.\n\n- currentBalance (string · int32; required)\n\ncurrentBalance example: 1000000000\n\ncurrentBalance.Type: string · int32\n\ncurrentBalance.Account balance without the unrealised pnl of open positions, fp9 raw.\n\ncurrentBalance.format: int32\n\ncurrentBalance.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- currentEquity (string · int32; required)\n\ncurrentEquity example: 1000000000\n\ncurrentEquity.Type: string · int32\n\ncurrentEquity.Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.\n\ncurrentEquity.format: int32\n\ncurrentEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- dayStartEquity (string · int32; required)\n\ndayStartEquity example: 1000000000\n\ndayStartEquity.Type: string · int32\n\ndayStartEquity.Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.\n\ndayStartEquity.format: int32\n\ndayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- maxEquity (string · int32 · nullable; required)\n\nmaxEquity example: 1000000000\n\nmaxEquity.Type: string · int32 · nullable\n\nmaxEquity.Highest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade.\n\nmaxEquity.format: int32\n\nmaxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- periodStartEquity (string · int32 · nullable; required)\n\nperiodStartEquity example: 1000000000\n\nperiodStartEquity.Type: string · int32 · nullable\n\nperiodStartEquity.Equity the current withdrawal period opened at, fp9 raw. Null while no period is running.\n\nperiodStartEquity.format: int32\n\nperiodStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- maxPeriodDailyEquityDelta (string · int32 · nullable; required)\n\nmaxPeriodDailyEquityDelta example: 1000000000\n\nmaxPeriodDailyEquityDelta.Type: string · int32 · nullable\n\nmaxPeriodDailyEquityDelta.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\nmaxPeriodDailyEquityDelta.format: int32\n\nmaxPeriodDailyEquityDelta.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- maxPeriodDailyEquityDeltaAt (string · date-time · nullable; required)\n\nmaxPeriodDailyEquityDeltaAt example: 2026-05-01T12:30:00.000Z\n\nmaxPeriodDailyEquityDeltaAt.Type: string · date-time · nullable\n\nmaxPeriodDailyEquityDeltaAt.Day that produced `maxPeriodDailyEquityDelta`. Null together with it.\n\nmaxPeriodDailyEquityDeltaAt.format: date-time\n\n- consistencyRuleApplies (boolean; required)\n\nconsistencyRuleApplies example: true\n\nconsistencyRuleApplies.Type: boolean\n\nconsistencyRuleApplies.Whether the consistency rule is part of the rules of this account in its current phase.\n\n- consistencyRuleMet (boolean[]; required)\n\nconsistencyRuleMet example: [\n  true\n]\n\nconsistencyRuleMet.Type: boolean[]\n\nconsistencyRuleMet.Whether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.\n\nconsistencyRuleMet.[]Type: boolean\n\n- consistencyRuleRatio (string · int32 · nullable; required)\n\nconsistencyRuleRatio example: 1000000000\n\nconsistencyRuleRatio.Type: string · int32 · nullable\n\nconsistencyRuleRatio.Share of the period profit made on its best day, fp9 raw fraction. Null together with `consistencyRuleMet`.\n\nconsistencyRuleRatio.format: int32\n\nconsistencyRuleRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- consistencyRuleLimit (string · int32; required)\n\nconsistencyRuleLimit example: 1000000000\n\nconsistencyRuleLimit.Type: string · int32\n\nconsistencyRuleLimit.Largest share of period profit one day may account for, fp9 raw fraction (`300000000` = 30%). A ratio above it fails the rule.\n\nconsistencyRuleLimit.format: int32\n\nconsistencyRuleLimit.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- payoutBaselineBalance (string · int32; required)\n\npayoutBaselineBalance example: 1000000000\n\npayoutBaselineBalance.Type: string · int32\n\npayoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it.\n\npayoutBaselineBalance.format: int32\n\npayoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- isPayoutBaselineRequirementMet (boolean; required)\n\nisPayoutBaselineRequirementMet example: true\n\nisPayoutBaselineRequirementMet.Type: boolean\n\nisPayoutBaselineRequirementMet.Whether equity is above `payoutBaselineBalance` — the condition for being eligible to request a payout.\n\nExample\n\n\n\n```json\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\n## Response 401\n\n**401**  — Unauthorized\n\n## Response 403\n\n**403**  — The account belongs to another user (`account_access_denied`), or the request is authenticated with an API key while `api_trading` is disabled on the account (`api_trading_not_enabled`).\n\n## Response 404\n\n**404**  — No account with this identifier.\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`.","text":"Get the risk status of the trader account The risk snapshot the trading engine keeps for the account: current balance and equity, day-start and max equity, the trading-day counter, the consistency-rule state and the payout baseline. - Read live from the shard that holds the account, so open positions are already reflected in the equity. - Interactive sessions get a budget for this endpoint apart from the other ones; an API key is limited by its own read limits instead. GET /accounts/{accountId}/risk-status Accounts accountId Trader account identifier. Must belong to the caller. string · uuid 200 Response accountId Trader account the snapshot belongs to. string · uuid tradingDays Number of days the account has traded on — counted against the minimum trading days of the challenge. number currentBalance Account balance without the unrealised pnl of open positions, fp9 raw. string · int32 currentEquity Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against. string · int32 dayStartEquity Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit. string · int32 maxEquity Highest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade. string · int32 · nullable periodStartEquity Equity the current withdrawal period opened at, fp9 raw. Null while no period is running. string · int32 · nullable 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. string · int32 · nullable maxPeriodDailyEquityDeltaAt Day that produced `maxPeriodDailyEquityDelta`. Null together with it. string · date-time · nullable consistencyRuleApplies Whether the consistency rule is part of the rules of this account in its current phase. boolean consistencyRuleMet Whether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed. boolean[] consistencyRuleRatio Share of the period profit made on its best day, fp9 raw fraction. Null together with `consistencyRuleMet`. string · int32 · nullable consistencyRuleLimit Largest share of period profit one day may account for, fp9 raw fraction (`300000000` = 30%). A ratio above it fails the rule. string · int32 payoutBaselineBalance Balance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it. string · int32 isPayoutBaselineRequirementMet Whether equity is above `payoutBaselineBalance` — the condition for being eligible to request a payout. boolean 401 Unauthorized 403 The account belongs to another user (`account_access_denied`), or the request is authenticated with an API key while `api_trading` is disabled on the account (`api_trading_not_enabled`). 404 No account with this identifier. 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`.","api":{"title":"Upscale Public API","version":"d796ac9","documentation":"https://docs.upscale.trade/developers","playgroundServer":"https://api.upscale.trade"}}