/accounts/with-risk-statusEvery account of the caller as a full record — challenge, phase, status, balances and enabled options — with its risk snapshot attached.
- Authenticated with an API key, only accounts that have
api_tradingenabled are included. - Interactive sessions share one budget here with the risk-status endpoints; an API key is limited by its own read limits instead.
https://api.upscale.tradeExamples
curl --request GET 'https://api.upscale.trade/accounts/with-risk-status' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY'const response = await fetch("https://api.upscale.trade/accounts/with-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/with-risk-status",
headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
timeout=30,
)
print(response.status_code, response.text)Responses
Unauthorized
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.
defaultResponseapplication/json
Body[0].challengeId must be array Body[0].profitTarget must be array Body[0].maxDailyDrawdown must be array
Array of AccountWithRiskStatusResponse
accountIdstring · uuidrequiredTrader account identifier.
- 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-000000000000userIdstring · uuidrequiredOwner of the account.
- 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-000000000000paymentIdstring · uuid · nullablerequiredPayment the challenge behind this account was bought with. Null for accounts that were not purchased.
- 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-000000000000challengeIdstring[]requiredChallenge the account runs. Null for demo and tournament accounts.
Array items · string
string
tournamentIdstring · uuid · nullablerequiredTournament the account was created for. Null outside tournament accounts.
- 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-000000000000typestring · enumrequiredAccount kind: a paid challenge (real), a demo account, or a tournament entry.
"demo" "real" "tournament"demoinitialPhasestringrequiredPhase the account started in.
active_evaluationcurrentPhasestringrequiredPhase the account is in now: active_evaluation, active_verification, funded, or funded_success once it has enough profitable days.
active_evaluationstatusstring · enumrequiredAccount status. Trading is possible on active; the trading_locked_* statuses only allow closing, and the rest stop trading entirely.
"pending" "active" "failed" "frozen" "suspended" "closed" "trading_locked_by_funded_limit" "trading_locked_by_instant_funded_limit" "phase_transition_pending" "transition_review"activeprofitTargetstring[]requiredProfit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.
Array items · string
string
maxDailyDrawdownstring[]requiredDaily drawdown limit of the current phase, in percent of the day-start equity. Null when the phase has no daily limit.
Array items · string
string
maxTotalDrawdownstring[]requiredTotal drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.
Array items · string
string
maxTrailingTotalDrawdownstring[]requiredTrailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.
Array items · string
string
drawdownBasestring · int32 · nullablerequiredEquity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxDrawdownStopstring · int32 · nullablerequiredEquity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000minTradingDaysnumber[]requiredTrading days required before the current phase can be passed. Null when the phase has no minimum.
Array items · number
number
suspendedUntilstring · date-time · nullablerequiredWhen a suspension of the account lifts. Null when it is not suspended.
2023-10-01T00:00:00.000ZaccountBalancestring · int32requiredBalance without the unrealised pnl of open positions, fp9 raw.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000initialAccountBalancestring · int32requiredBalance the account was opened with, fp9 raw — the nominal size of the challenge.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxEquitystring · int32 · nullablerequiredHighest equity the account has reached, fp9 raw. Null before the first trade.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000dayStartEquitystring · int32 · nullablerequiredEquity the current trading day opened at, fp9 raw.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000profitableDaysnumberrequiredProfitable days counted in the current withdrawal period.
0prevPeriodProfitableDaysnumberrequiredProfitable days counted in the previous withdrawal period.
0createdAtstring · date-timerequiredWhen the account was created.
2026-05-01T12:30:00.000ZfailureReasonstring · enum · nullablerequiredRule that failed the account. Null while it has not failed.
"max_total_drawdown" "max_trailing_total_drawdown" "max_daily_drawdown" nullmax_total_drawdownfundedAtstring · date-time · nullablerequiredWhen the account reached the funded phase. Null before that.
2026-05-01T12:30:00.000ZfailedAtstring · date-time · nullablerequiredWhen the account failed. Null while it has not.
2026-05-01T12:30:00.000ZtransitionReviewAtstring · date-time · nullablerequiredWhen the phase transition was sent for manual review. Null when no review is pending.
2026-05-01T12:30:00.000ZcurrentWithdrawalPeriodStartedAtstring · date-time · nullablerequiredStart of the running withdrawal period. Null while none is running.
2026-05-01T12:30:00.000ZfundedLimitUnlockedAtstring · date-time · nullablerequiredWhen the account last came out of a managed-capital lock; trading days of the period are counted from here. Null when it was never locked.
2026-05-01T12:30:00.000ZmaxWithdrawalAmountstring · int32requiredLargest amount that may be withdrawn from the account right now, fp9 raw.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000payoutBaselineBalancestring · int32requiredBalance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000isActiveWithdrawalInPeriodbooleanrequiredWhether a withdrawal request is already in flight for the current period.
trueprofitSplitPercentnumberrequiredShare of the profit paid out to the trader, in percent.
80debtstring · int32requiredOutstanding promo-discount debt of the account, fp9 raw. Withheld from the next payout; 0 when there is none.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000dailyDrawdownProtectionobject · nullablerequiredDaily drawdown protection of the account. Null when the account does not carry the option.
Object · 1 field
usedAtstring · date-time · nullablerequiredWhen the protection was consumed. Null while it is still available.
2026-05-01T12:30:00.000ZView example
{
"usedAt": "2026-05-01T12:30:00.000Z"
}aiFailedReportbooleanrequiredWhether an automated report has been produced for the failure of this account.
trueapiTradingbooleanrequiredWhether the account may be traded with a personal API key. Requests made with a key are refused on accounts where this is false.
trueavailableMarketsstring · enumrequiredMarket category the account may trade: crypto, rwa, or all.
"crypto" "rwa" "all"cryptoantifraudStatusstring · enumrequiredAntifraud state of the account; anything other than normal marks it for review.
"normal" "test_account" "balance_exceeded" "manually_flagged" "manually_cleared"normaltradingLockReasonstring[]requiredWhy trading is locked: auto for the managed-capital limit hit on promotion, otherwise the reason an administrator gave. Null when the account is not locked.
Array items · string
string
View example
[
"string"
]tournamentobject · nullablerequiredTournament the account belongs to. Null for accounts outside a tournament.
Object · 5 fields
idstring · uuidrequiredTournament identifier.
- 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-000000000000statusstring · enumrequiredStage the tournament is in.
"active" "completed"activestartDatestring · date-timerequiredWhen the tournament opens for trading.
2026-05-01T12:30:00.000ZendDatestring · date-timerequiredWhen the tournament closes.
2026-05-01T12:30:00.000ZfinalRecalcDonebooleanrequiredWhether final standings have been recomputed after the close.
trueView example
{
"id": "00000000-0000-4000-8000-000000000000",
"status": "active",
"startDate": "2026-05-01T12:30:00.000Z",
"endDate": "2026-05-01T12:30:00.000Z",
"finalRecalcDone": true
}restoreobjectrequiredWhether a failed funded account can be brought back, and until when.
Object · 2 fields
restoreAvailablebooleanrequiredWhether the failed funded account can be restored right now.
truerestoreAvailableUntilstring · date-time · nullablerequiredWhen the restore window closes. Null when there is no window.
2026-05-01T12:30:00.000ZView example
{
"restoreAvailable": true,
"restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}riskStatusobjectrequiredLive risk snapshot of this account, the same payload the risk-status endpoints return.
Object · 15 fields
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 · nullablerequiredWhether the rule is currently satisfied. Null while the period is not in profit and the ratio cannot be computed.
trueconsistencyRuleRatiostring · 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.
trueView example
{
"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
}