# Get the events of the trader account

`GET /accounts/events`

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.

## Authorization

bearer: http · bearer (required). Personal API key, prefixed with `usk_`.

## Parameters

- query: limit (integer; optional). Page size: how many records to return.

Type: integer

Example: 20

Default: 20

minimum: 1

maximum: 100

- query: offset (integer; optional). How many records to skip before the page.

Type: integer

Example: 0

Default: 0

minimum: 0

maximum: 9007199254740991

## Example · cURL

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

## Example · JavaScript

```javascript
const response = await fetch("https://api.upscale.trade/accounts/events", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.upscale.trade/accounts/events",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · AccountsEventsPaginatedResponse

**200** application/json — Response

Schema: AccountsEventsPaginatedResponse

Type: object

Required fields: data, totalCount

Required field types: data (object[]; required), totalCount (number; required)

- data (object[]; required)

data example: []

data.Type: object[]

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

data.[]Type: object

data.[]oneOf variant 1

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: buy_challenge

data.[]eventType.Type: string · enum

data.[]eventType.The trader bought a challenge and this account was opened for it.

data.[]eventType.Allowed values: ["buy_challenge"]

- data.[]payload (object; required)

data.[]payload example: {
  "amount": "string",
  "provider": "vault"
}

data.[]payload.Type: object

data.[]payload.Required fields: amount, provider

data.[]payload.Required field types: amount (string; required), provider (string · enum; required)

data.[]payload.What was paid for the challenge.

- data.[]payload.amount (string; required)

data.[]payload.amount example: string

data.[]payload.amount.Type: string

data.[]payload.amount.Amount paid for the challenge, in the currency of the provider, fp9 raw.

- data.[]payload.provider (string · enum; required)

data.[]payload.provider example: vault

data.[]payload.provider.Type: string · enum

data.[]payload.provider.Payment rail the challenge was bought through.

data.[]payload.provider.Allowed values: ["vault","calypso","base_pay","telegram","fpay","b2m","onramp","coindisco","easypay","free"]

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 2

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: failed_challenge

data.[]eventType.Type: string · enum

data.[]eventType.The account broke a drawdown rule and was failed.

data.[]eventType.Allowed values: ["failed_challenge"]

- data.[]payload (object; required)

data.[]payload example: {
  "reason": "max_total_drawdown"
}

data.[]payload.Type: object

data.[]payload.Required fields: reason

data.[]payload.Required field types: reason (string · enum; required)

data.[]payload.Which rule failed the account.

- data.[]payload.reason (string · enum; required)

data.[]payload.reason example: max_total_drawdown

data.[]payload.reason.Type: string · enum

data.[]payload.reason.Drawdown rule that failed the account.

data.[]payload.reason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown"]

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 3

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: completed_challenge

data.[]eventType.Type: string · enum

data.[]eventType.The account passed a phase.

data.[]eventType.Allowed values: ["completed_challenge"]

- data.[]payload (object; required)

data.[]payload example: {
  "phase": "active_evaluation"
}

data.[]payload.Type: object

data.[]payload.Required fields: phase

data.[]payload.Required field types: phase (string · enum; required)

data.[]payload.Which phase was completed.

- data.[]payload.phase (string · enum; required)

data.[]payload.phase example: active_evaluation

data.[]payload.phase.Type: string · enum

data.[]payload.phase.Phase the account completed.

data.[]payload.phase.Allowed values: ["active_evaluation","active_verification","funded","funded_success"]

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 4

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: withdraw_request

data.[]eventType.Type: string · enum

data.[]eventType.A payout was requested from the account.

data.[]eventType.Allowed values: ["withdraw_request"]

- data.[]payload (object; required)

data.[]payload example: {
  "amount": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: amount

data.[]payload.Required field types: amount (string; required)

data.[]payload.What was requested.

- data.[]payload.amount (string; required)

data.[]payload.amount example: string

data.[]payload.amount.Type: string

data.[]payload.amount.Amount requested for withdrawal, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 5

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: withdraw_rejected

data.[]eventType.Type: string · enum

data.[]eventType.A payout request was turned down.

data.[]eventType.Allowed values: ["withdraw_rejected"]

- data.[]payload (object; required)

data.[]payload example: {
  "amount": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: amount

data.[]payload.Required field types: amount (string; required)

data.[]payload.What was rejected.

- data.[]payload.amount (string; required)

data.[]payload.amount example: string

data.[]payload.amount.Type: string

data.[]payload.amount.Amount of the rejected withdrawal, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 6

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: withdraw_success

data.[]eventType.Type: string · enum

data.[]eventType.A payout was paid out.

data.[]eventType.Allowed values: ["withdraw_success"]

- data.[]payload (object; required)

data.[]payload example: {
  "amount": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: amount

data.[]payload.Required field types: amount (string; required)

data.[]payload.What was paid out.

- data.[]payload.amount (string; required)

data.[]payload.amount example: string

data.[]payload.amount.Type: string

data.[]payload.amount.Amount actually paid out, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 7

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: demo_account_created

data.[]eventType.Type: string · enum

data.[]eventType.A demo account was opened.

data.[]eventType.Allowed values: ["demo_account_created"]

- data.[]payload (object; required)

data.[]payload example: {
  "challengeId": "string",
  "initialBalance": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: challengeId, initialBalance

data.[]payload.Required field types: challengeId (string; required), initialBalance (string; required)

data.[]payload.What the demo account was opened with.

- data.[]payload.challengeId (string; required)

data.[]payload.challengeId example: string

data.[]payload.challengeId.Type: string

data.[]payload.challengeId.Challenge the demo account was modelled on.

- data.[]payload.initialBalance (string; required)

data.[]payload.initialBalance example: string

data.[]payload.initialBalance.Type: string

data.[]payload.initialBalance.Balance the demo account started with, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 8

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: demo_account_closed

data.[]eventType.Type: string · enum

data.[]eventType.A demo account was closed.

data.[]eventType.Allowed values: ["demo_account_closed"]

- data.[]payload (object; required)

data.[]payload example: {
  "challengeId": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: challengeId

data.[]payload.Required field types: challengeId (string; required)

data.[]payload.Which challenge the closed demo account belonged to.

- data.[]payload.challengeId (string; required)

data.[]payload.challengeId example: string

data.[]payload.challengeId.Type: string

data.[]payload.challengeId.Challenge of the demo account that was closed.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 9

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: daily_drawdown_protection

data.[]eventType.Type: string · enum

data.[]eventType.The daily drawdown protection of the account was consumed, saving it from failing that day.

data.[]eventType.Allowed values: ["daily_drawdown_protection"]

- data.[]payload (object; required)

data.[]payload example: {
  "challengeId": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: challengeId

data.[]payload.Required field types: challengeId (string; required)

data.[]payload.Which challenge the protection applied to.

- data.[]payload.challengeId (string; required)

data.[]payload.challengeId example: string

data.[]payload.challengeId.Type: string

data.[]payload.challengeId.Challenge of the account whose daily drawdown protection was consumed.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 10

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: tournament_account_created

data.[]eventType.Type: string · enum

data.[]eventType.An account was opened for a tournament.

data.[]eventType.Allowed values: ["tournament_account_created"]

- data.[]payload (object; required)

data.[]payload example: {
  "tournamentId": "string",
  "challengeId": "string",
  "initialBalance": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: tournamentId, challengeId, initialBalance

data.[]payload.Required field types: tournamentId (string; required), challengeId (string; required), initialBalance (string; required)

data.[]payload.Which tournament the account belongs to and what it started with.

- data.[]payload.tournamentId (string; required)

data.[]payload.tournamentId example: string

data.[]payload.tournamentId.Type: string

data.[]payload.tournamentId.Tournament the account was created for.

- data.[]payload.challengeId (string; required)

data.[]payload.challengeId example: string

data.[]payload.challengeId.Type: string

data.[]payload.challengeId.Challenge the tournament account was modelled on.

- data.[]payload.initialBalance (string; required)

data.[]payload.initialBalance example: string

data.[]payload.initialBalance.Type: string

data.[]payload.initialBalance.Balance the tournament account started with, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 11

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: tournament_account_closed

data.[]eventType.Type: string · enum

data.[]eventType.A tournament account was closed.

data.[]eventType.Allowed values: ["tournament_account_closed"]

- data.[]payload (object; required)

data.[]payload example: {
  "tournamentId": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: tournamentId

data.[]payload.Required field types: tournamentId (string; required)

data.[]payload.Which tournament ended.

- data.[]payload.tournamentId (string; required)

data.[]payload.tournamentId example: string

data.[]payload.tournamentId.Type: string

data.[]payload.tournamentId.Tournament that ended for this account.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 12

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: funded_limit_locked

data.[]eventType.Type: string · enum

data.[]eventType.Trading was locked because the funded capital the user manages reached the limit.

data.[]eventType.Allowed values: ["funded_limit_locked"]

- data.[]payload (object; required)

data.[]payload example: {
  "reason": "string",
  "initialAccountBalance": "string",
  "currentManagedCapital": "string",
  "limit": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: reason, initialAccountBalance, currentManagedCapital, limit

data.[]payload.Required field types: reason (string; required), initialAccountBalance (string; required), currentManagedCapital (string; required), limit (string; required)

data.[]payload.The capital and limit that triggered the lock.

- data.[]payload.reason (string; required)

data.[]payload.reason example: string

data.[]payload.reason.Type: string

data.[]payload.reason.Why trading was locked: `auto` for the limit hit on promotion, otherwise the reason an administrator gave.

- data.[]payload.initialAccountBalance (string; required)

data.[]payload.initialAccountBalance example: string

data.[]payload.initialAccountBalance.Type: string

data.[]payload.initialAccountBalance.Nominal size of the account being locked, fp9 raw.

- data.[]payload.currentManagedCapital (string; required)

data.[]payload.currentManagedCapital example: string

data.[]payload.currentManagedCapital.Type: string

data.[]payload.currentManagedCapital.Funded capital the user already managed before this account, fp9 raw.

- data.[]payload.limit (string; required)

data.[]payload.limit example: string

data.[]payload.limit.Type: string

data.[]payload.limit.Managed capital limit that applies to the user, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 13

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: funded_limit_unlocked

data.[]eventType.Type: string · enum

data.[]eventType.The managed capital lock was lifted and trading resumed.

data.[]eventType.Allowed values: ["funded_limit_unlocked"]

- data.[]payload (object; required)

data.[]payload example: {
  "initiator": "user",
  "reason": "string",
  "currentManagedCapital": "string",
  "limit": "string"
}

data.[]payload.Type: object

data.[]payload.Required fields: initiator, currentManagedCapital, limit

data.[]payload.Required field types: initiator (string · enum; required), currentManagedCapital (string; required), limit (string; required)

data.[]payload.Who lifted the lock and against which limit.

- data.[]payload.initiator (string · enum; required)

data.[]payload.initiator example: user

data.[]payload.initiator.Type: string · enum

data.[]payload.initiator.Who lifted the lock — the trader or an administrator.

data.[]payload.initiator.Allowed values: ["user","admin"]

- data.[]payload.reason (string; optional)

data.[]payload.reason example: string

data.[]payload.reason.Type: string

data.[]payload.reason.Reason given for an administrative unlock. Absent when the trader unlocked the account themselves.

- data.[]payload.currentManagedCapital (string; required)

data.[]payload.currentManagedCapital example: string

data.[]payload.currentManagedCapital.Type: string

data.[]payload.currentManagedCapital.Funded capital the user managed at the moment of the unlock, fp9 raw.

- data.[]payload.limit (string; required)

data.[]payload.limit example: string

data.[]payload.limit.Type: string

data.[]payload.limit.Managed capital limit that applies to the user, fp9 raw.

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 14

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: account_restored

data.[]eventType.Type: string · enum

data.[]eventType.A failed funded account was restored and continues under a new life iteration.

data.[]eventType.Allowed values: ["account_restored"]

- data.[]payload (object; required)

data.[]payload example: {
  "sourceLifeIteration": 0,
  "targetLifeIteration": 0,
  "failedAt": "string",
  "previousBalance": "string",
  "restoreBalance": "string",
  "restorePriceUsd": "string",
  "restorePriceStars": "string",
  "provider": "vault",
  "currency": "string",
  "source": "user",
  "paymentId": "00000000-0000-4000-8000-000000000000"
}

data.[]payload.Type: object

data.[]payload.Required fields: sourceLifeIteration, targetLifeIteration, failedAt, previousBalance, restoreBalance, restorePriceUsd, restorePriceStars, provider, currency, source, paymentId

data.[]payload.Required field types: sourceLifeIteration (number; required), targetLifeIteration (number; required), failedAt (string; required), previousBalance (string; required), restoreBalance (string; required), restorePriceUsd (string; required), restorePriceStars (string; required), provider (string · enum · nullable; required), currency (string · nullable; required), source (string · enum; required), paymentId (string · uuid · nullable; required)

data.[]payload.What the account was restored from and at what price.

- data.[]payload.sourceLifeIteration (number; required)

data.[]payload.sourceLifeIteration example: 0

data.[]payload.sourceLifeIteration.Type: number

data.[]payload.sourceLifeIteration.Life iteration of the account that failed.

- data.[]payload.targetLifeIteration (number; required)

data.[]payload.targetLifeIteration example: 0

data.[]payload.targetLifeIteration.Type: number

data.[]payload.targetLifeIteration.Life iteration the account continues under after the restore.

- data.[]payload.failedAt (string; required)

data.[]payload.failedAt example: string

data.[]payload.failedAt.Type: string

data.[]payload.failedAt.When the account failed, ISO-8601. The event timestamp is the moment of the restore.

- data.[]payload.previousBalance (string; required)

data.[]payload.previousBalance example: string

data.[]payload.previousBalance.Type: string

data.[]payload.previousBalance.Balance the account carried when it failed, in USD.

- data.[]payload.restoreBalance (string; required)

data.[]payload.restoreBalance example: string

data.[]payload.restoreBalance.Type: string

data.[]payload.restoreBalance.Trading balance the restored account starts from, in USD.

- data.[]payload.restorePriceUsd (string; required)

data.[]payload.restorePriceUsd example: string

data.[]payload.restorePriceUsd.Type: string

data.[]payload.restorePriceUsd.Price paid for the restore, in USD. `0` for an administrative restore.

- data.[]payload.restorePriceStars (string; required)

data.[]payload.restorePriceStars example: string

data.[]payload.restorePriceStars.Type: string

data.[]payload.restorePriceStars.Price paid for the restore, in Telegram Stars.

- data.[]payload.provider (string · enum · nullable; required)

data.[]payload.provider example: vault

data.[]payload.provider.Type: string · enum · nullable

data.[]payload.provider.Payment rail the restore was paid through. Null for an administrative restore.

data.[]payload.provider.Allowed values: ["vault","calypso","base_pay","telegram","fpay","b2m","onramp","coindisco","easypay","free",null]

- data.[]payload.currency (string · nullable; required)

data.[]payload.currency example: string

data.[]payload.currency.Type: string · nullable

data.[]payload.currency.Currency the restore was paid in. Null for an administrative restore.

- data.[]payload.source (string · enum; required)

data.[]payload.source example: user

data.[]payload.source.Type: string · enum

data.[]payload.source.Where the restore was requested from.

data.[]payload.source.Allowed values: ["user","admin"]

- data.[]payload.paymentId (string · uuid · nullable; required)

data.[]payload.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]payload.paymentId.Type: string · uuid · nullable

data.[]payload.paymentId.Payment behind the restore. Null when it was not paid for.

data.[]payload.paymentId.format: uuid

data.[]payload.paymentId.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})$

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

data.[]oneOf variant 15

data.[]Type: object

data.[]Required fields: eventType, payload, id, accountId, createdAt, account

data.[]Required field types: eventType (string · enum; required), payload (object; required), id (string · uuid; required), accountId (string · uuid; required), createdAt (string · date-time; required), account (object; required)

- data.[]eventType (string · enum; required)

data.[]eventType example: account_option_purchased

data.[]eventType.Type: string · enum

data.[]eventType.An option was bought for an existing account.

data.[]eventType.Allowed values: ["account_option_purchased"]

- data.[]payload (object; required)

data.[]payload example: {
  "optionName": "profit_split_90",
  "paymentId": "00000000-0000-4000-8000-000000000000",
  "amount": "string",
  "amountUsd": "string",
  "currency": "string",
  "provider": "vault"
}

data.[]payload.Type: object

data.[]payload.Required fields: optionName, paymentId, amount, amountUsd, currency, provider

data.[]payload.Required field types: optionName (string · enum; required), paymentId (string · uuid; required), amount (string; required), amountUsd (string; required), currency (string; required), provider (string · enum; required)

data.[]payload.Which option was bought and what was paid.

- data.[]payload.optionName (string · enum; required)

data.[]payload.optionName example: profit_split_90

data.[]payload.optionName.Type: string · enum

data.[]payload.optionName.Option that was bought for the account.

data.[]payload.optionName.Allowed values: ["profit_split_90","daily_drawdown_protection","ai_failed_report","api_trading"]

- data.[]payload.paymentId (string · uuid; required)

data.[]payload.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]payload.paymentId.Type: string · uuid

data.[]payload.paymentId.Payment the option was bought with.

data.[]payload.paymentId.format: uuid

data.[]payload.paymentId.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})$

- data.[]payload.amount (string; required)

data.[]payload.amount example: string

data.[]payload.amount.Type: string

data.[]payload.amount.Amount paid, in the currency of the payment.

- data.[]payload.amountUsd (string; required)

data.[]payload.amountUsd example: string

data.[]payload.amountUsd.Type: string

data.[]payload.amountUsd.Amount paid, converted to USD.

- data.[]payload.currency (string; required)

data.[]payload.currency example: string

data.[]payload.currency.Type: string

data.[]payload.currency.Currency the option was paid in.

- data.[]payload.provider (string · enum; required)

data.[]payload.provider example: vault

data.[]payload.provider.Type: string · enum

data.[]payload.provider.Payment rail the option was bought through.

data.[]payload.provider.Allowed values: ["vault","calypso","base_pay","telegram","fpay","b2m","onramp","coindisco","easypay","free"]

- data.[]id (string · uuid; required)

data.[]id example: 00000000-0000-4000-8000-000000000000

data.[]id.Type: string · uuid

data.[]id.Event identifier.

data.[]id.format: uuid

data.[]id.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})$

- data.[]accountId (string · uuid; required)

data.[]accountId example: 00000000-0000-4000-8000-000000000000

data.[]accountId.Type: string · uuid

data.[]accountId.Trader account the event happened on.

data.[]accountId.format: uuid

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-05-01T12:30:00.000Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.When the event happened.

data.[]createdAt.format: date-time

- data.[]account (object; required)

data.[]account.Type: object

data.[]account.Required fields: accountId, userId, paymentId, challengeId, tournamentId, type, initialPhase, currentPhase, status, profitTarget, maxDailyDrawdown, maxTotalDrawdown, maxTrailingTotalDrawdown, drawdownBase, maxDrawdownStop, minTradingDays, suspendedUntil, accountBalance, initialAccountBalance, maxEquity, dayStartEquity, profitableDays, prevPeriodProfitableDays, createdAt, failureReason, fundedAt, failedAt, transitionReviewAt, currentWithdrawalPeriodStartedAt, fundedLimitUnlockedAt, maxWithdrawalAmount, payoutBaselineBalance, isActiveWithdrawalInPeriod, profitSplitPercent, debt, dailyDrawdownProtection, aiFailedReport, apiTrading, availableMarkets, antifraudStatus, tradingLockReason, tournament, restore

data.[]account.Required field types: accountId (string · uuid; required), userId (string · uuid; required), paymentId (string · uuid · nullable; required), challengeId (string · nullable; required), tournamentId (string · uuid · nullable; required), type (string · enum; required), initialPhase (string; required), currentPhase (string; required), status (string · enum; required), profitTarget (string · nullable; required), maxDailyDrawdown (string · nullable; required), maxTotalDrawdown (string · nullable; required), maxTrailingTotalDrawdown (string · nullable; required), drawdownBase (string · int32 · nullable; required), maxDrawdownStop (string · int32 · nullable; required), minTradingDays (number · nullable; required), suspendedUntil (string · date-time · nullable; required), accountBalance (string · int32; required), initialAccountBalance (string · int32; required), maxEquity (string · int32 · nullable; required), dayStartEquity (string · int32 · nullable; required), profitableDays (number; required), prevPeriodProfitableDays (number; required), createdAt (string · date-time; required), failureReason (string · enum · nullable; required), fundedAt (string · date-time · nullable; required), failedAt (string · date-time · nullable; required), transitionReviewAt (string · date-time · nullable; required), currentWithdrawalPeriodStartedAt (string · date-time · nullable; required), fundedLimitUnlockedAt (string · date-time · nullable; required), maxWithdrawalAmount (string · int32; required), payoutBaselineBalance (string · int32; required), isActiveWithdrawalInPeriod (boolean; required), profitSplitPercent (number; required), debt (string · int32; required), dailyDrawdownProtection (object · nullable; required), aiFailedReport (boolean; required), apiTrading (boolean; required), availableMarkets (string · enum; required), antifraudStatus (string · enum; required), tradingLockReason (string · nullable; required), tournament (object · nullable; required), restore (object; required)

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

- data.[]account.accountId (string · uuid; required)

data.[]account.accountId example: 00000000-0000-4000-8000-000000000000

data.[]account.accountId.Type: string · uuid

data.[]account.accountId.Trader account identifier.

data.[]account.accountId.format: uuid

data.[]account.accountId.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})$

- data.[]account.userId (string · uuid; required)

data.[]account.userId example: 00000000-0000-4000-8000-000000000000

data.[]account.userId.Type: string · uuid

data.[]account.userId.Owner of the account.

data.[]account.userId.format: uuid

data.[]account.userId.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})$

- data.[]account.paymentId (string · uuid · nullable; required)

data.[]account.paymentId example: 00000000-0000-4000-8000-000000000000

data.[]account.paymentId.Type: string · uuid · nullable

data.[]account.paymentId.Payment the challenge behind this account was bought with. Null for accounts that were not purchased.

data.[]account.paymentId.format: uuid

data.[]account.paymentId.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})$

- data.[]account.challengeId (string · nullable; required)

data.[]account.challengeId example: challenge1

data.[]account.challengeId.Type: string · nullable

data.[]account.challengeId.Challenge the account runs. Null for demo and tournament accounts.

- data.[]account.tournamentId (string · uuid · nullable; required)

data.[]account.tournamentId example: 00000000-0000-4000-8000-000000000000

data.[]account.tournamentId.Type: string · uuid · nullable

data.[]account.tournamentId.Tournament the account was created for. Null outside tournament accounts.

data.[]account.tournamentId.format: uuid

data.[]account.tournamentId.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})$

- data.[]account.type (string · enum; required)

data.[]account.type example: demo

data.[]account.type.Type: string · enum

data.[]account.type.Account kind: a paid challenge (`real`), a `demo` account, or a `tournament` entry.

data.[]account.type.Allowed values: ["demo","real","tournament"]

- data.[]account.initialPhase (string; required)

data.[]account.initialPhase example: active_evaluation

data.[]account.initialPhase.Type: string

data.[]account.initialPhase.Phase the account started in.

- data.[]account.currentPhase (string; required)

data.[]account.currentPhase example: active_evaluation

data.[]account.currentPhase.Type: string

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

- data.[]account.status (string · enum; required)

data.[]account.status example: active

data.[]account.status.Type: string · enum

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

data.[]account.status.Allowed values: ["pending","active","failed","frozen","suspended","closed","trading_locked_by_funded_limit","trading_locked_by_instant_funded_limit","phase_transition_pending","transition_review"]

- data.[]account.profitTarget (string · nullable; required)

data.[]account.profitTarget.Type: string · nullable

data.[]account.profitTarget.Profit needed to pass the current phase, in percent of the initial balance. Null when the phase has no target.

- data.[]account.maxDailyDrawdown (string · nullable; required)

data.[]account.maxDailyDrawdown.Type: string · nullable

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

- data.[]account.maxTotalDrawdown (string · nullable; required)

data.[]account.maxTotalDrawdown.Type: string · nullable

data.[]account.maxTotalDrawdown.Total drawdown limit of the current phase, in percent of the initial balance. Null when the phase has no total limit.

- data.[]account.maxTrailingTotalDrawdown (string · nullable; required)

data.[]account.maxTrailingTotalDrawdown.Type: string · nullable

data.[]account.maxTrailingTotalDrawdown.Trailing drawdown limit of the current phase, in percent of the highest equity reached. Null when the phase has no trailing limit.

- data.[]account.drawdownBase (string · int32 · nullable; required)

data.[]account.drawdownBase example: 1000000000

data.[]account.drawdownBase.Type: string · int32 · nullable

data.[]account.drawdownBase.Equity the funded-phase drawdown is measured from, fp9 raw. Null while it is measured from the initial balance.

data.[]account.drawdownBase.format: int32

data.[]account.drawdownBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxDrawdownStop (string · int32 · nullable; required)

data.[]account.maxDrawdownStop example: 1000000000

data.[]account.maxDrawdownStop.Type: string · int32 · nullable

data.[]account.maxDrawdownStop.Equity level at which the funded-phase drawdown fails the account, fp9 raw. Null while it is derived from the initial balance.

data.[]account.maxDrawdownStop.format: int32

data.[]account.maxDrawdownStop.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.minTradingDays (number · nullable; required)

data.[]account.minTradingDays example: 3

data.[]account.minTradingDays.Type: number · nullable

data.[]account.minTradingDays.Trading days required before the current phase can be passed. Null when the phase has no minimum.

- data.[]account.suspendedUntil (string · date-time · nullable; required)

data.[]account.suspendedUntil example: 2023-10-01T00:00:00.000Z

data.[]account.suspendedUntil.Type: string · date-time · nullable

data.[]account.suspendedUntil.When a suspension of the account lifts. Null when it is not suspended.

data.[]account.suspendedUntil.format: date-time

- data.[]account.accountBalance (string · int32; required)

data.[]account.accountBalance example: 1000000000

data.[]account.accountBalance.Type: string · int32

data.[]account.accountBalance.Balance without the unrealised pnl of open positions, fp9 raw.

data.[]account.accountBalance.format: int32

data.[]account.accountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.initialAccountBalance (string · int32; required)

data.[]account.initialAccountBalance example: 1000000000

data.[]account.initialAccountBalance.Type: string · int32

data.[]account.initialAccountBalance.Balance the account was opened with, fp9 raw — the nominal size of the challenge.

data.[]account.initialAccountBalance.format: int32

data.[]account.initialAccountBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.maxEquity (string · int32 · nullable; required)

data.[]account.maxEquity example: 1000000000

data.[]account.maxEquity.Type: string · int32 · nullable

data.[]account.maxEquity.Highest equity the account has reached, fp9 raw. Null before the first trade.

data.[]account.maxEquity.format: int32

data.[]account.maxEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dayStartEquity (string · int32 · nullable; required)

data.[]account.dayStartEquity example: 1000000000

data.[]account.dayStartEquity.Type: string · int32 · nullable

data.[]account.dayStartEquity.Equity the current trading day opened at, fp9 raw.

data.[]account.dayStartEquity.format: int32

data.[]account.dayStartEquity.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.profitableDays (number; required)

data.[]account.profitableDays example: 0

data.[]account.profitableDays.Type: number

data.[]account.profitableDays.Profitable days counted in the current withdrawal period.

- data.[]account.prevPeriodProfitableDays (number; required)

data.[]account.prevPeriodProfitableDays example: 0

data.[]account.prevPeriodProfitableDays.Type: number

data.[]account.prevPeriodProfitableDays.Profitable days counted in the previous withdrawal period.

- data.[]account.createdAt (string · date-time; required)

data.[]account.createdAt example: 2026-05-01T12:30:00.000Z

data.[]account.createdAt.Type: string · date-time

data.[]account.createdAt.When the account was created.

data.[]account.createdAt.format: date-time

- data.[]account.failureReason (string · enum · nullable; required)

data.[]account.failureReason example: max_total_drawdown

data.[]account.failureReason.Type: string · enum · nullable

data.[]account.failureReason.Rule that failed the account. Null while it has not failed.

data.[]account.failureReason.Allowed values: ["max_total_drawdown","max_trailing_total_drawdown","max_daily_drawdown",null]

- data.[]account.fundedAt (string · date-time · nullable; required)

data.[]account.fundedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedAt.Type: string · date-time · nullable

data.[]account.fundedAt.When the account reached the funded phase. Null before that.

data.[]account.fundedAt.format: date-time

- data.[]account.failedAt (string · date-time · nullable; required)

data.[]account.failedAt example: 2026-05-01T12:30:00.000Z

data.[]account.failedAt.Type: string · date-time · nullable

data.[]account.failedAt.When the account failed. Null while it has not.

data.[]account.failedAt.format: date-time

- data.[]account.transitionReviewAt (string · date-time · nullable; required)

data.[]account.transitionReviewAt example: 2026-05-01T12:30:00.000Z

data.[]account.transitionReviewAt.Type: string · date-time · nullable

data.[]account.transitionReviewAt.When the phase transition was sent for manual review. Null when no review is pending.

data.[]account.transitionReviewAt.format: date-time

- data.[]account.currentWithdrawalPeriodStartedAt (string · date-time · nullable; required)

data.[]account.currentWithdrawalPeriodStartedAt example: 2026-05-01T12:30:00.000Z

data.[]account.currentWithdrawalPeriodStartedAt.Type: string · date-time · nullable

data.[]account.currentWithdrawalPeriodStartedAt.Start of the running withdrawal period. Null while none is running.

data.[]account.currentWithdrawalPeriodStartedAt.format: date-time

- data.[]account.fundedLimitUnlockedAt (string · date-time · nullable; required)

data.[]account.fundedLimitUnlockedAt example: 2026-05-01T12:30:00.000Z

data.[]account.fundedLimitUnlockedAt.Type: string · date-time · nullable

data.[]account.fundedLimitUnlockedAt.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.

data.[]account.fundedLimitUnlockedAt.format: date-time

- data.[]account.maxWithdrawalAmount (string · int32; required)

data.[]account.maxWithdrawalAmount example: 1000000000

data.[]account.maxWithdrawalAmount.Type: string · int32

data.[]account.maxWithdrawalAmount.Largest amount that may be withdrawn from the account right now, fp9 raw.

data.[]account.maxWithdrawalAmount.format: int32

data.[]account.maxWithdrawalAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.payoutBaselineBalance (string · int32; required)

data.[]account.payoutBaselineBalance example: 1000000000

data.[]account.payoutBaselineBalance.Type: string · int32

data.[]account.payoutBaselineBalance.Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

data.[]account.payoutBaselineBalance.format: int32

data.[]account.payoutBaselineBalance.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.isActiveWithdrawalInPeriod (boolean; required)

data.[]account.isActiveWithdrawalInPeriod example: true

data.[]account.isActiveWithdrawalInPeriod.Type: boolean

data.[]account.isActiveWithdrawalInPeriod.Whether a withdrawal request is already in flight for the current period.

- data.[]account.profitSplitPercent (number; required)

data.[]account.profitSplitPercent example: 80

data.[]account.profitSplitPercent.Type: number

data.[]account.profitSplitPercent.Share of the profit paid out to the trader, in percent.

- data.[]account.debt (string · int32; required)

data.[]account.debt example: 1000000000

data.[]account.debt.Type: string · int32

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

data.[]account.debt.format: int32

data.[]account.debt.pattern: ^(?:-?[1-9][0-9]*|0)$

- data.[]account.dailyDrawdownProtection (object · nullable; required)

data.[]account.dailyDrawdownProtection example: {
  "usedAt": "2026-05-01T12:30:00.000Z"
}

data.[]account.dailyDrawdownProtection.Type: object · nullable

data.[]account.dailyDrawdownProtection.Required fields: usedAt

data.[]account.dailyDrawdownProtection.Required field types: usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.Daily drawdown protection of the account. Null when the account does not carry the option.

- data.[]account.dailyDrawdownProtection.usedAt (string · date-time · nullable; required)

data.[]account.dailyDrawdownProtection.usedAt example: 2026-05-01T12:30:00.000Z

data.[]account.dailyDrawdownProtection.usedAt.Type: string · date-time · nullable

data.[]account.dailyDrawdownProtection.usedAt.When the protection was consumed. Null while it is still available.

data.[]account.dailyDrawdownProtection.usedAt.format: date-time

- data.[]account.aiFailedReport (boolean; required)

data.[]account.aiFailedReport example: true

data.[]account.aiFailedReport.Type: boolean

data.[]account.aiFailedReport.Whether an automated report has been produced for the failure of this account.

- data.[]account.apiTrading (boolean; required)

data.[]account.apiTrading example: true

data.[]account.apiTrading.Type: boolean

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

- data.[]account.availableMarkets (string · enum; required)

data.[]account.availableMarkets example: crypto

data.[]account.availableMarkets.Type: string · enum

data.[]account.availableMarkets.Market category the account may trade: `crypto`, `rwa`, or `all`.

data.[]account.availableMarkets.Allowed values: ["crypto","rwa","all"]

- data.[]account.antifraudStatus (string · enum; required)

data.[]account.antifraudStatus example: normal

data.[]account.antifraudStatus.Type: string · enum

data.[]account.antifraudStatus.Antifraud state of the account; anything other than `normal` marks it for review.

data.[]account.antifraudStatus.Allowed values: ["normal","test_account","balance_exceeded","manually_flagged","manually_cleared"]

- data.[]account.tradingLockReason (string · nullable; required)

data.[]account.tradingLockReason example: string

data.[]account.tradingLockReason.Type: string · nullable

data.[]account.tradingLockReason.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.

- data.[]account.tournament (object · nullable; required)

data.[]account.tournament 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
}

data.[]account.tournament.Type: object · nullable

data.[]account.tournament.Required fields: id, status, startDate, endDate, finalRecalcDone

data.[]account.tournament.Required field types: id (string · uuid; required), status (string · enum; required), startDate (string · date-time; required), endDate (string · date-time; required), finalRecalcDone (boolean; required)

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

- data.[]account.tournament.id (string · uuid; required)

data.[]account.tournament.id example: 00000000-0000-4000-8000-000000000000

data.[]account.tournament.id.Type: string · uuid

data.[]account.tournament.id.Tournament identifier.

data.[]account.tournament.id.format: uuid

data.[]account.tournament.id.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})$

- data.[]account.tournament.status (string · enum; required)

data.[]account.tournament.status example: active

data.[]account.tournament.status.Type: string · enum

data.[]account.tournament.status.Stage the tournament is in.

data.[]account.tournament.status.Allowed values: ["active","completed"]

- data.[]account.tournament.startDate (string · date-time; required)

data.[]account.tournament.startDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.startDate.Type: string · date-time

data.[]account.tournament.startDate.When the tournament opens for trading.

data.[]account.tournament.startDate.format: date-time

- data.[]account.tournament.endDate (string · date-time; required)

data.[]account.tournament.endDate example: 2026-05-01T12:30:00.000Z

data.[]account.tournament.endDate.Type: string · date-time

data.[]account.tournament.endDate.When the tournament closes.

data.[]account.tournament.endDate.format: date-time

- data.[]account.tournament.finalRecalcDone (boolean; required)

data.[]account.tournament.finalRecalcDone example: true

data.[]account.tournament.finalRecalcDone.Type: boolean

data.[]account.tournament.finalRecalcDone.Whether final standings have been recomputed after the close.

- data.[]account.restore (object; required)

data.[]account.restore example: {
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}

data.[]account.restore.Type: object

data.[]account.restore.Required fields: restoreAvailable, restoreAvailableUntil

data.[]account.restore.Required field types: restoreAvailable (boolean; required), restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.Whether a failed funded account can be brought back, and until when.

- data.[]account.restore.restoreAvailable (boolean; required)

data.[]account.restore.restoreAvailable example: true

data.[]account.restore.restoreAvailable.Type: boolean

data.[]account.restore.restoreAvailable.Whether the failed funded account can be restored right now.

- data.[]account.restore.restoreAvailableUntil (string · date-time · nullable; required)

data.[]account.restore.restoreAvailableUntil example: 2026-05-01T12:30:00.000Z

data.[]account.restore.restoreAvailableUntil.Type: string · date-time · nullable

data.[]account.restore.restoreAvailableUntil.When the restore window closes. Null when there is no window.

data.[]account.restore.restoreAvailableUntil.format: date-time

- totalCount (number; required)

totalCount example: 0

totalCount.Type: number

totalCount.Total number of events across all pages.

Example



```json
{
  "data": [],
  "totalCount": 0
}
```

## Response 401

**401**  — Unauthorized

## Response 429

**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`.