/accounts/{accountId}/risk-statusThe 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.
https://api.upscale.tradeParameters
accountIdstring · uuidrequiredTrader account identifier. Must belong to the caller.
00000000-0000-4000-8000-000000000000Examples
curl --request GET 'https://api.upscale.trade/accounts/{accountId}/risk-status' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY'const response = await fetch("https://api.upscale.trade/accounts/{accountId}/risk-status", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
});
console.log(response.status, await response.text());import requests
response = requests.request(
"GET",
"https://api.upscale.trade/accounts/{accountId}/risk-status",
headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
timeout=30,
)
print(response.status_code, response.text)Responses
200Responseapplication/json
accountIdstring · uuidrequiredTrader account the snapshot belongs to.
- 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})$
00000000-0000-4000-8000-000000000000tradingDaysnumberrequiredNumber of days the account has traded on — counted against the minimum trading days of the challenge.
0currentBalancestring · int32requiredAccount balance without the unrealised pnl of open positions, fp9 raw.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000currentEquitystring · int32requiredBalance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000dayStartEquitystring · int32requiredEquity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxEquitystring · int32 · nullablerequiredHighest equity the account has ever reached, fp9 raw — the base of the trailing drawdown. Null before the first trade.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000periodStartEquitystring · int32 · nullablerequiredEquity the current withdrawal period opened at, fp9 raw. Null while no period is running.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPeriodDailyEquityDeltastring · int32 · nullablerequiredLargest single-day equity gain inside the current period, fp9 raw — the numerator of the consistency rule. Null while no day has closed in profit.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPeriodDailyEquityDeltaAtstring · date-time · nullablerequiredDay that produced maxPeriodDailyEquityDelta. Null together with it.
2026-05-01T12:30:00.000ZconsistencyRuleAppliesbooleanrequiredWhether the consistency rule is part of the rules of this account in its current phase.
trueconsistencyRuleMetboolean[]requiredWhether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.
Array items · boolean
boolean
View example
[
true
]consistencyRuleRatiostring · int32 · nullablerequiredShare of the period profit made on its best day, fp9 raw fraction. Null together with consistencyRuleMet.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000consistencyRuleLimitstring · int32requiredLargest share of period profit one day may account for, fp9 raw fraction (300000000 = 30%). A ratio above it fails the rule.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000payoutBaselineBalancestring · int32requiredBalance the next payout is measured from, fp9 raw. Equal to the initial account size until the first payout moves it.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000isPayoutBaselineRequirementMetbooleanrequiredWhether equity is above payoutBaselineBalance — the condition for being eligible to request a payout.
true{
"accountId": "00000000-0000-4000-8000-000000000000",
"tradingDays": 0,
"currentBalance": "1000000000",
"currentEquity": "1000000000",
"dayStartEquity": "1000000000",
"maxEquity": "1000000000",
"periodStartEquity": "1000000000",
"maxPeriodDailyEquityDelta": "1000000000",
"maxPeriodDailyEquityDeltaAt": "2026-05-01T12:30:00.000Z",
"consistencyRuleApplies": true,
"consistencyRuleMet": [
true
],
"consistencyRuleRatio": "1000000000",
"consistencyRuleLimit": "1000000000",
"payoutBaselineBalance": "1000000000",
"isPayoutBaselineRequirementMet": true
}Unauthorized
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).
No account with this identifier.
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.