Upscale
Menu
On this page

Get the risk status of the trader account

Try it out ↓
GET/accounts/{accountId}/risk-status
Get the risk status of the trader accountAccounts

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.
Base URL https://api.upscale.trade

Authorization

bearerhttp · bearerrequired

Personal API key, prefixed with usk_.

Parameters

Path
accountIdstring · uuidrequired

Trader account identifier. Must belong to the caller.

Example: 00000000-0000-4000-8000-000000000000

Examples

curl --request GET 'https://api.upscale.trade/accounts/{accountId}/risk-status' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Responses

200Responseapplication/json
accountIdstring · uuidrequired

Trader 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})$
Example: 00000000-0000-4000-8000-000000000000
tradingDaysnumberrequired

Number of days the account has traded on — counted against the minimum trading days of the challenge.

Example: 0
currentBalancestring · int32required

Account balance without the unrealised pnl of open positions, fp9 raw.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
currentEquitystring · int32required

Balance plus the unrealised pnl of open positions, fp9 raw. This is what drawdown rules are measured against.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
dayStartEquitystring · int32required

Equity the current trading day opened at, fp9 raw — the base of the daily drawdown limit.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
maxEquitystring · int32 · nullablerequired

Highest 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)$
Example: 1000000000
periodStartEquitystring · int32 · nullablerequired

Equity the current withdrawal period opened at, fp9 raw. Null while no period is running.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
maxPeriodDailyEquityDeltastring · int32 · nullablerequired

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.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
maxPeriodDailyEquityDeltaAtstring · date-time · nullablerequired

Day that produced maxPeriodDailyEquityDelta. Null together with it.

Example: 2026-05-01T12:30:00.000Z
consistencyRuleAppliesbooleanrequired

Whether the consistency rule is part of the rules of this account in its current phase.

Example: true
consistencyRuleMetboolean[]required

Whether 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 · nullablerequired

Share of the period profit made on its best day, fp9 raw fraction. Null together with consistencyRuleMet.

pattern
^(?:-?[1-9][0-9]*|0)$
Example: 1000000000
consistencyRuleLimitstring · int32required

Largest 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)$
Example: 1000000000
payoutBaselineBalancestring · int32required

Balance 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)$
Example: 1000000000
isPayoutBaselineRequirementMetbooleanrequired

Whether equity is above payoutBaselineBalance — the condition for being eligible to request a payout.

Example: true
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.