Upscale
Menu
On this page

Get the events of the trader account

Try it out ↓
GET/accounts/events
Get the events of the trader accountAccounts

Lifecycle events across every account of the caller, newest first: challenge purchases, completions and failures, withdrawal requests and payouts, funded-limit locks and unlocks, demo and tournament accounts being opened or closed.

  • Authenticated with an API key, only accounts that have api_trading enabled are included.
  • Paginated through limit and offset; the response carries the total count.
Base URL https://api.upscale.trade

Authorization

bearerhttp · bearerrequired

Personal API key, prefixed with usk_.

Parameters

Query
limitintegeroptional

Page size: how many records to return.

Default: 20

minimum
1
maximum
100
Example: 20
offsetintegeroptional

How many records to skip before the page.

Default: 0

minimum
0
maximum
9007199254740991
Example: 0

Examples

curl --request GET 'https://api.upscale.trade/accounts/events' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Responses

200Responseapplication/json
dataobject[]required

Requested page of account events, newest first. The payload shape follows eventType.

Array items · object

One of

eventTypestring · enumrequired

The trader bought a challenge and this account was opened for it.

Allowed: "buy_challenge"
Example: buy_challenge
payloadobjectrequired

What was paid for the challenge.

Object · 2 fields
amountstringrequired

Amount paid for the challenge, in the currency of the provider, fp9 raw.

Example: string
providerstring · enumrequired

Payment rail the challenge was bought through.

Allowed: "vault" "calypso" "base_pay" "telegram" "fpay" "b2m" "onramp" "coindisco" "easypay" "free"
Example: vault
View example
{
  "amount": "string",
  "provider": "vault"
}
idstring · uuidrequired

Event 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})$
Example: 00000000-0000-4000-8000-000000000000
accountIdstring · uuidrequired

Trader account the event happened on.

Example: 00000000-0000-4000-8000-000000000000
createdAtstring · date-timerequired

When the event happened.

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

The account as it stands now — not as it was when the event happened.

Object · 43 fields
accountIdstring · uuidrequired

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

Owner 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})$
Example: 00000000-0000-4000-8000-000000000000
paymentIdstring · uuid · nullablerequired

Payment 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})$
Example: 00000000-0000-4000-8000-000000000000
challengeIdstring · nullablerequired

Challenge the account runs. Null for demo and tournament accounts.

Example: challenge1
tournamentIdstring · uuid · nullablerequired

Tournament 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})$
Example: 00000000-0000-4000-8000-000000000000
typestring · enumrequired

Account kind: a paid challenge (real), a demo account, or a tournament entry.

Allowed: "demo" "real" "tournament"
Example: demo
initialPhasestringrequired

Phase the account started in.

Example: active_evaluation
currentPhasestringrequired

Phase the account is in now: active_evaluation, active_verification, funded, or funded_success once it has enough profitable days.

Example: active_evaluation
statusstring · enumrequired

Account status. Trading is possible on active; the trading_locked_* statuses only allow closing, and the rest stop trading entirely.

Allowed: "pending" "active" "failed" "frozen" "suspended" "closed" "trading_locked_by_funded_limit" "trading_locked_by_instant_funded_limit" "phase_transition_pending" "transition_review"
Example: active
profitTargetstring · nullablerequired

Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

maxDailyDrawdownstring · nullablerequired

Daily drawdown limit of the current phase, in percent of the day-start equity. Null when the phase has no daily limit.

maxTotalDrawdownstring · nullablerequired

Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

maxTrailingTotalDrawdownstring · nullablerequired

Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

drawdownBasestring · int32 · nullablerequired

Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

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

Equity 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)$
Example: 1000000000
minTradingDaysnumber · nullablerequired

Trading days required before the current phase can be passed. Null when the phase has no minimum.

Example: 3
suspendedUntilstring · date-time · nullablerequired

When a suspension of the account lifts. Null when it is not suspended.

Example: 2023-10-01T00:00:00.000Z
accountBalancestring · int32required

Balance without the unrealised pnl of open positions, fp9 raw.

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

Balance the account was opened with, fp9 raw — the nominal size of the challenge.

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

Highest equity the account has reached, fp9 raw. Null before the first trade.

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

Equity the current trading day opened at, fp9 raw.

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

Profitable days counted in the current withdrawal period.

Example: 0
prevPeriodProfitableDaysnumberrequired

Profitable days counted in the previous withdrawal period.

Example: 0
createdAtstring · date-timerequired

When the account was created.

Example: 2026-05-01T12:30:00.000Z
failureReasonstring · enum · nullablerequired

Rule that failed the account. Null while it has not failed.

Allowed: "max_total_drawdown" "max_trailing_total_drawdown" "max_daily_drawdown" null
Example: max_total_drawdown
fundedAtstring · date-time · nullablerequired

When the account reached the funded phase. Null before that.

Example: 2026-05-01T12:30:00.000Z
failedAtstring · date-time · nullablerequired

When the account failed. Null while it has not.

Example: 2026-05-01T12:30:00.000Z
transitionReviewAtstring · date-time · nullablerequired

When the phase transition was sent for manual review. Null when no review is pending.

Example: 2026-05-01T12:30:00.000Z
currentWithdrawalPeriodStartedAtstring · date-time · nullablerequired

Start of the running withdrawal period. Null while none is running.

Example: 2026-05-01T12:30:00.000Z
fundedLimitUnlockedAtstring · date-time · nullablerequired

When 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.

Example: 2026-05-01T12:30:00.000Z
maxWithdrawalAmountstring · int32required

Largest amount that may be withdrawn from the account right now, fp9 raw.

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

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

Whether a withdrawal request is already in flight for the current period.

Example: true
profitSplitPercentnumberrequired

Share of the profit paid out to the trader, in percent.

Example: 80
debtstring · int32required

Outstanding promo-discount debt of the account, fp9 raw. Withheld from the next payout; 0 when there is none.

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

Daily drawdown protection of the account. Null when the account does not carry the option.

Object · 1 field
usedAtstring · date-time · nullablerequired

When the protection was consumed. Null while it is still available.

Example: 2026-05-01T12:30:00.000Z
View example
{
  "usedAt": "2026-05-01T12:30:00.000Z"
}
aiFailedReportbooleanrequired

Whether an automated report has been produced for the failure of this account.

Example: true
apiTradingbooleanrequired

Whether the account may be traded with a personal API key. Requests made with a key are refused on accounts where this is false.

Example: true
availableMarketsstring · enumrequired

Market category the account may trade: crypto, rwa, or all.

Allowed: "crypto" "rwa" "all"
Example: crypto
antifraudStatusstring · enumrequired

Antifraud state of the account; anything other than normal marks it for review.

Allowed: "normal" "test_account" "balance_exceeded" "manually_flagged" "manually_cleared"
Example: normal
tradingLockReasonstring · nullablerequired

Why 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.

Example: string
tournamentobject · nullablerequired

Tournament the account belongs to. Null for accounts outside a tournament.

Object · 5 fields
idstring · uuidrequired

Tournament 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})$
Example: 00000000-0000-4000-8000-000000000000
statusstring · enumrequired

Stage the tournament is in.

Allowed: "active" "completed"
Example: active
startDatestring · date-timerequired

When the tournament opens for trading.

Example: 2026-05-01T12:30:00.000Z
endDatestring · date-timerequired

When the tournament closes.

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

Whether final standings have been recomputed after the close.

Example: true
View 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
}
restoreobjectrequired

Whether a failed funded account can be brought back, and until when.

Object · 2 fields
restoreAvailablebooleanrequired

Whether the failed funded account can be restored right now.

Example: true
restoreAvailableUntilstring · date-time · nullablerequired

When the restore window closes. Null when there is no window.

Example: 2026-05-01T12:30:00.000Z
View example
{
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

No valid example could be generated.

Example: []
totalCountnumberrequired

Total number of events across all pages.

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