Upscale
Menu
On this page

Получить события торгового аккаунта

Попробовать ↓
GET/accounts/events
Получить события торгового аккаунтаАккаунты

События жизненного цикла по всем аккаунтам вызывающего, сначала самые новые: покупки челленджей, завершения и неудачи, запросы на вывод средств и выплаты, блокировки и разблокировки лимита финансирования, открытие или закрытие демо- и турнирных аккаунтов.

  • При аутентификации с помощью API-ключа включаются только аккаунты, у которых включён api_trading.
  • Пагинация осуществляется с помощью limit и offset; ответ содержит общее количество.
Базовый URL https://api.upscale.trade

Авторизация

bearerhttp · bearerобязательно

Персональный API-ключ с префиксом usk_.

Параметры

Строка запроса
limitintegerнеобязательно

Размер страницы: сколько записей вернуть.

По умолчанию: 20

minimum
1
maximum
100
Пример: 20
offsetintegerнеобязательно

Сколько записей пропустить перед страницей.

По умолчанию: 0

minimum
0
maximum
9007199254740991
Пример: 0

Примеры

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

Ответы

200Ответapplication/json
dataobject[]обязательно

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

Элементы массива · object

Один из

eventTypestring · enumобязательно
Допустимо: "account_archive_expired"
Пример: account_archive_expired
payloadobjectобязательно
Объект · 3 поля
archivedAtstringобязательно
Пример: string
restoreAvailableUntilstringобязательно
Пример: string
expiredAtstringобязательно
Пример: string
Посмотреть пример
{
  "archivedAt": "string",
  "restoreAvailableUntil": "string",
  "expiredAt": "string"
}
idstring · uuidобязательно

Event identifier.

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
accountIdstring · uuidобязательно

Trader account the event happened on.

Пример: 00000000-0000-4000-8000-000000000000
createdAtstring · date-timeобязательно

When the event happened.

Пример: 2026-05-01T12:30:00.000Z
accountobjectобязательно

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

Объект · 45 поля
accountIdstring · uuidобязательно

Trader account identifier.

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
userIdstring · uuidобязательно

Owner of the account.

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
paymentIdstring · uuid · nullableобязательно

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

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
challengeIdstring · nullableобязательно

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

Пример: challenge1
tournamentIdstring · uuid · nullableобязательно

Tournament the account was created for. Null outside tournament accounts.

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
typestring · enumобязательно

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

Допустимо: "demo" "real" "tournament"
Пример: demo
initialPhasestringобязательно

Phase the account started in.

Пример: active_evaluation
currentPhasestringобязательно

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

Пример: active_evaluation
statusstring · enumобязательно

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

Допустимо: "pending" "active" "archived" "archive_expired" "failed" "frozen" "suspended" "closed" "trading_locked_by_funded_limit" "trading_locked_by_instant_funded_limit" "phase_transition_pending" "transition_review"
Пример: active
profitTargetstring · nullableобязательно

Profit the settled balance needs to pass the current phase, in percent of the initial balance — not fp9. Null when the phase has no target.

Пример: 5
maxDailyDrawdownstring · nullableобязательно

Daily drawdown limit of the current phase, in percent of the initial balance — not fp9. The loss is counted from dayStartEquity. Null when the phase has no daily limit.

Пример: 5
maxTotalDrawdownstring · nullableобязательно

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

Пример: 10
maxTrailingTotalDrawdownstring · nullableобязательно

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

Пример: 6
drawdownBasestring · fp9 · nullableобязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
maxDrawdownStopstring · fp9 · nullableобязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
minTradingDaysnumber · nullableобязательно

Profitable days (profitableDays) required before the current phase can be passed. Null when the phase has no minimum.

Пример: 3
suspendedUntilstring · date-time · nullableобязательно

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

Пример: 2023-10-01T00:00:00.000Z
accountBalancestring · fp9обязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
initialAccountBalancestring · fp9обязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
maxEquitystring · fp9 · nullableобязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
dayStartEquitystring · fp9 · nullableобязательно

Equity the current trading day opened at, fp9 raw.

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
profitableDaysnumberобязательно

Profitable days counted in the current withdrawal period.

Пример: 0
prevPeriodProfitableDaysnumberобязательно

Profitable days counted in the previous withdrawal period.

Пример: 0
archivedAtstring · date-time · nullableобязательно

Start of the account archive period.

Пример: 2026-05-01T12:30:00.000Z
archiveRestoreAvailableUntilstring · date-time · nullableобязательно

Unarchive deadline, independent of paid Restore.

Пример: 2026-05-01T12:30:00.000Z
createdAtstring · date-timeобязательно

When the account was created.

Пример: 2026-05-01T12:30:00.000Z
failureReasonstring · enum · nullableобязательно

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

Допустимо: "archive_expired" "max_total_drawdown" "max_trailing_total_drawdown" "max_daily_drawdown"
Пример: archive_expired
fundedAtstring · date-time · nullableобязательно

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

Пример: 2026-05-01T12:30:00.000Z
failedAtstring · date-time · nullableобязательно

When the account failed. Null while it has not.

Пример: 2026-05-01T12:30:00.000Z
transitionReviewAtstring · date-time · nullableобязательно

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

Пример: 2026-05-01T12:30:00.000Z
currentWithdrawalPeriodStartedAtstring · date-time · nullableобязательно

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

Пример: 2026-05-01T12:30:00.000Z
fundedLimitUnlockedAtstring · date-time · nullableобязательно

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.

Пример: 2026-05-01T12:30:00.000Z
maxWithdrawalAmountstring · fp9обязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
payoutBaselineBalancestring · fp9обязательно

Balance the next payout is measured from, fp9 raw. Equal to the initial balance until the first payout moves it.

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
isActiveWithdrawalInPeriodbooleanобязательно

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

Пример: true
profitSplitPercentnumberобязательно

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

Пример: 80
debtstring · fp9обязательно

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

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
dailyDrawdownProtectionobject · nullableобязательно

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

Объект · 1 поле
usedAtstring · date-time · nullableобязательно

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

Пример: 2026-05-01T12:30:00.000Z
Посмотреть пример
{
  "usedAt": "2026-05-01T12:30:00.000Z"
}
aiFailedReportbooleanобязательно

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

Пример: true
apiTradingbooleanобязательно

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

Пример: true
availableMarketsstring · enumобязательно

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

Допустимо: "crypto" "rwa" "all"
Пример: crypto
antifraudStatusstring · enumобязательно

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

Допустимо: "normal" "test_account" "balance_exceeded" "manually_flagged" "manually_cleared"
Пример: normal
tradingLockReasonstring · nullableобязательно

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.

Пример: string
tournamentobject · nullableобязательно

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

Объект · 5 поля
idstring · uuidобязательно

Tournament identifier.

pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Пример: 00000000-0000-4000-8000-000000000000
statusstring · enumобязательно

Stage the tournament is in.

Допустимо: "active" "completed"
Пример: active
startDatestring · date-timeобязательно

When the tournament opens for trading.

Пример: 2026-05-01T12:30:00.000Z
endDatestring · date-timeобязательно

When the tournament closes.

Пример: 2026-05-01T12:30:00.000Z
finalRecalcDonebooleanобязательно

Whether final standings have been recomputed after the close.

Пример: true
Посмотреть пример
{
  "id": "00000000-0000-4000-8000-000000000000",
  "status": "active",
  "startDate": "2026-05-01T12:30:00.000Z",
  "endDate": "2026-05-01T12:30:00.000Z",
  "finalRecalcDone": true
}
restoreobjectобязательно

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

Объект · 2 поля
restoreAvailablebooleanобязательно

Whether the failed funded account can be restored right now.

Пример: true
restoreAvailableUntilstring · date-time · nullableобязательно

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

Пример: 2026-05-01T12:30:00.000Z
Посмотреть пример
{
  "restoreAvailable": true,
  "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
}
Посмотреть пример
{
  "accountId": "00000000-0000-4000-8000-000000000000",
  "userId": "00000000-0000-4000-8000-000000000000",
  "paymentId": "00000000-0000-4000-8000-000000000000",
  "challengeId": "challenge1",
  "tournamentId": "00000000-0000-4000-8000-000000000000",
  "type": "demo",
  "initialPhase": "active_evaluation",
  "currentPhase": "active_evaluation",
  "status": "active",
  "profitTarget": "5",
  "maxDailyDrawdown": "5",
  "maxTotalDrawdown": "10",
  "maxTrailingTotalDrawdown": "6",
  "drawdownBase": "1000000000",
  "maxDrawdownStop": "1000000000",
  "minTradingDays": 3,
  "suspendedUntil": "2023-10-01T00:00:00.000Z",
  "accountBalance": "1000000000",
  "initialAccountBalance": "1000000000",
  "maxEquity": "1000000000",
  "dayStartEquity": "1000000000",
  "profitableDays": 0,
  "prevPeriodProfitableDays": 0,
  "archivedAt": "2026-05-01T12:30:00.000Z",
  "archiveRestoreAvailableUntil": "2026-05-01T12:30:00.000Z",
  "createdAt": "2026-05-01T12:30:00.000Z",
  "failureReason": "archive_expired",
  "fundedAt": "2026-05-01T12:30:00.000Z",
  "failedAt": "2026-05-01T12:30:00.000Z",
  "transitionReviewAt": "2026-05-01T12:30:00.000Z",
  "currentWithdrawalPeriodStartedAt": "2026-05-01T12:30:00.000Z",
  "fundedLimitUnlockedAt": "2026-05-01T12:30:00.000Z",
  "maxWithdrawalAmount": "1000000000",
  "payoutBaselineBalance": "1000000000",
  "isActiveWithdrawalInPeriod": true,
  "profitSplitPercent": 80,
  "debt": "1000000000",
  "dailyDrawdownProtection": {
    "usedAt": "2026-05-01T12:30:00.000Z"
  },
  "aiFailedReport": true,
  "apiTrading": true,
  "availableMarkets": "crypto",
  "antifraudStatus": "normal",
  "tradingLockReason": "string",
  "tournament": {
    "id": "00000000-0000-4000-8000-000000000000",
    "status": "active",
    "startDate": "2026-05-01T12:30:00.000Z",
    "endDate": "2026-05-01T12:30:00.000Z",
    "finalRecalcDone": true
  },
  "restore": {
    "restoreAvailable": true,
    "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
  }
}
Пример · account_archive_expired
{
  "eventType": "account_archive_expired",
  "payload": {
    "archivedAt": "string",
    "restoreAvailableUntil": "string",
    "expiredAt": "string"
  },
  "id": "00000000-0000-4000-8000-000000000000",
  "accountId": "00000000-0000-4000-8000-000000000000",
  "createdAt": "2026-05-01T12:30:00.000Z",
  "account": {
    "accountId": "00000000-0000-4000-8000-000000000000",
    "userId": "00000000-0000-4000-8000-000000000000",
    "paymentId": "00000000-0000-4000-8000-000000000000",
    "challengeId": "challenge1",
    "tournamentId": "00000000-0000-4000-8000-000000000000",
    "type": "demo",
    "initialPhase": "active_evaluation",
    "currentPhase": "active_evaluation",
    "status": "active",
    "profitTarget": "5",
    "maxDailyDrawdown": "5",
    "maxTotalDrawdown": "10",
    "maxTrailingTotalDrawdown": "6",
    "drawdownBase": "1000000000",
    "maxDrawdownStop": "1000000000",
    "minTradingDays": 3,
    "suspendedUntil": "2023-10-01T00:00:00.000Z",
    "accountBalance": "1000000000",
    "initialAccountBalance": "1000000000",
    "maxEquity": "1000000000",
    "dayStartEquity": "1000000000",
    "profitableDays": 0,
    "prevPeriodProfitableDays": 0,
    "archivedAt": "2026-05-01T12:30:00.000Z",
    "archiveRestoreAvailableUntil": "2026-05-01T12:30:00.000Z",
    "createdAt": "2026-05-01T12:30:00.000Z",
    "failureReason": "archive_expired",
    "fundedAt": "2026-05-01T12:30:00.000Z",
    "failedAt": "2026-05-01T12:30:00.000Z",
    "transitionReviewAt": "2026-05-01T12:30:00.000Z",
    "currentWithdrawalPeriodStartedAt": "2026-05-01T12:30:00.000Z",
    "fundedLimitUnlockedAt": "2026-05-01T12:30:00.000Z",
    "maxWithdrawalAmount": "1000000000",
    "payoutBaselineBalance": "1000000000",
    "isActiveWithdrawalInPeriod": true,
    "profitSplitPercent": 80,
    "debt": "1000000000",
    "dailyDrawdownProtection": {
      "usedAt": "2026-05-01T12:30:00.000Z"
    },
    "aiFailedReport": true,
    "apiTrading": true,
    "availableMarkets": "crypto",
    "antifraudStatus": "normal",
    "tradingLockReason": "string",
    "tournament": {
      "id": "00000000-0000-4000-8000-000000000000",
      "status": "active",
      "startDate": "2026-05-01T12:30:00.000Z",
      "endDate": "2026-05-01T12:30:00.000Z",
      "finalRecalcDone": true
    },
    "restore": {
      "restoreAvailable": true,
      "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
    }
  }
}
Посмотреть пример
[
  {
    "eventType": "account_archive_expired",
    "payload": {
      "archivedAt": "string",
      "restoreAvailableUntil": "string",
      "expiredAt": "string"
    },
    "id": "00000000-0000-4000-8000-000000000000",
    "accountId": "00000000-0000-4000-8000-000000000000",
    "createdAt": "2026-05-01T12:30:00.000Z",
    "account": {
      "accountId": "00000000-0000-4000-8000-000000000000",
      "userId": "00000000-0000-4000-8000-000000000000",
      "paymentId": "00000000-0000-4000-8000-000000000000",
      "challengeId": "challenge1",
      "tournamentId": "00000000-0000-4000-8000-000000000000",
      "type": "demo",
      "initialPhase": "active_evaluation",
      "currentPhase": "active_evaluation",
      "status": "active",
      "profitTarget": "5",
      "maxDailyDrawdown": "5",
      "maxTotalDrawdown": "10",
      "maxTrailingTotalDrawdown": "6",
      "drawdownBase": "1000000000",
      "maxDrawdownStop": "1000000000",
      "minTradingDays": 3,
      "suspendedUntil": "2023-10-01T00:00:00.000Z",
      "accountBalance": "1000000000",
      "initialAccountBalance": "1000000000",
      "maxEquity": "1000000000",
      "dayStartEquity": "1000000000",
      "profitableDays": 0,
      "prevPeriodProfitableDays": 0,
      "archivedAt": "2026-05-01T12:30:00.000Z",
      "archiveRestoreAvailableUntil": "2026-05-01T12:30:00.000Z",
      "createdAt": "2026-05-01T12:30:00.000Z",
      "failureReason": "archive_expired",
      "fundedAt": "2026-05-01T12:30:00.000Z",
      "failedAt": "2026-05-01T12:30:00.000Z",
      "transitionReviewAt": "2026-05-01T12:30:00.000Z",
      "currentWithdrawalPeriodStartedAt": "2026-05-01T12:30:00.000Z",
      "fundedLimitUnlockedAt": "2026-05-01T12:30:00.000Z",
      "maxWithdrawalAmount": "1000000000",
      "payoutBaselineBalance": "1000000000",
      "isActiveWithdrawalInPeriod": true,
      "profitSplitPercent": 80,
      "debt": "1000000000",
      "dailyDrawdownProtection": {
        "usedAt": "2026-05-01T12:30:00.000Z"
      },
      "aiFailedReport": true,
      "apiTrading": true,
      "availableMarkets": "crypto",
      "antifraudStatus": "normal",
      "tradingLockReason": "string",
      "tournament": {
        "id": "00000000-0000-4000-8000-000000000000",
        "status": "active",
        "startDate": "2026-05-01T12:30:00.000Z",
        "endDate": "2026-05-01T12:30:00.000Z",
        "finalRecalcDone": true
      },
      "restore": {
        "restoreAvailable": true,
        "restoreAvailableUntil": "2026-05-01T12:30:00.000Z"
      }
    }
  }
]
totalCountnumberобязательно

Total number of events across all pages.

Пример: 0
401

Неавторизовано

429

Превышен лимит частоты запросов API-ключа (api_key_rate_limit_exceeded). Retry-After указывает, когда вернуться; тело содержит бакет (read / write), окно, которое сработало, его лимит и retryAt.