# Получить статус риска торгового аккаунта

`GET /accounts/{accountId}/risk-status`

Снимок риска, который торговый движок хранит для счёта: текущий баланс и эквити, эквити на начало дня и максимальное эквити, счётчик торговых дней,
состояние правила согласованности и базовая линия выплат.

- Считывается в реальном времени из шарда, в котором хранится счёт, поэтому открытые позиции уже отражены в эквити.
- Интерактивные сессии получают отдельный бюджет для этого эндпоинта, отличный от других; API-ключ вместо этого ограничен своими собственными лимитами на чтение.

<a id="authorization"></a>

## Авторизация

bearer: http · bearer (обязательно). Персональный API-ключ с префиксом `usk_`.

<a id="parameters"></a>

## Параметры

- path: accountId (string · uuid; обязательно). Идентификатор торгового аккаунта. Должен принадлежать вызывающей стороне.

Тип: string · uuid

format: uuid

<a id="example-curl"></a>

## Пример · cURL

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

<a id="example-javascript"></a>

## Пример · JavaScript

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

<a id="example-python"></a>

## Пример · Python

```python
import requests

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

<a id="response-200-accountsriskstatusresponse"></a>

## Ответ 200 · AccountsRiskStatusResponse

**200** application/json — Ответ

Схема: AccountsRiskStatusResponse

Тип: object

Обязательные поля: accountId, tradingDays, currentBalance, currentEquity, dayStartEquity, maxEquity, periodStartEquity, maxPeriodDailyEquityDelta, maxPeriodDailyEquityDeltaAt, consistencyRuleApplies, consistencyRuleMet, consistencyRuleRatio, consistencyRuleLimit, payoutBaselineBalance, isPayoutBaselineRequirementMet

Типы обязательных полей: accountId (string · uuid; обязательно), tradingDays (number; обязательно), currentBalance (string · int32; обязательно), currentEquity (string · int32; обязательно), dayStartEquity (string · int32; обязательно), maxEquity (string · int32 · nullable; обязательно), periodStartEquity (string · int32 · nullable; обязательно), maxPeriodDailyEquityDelta (string · int32 · nullable; обязательно), maxPeriodDailyEquityDeltaAt (string · date-time · nullable; обязательно), consistencyRuleApplies (boolean; обязательно), consistencyRuleMet (boolean[]; обязательно), consistencyRuleRatio (string · int32 · nullable; обязательно), consistencyRuleLimit (string · int32; обязательно), payoutBaselineBalance (string · int32; обязательно), isPayoutBaselineRequirementMet (boolean; обязательно)

- accountId (string · uuid; обязательно)

accountId пример: 00000000-0000-4000-8000-000000000000

accountId.Тип: string · uuid

accountId.Счёт трейдера, к которому относится снимок.

accountId.format: uuid

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})$

- tradingDays (number; обязательно)

tradingDays пример: 0

tradingDays.Тип: number

tradingDays.Количество дней, в течение которых счёт торговал, — учитывается для минимального количества торговых дней челленджа.

- currentBalance (string · int32; обязательно)

currentBalance пример: 1000000000

currentBalance.Тип: string · int32

currentBalance.Баланс счёта без нереализованного PnL открытых позиций, fp9 в исходном виде.

currentBalance.format: int32

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

- currentEquity (string · int32; обязательно)

currentEquity пример: 1000000000

currentEquity.Тип: string · int32

currentEquity.Баланс плюс нереализованный PnL открытых позиций, fp9 в исходном виде. Именно относительно этого измеряются правила просадки.

currentEquity.format: int32

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

- dayStartEquity (string · int32; обязательно)

dayStartEquity пример: 1000000000

dayStartEquity.Тип: string · int32

dayStartEquity.Эквити на момент открытия текущего торгового дня, fp9 в исходном виде — база дневного лимита просадки.

dayStartEquity.format: int32

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

- maxEquity (string · int32 · nullable; обязательно)

maxEquity пример: 1000000000

maxEquity.Тип: string · int32 · nullable

maxEquity.Наивысшее эквити, которого когда-либо достигал счёт, fp9 в исходном виде — база следящей просадки. Null до первой сделки.

maxEquity.format: int32

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

- periodStartEquity (string · int32 · nullable; обязательно)

periodStartEquity пример: 1000000000

periodStartEquity.Тип: string · int32 · nullable

periodStartEquity.Эквити на момент открытия текущего периода вывода, fp9 в исходном виде. Null, пока не идёт ни один период.

periodStartEquity.format: int32

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

- maxPeriodDailyEquityDelta (string · int32 · nullable; обязательно)

maxPeriodDailyEquityDelta пример: 1000000000

maxPeriodDailyEquityDelta.Тип: string · int32 · nullable

maxPeriodDailyEquityDelta.Наибольший однодневный прирост эквити внутри текущего периода, fp9 в сыром виде — числитель правила согласованности. Null, пока ни один день не закрылся с прибылью.

maxPeriodDailyEquityDelta.format: int32

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

- maxPeriodDailyEquityDeltaAt (string · date-time · nullable; обязательно)

maxPeriodDailyEquityDeltaAt пример: 2026-05-01T12:30:00.000Z

maxPeriodDailyEquityDeltaAt.Тип: string · date-time · nullable

maxPeriodDailyEquityDeltaAt.День, в котором был получен `maxPeriodDailyEquityDelta`. Null вместе с ним.

maxPeriodDailyEquityDeltaAt.format: date-time

- consistencyRuleApplies (boolean; обязательно)

consistencyRuleApplies пример: true

consistencyRuleApplies.Тип: boolean

consistencyRuleApplies.Является ли правило согласованности частью правил этого счёта в его текущей фазе.

- consistencyRuleMet (boolean[]; обязательно)

consistencyRuleMet пример: [
  true
]

consistencyRuleMet.Тип: boolean[]

consistencyRuleMet.Выполняется ли правило в настоящее время. Null, пока период не в прибыли и коэффициент не может быть вычислен.

consistencyRuleMet.[]Тип: boolean

- consistencyRuleRatio (string · int32 · nullable; обязательно)

consistencyRuleRatio пример: 1000000000

consistencyRuleRatio.Тип: string · int32 · nullable

consistencyRuleRatio.Доля прибыли за период, полученная в его лучший день, fp9 в виде необработанной дроби. Null вместе с `consistencyRuleMet`.

consistencyRuleRatio.format: int32

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

- consistencyRuleLimit (string · int32; обязательно)

consistencyRuleLimit пример: 1000000000

consistencyRuleLimit.Тип: string · int32

consistencyRuleLimit.Наибольшая доля прибыли за период, которую может составлять один день, fp9 в виде необработанной дроби (`300000000` = 30%). Если коэффициент превышает её, правило не выполняется.

consistencyRuleLimit.format: int32

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

- payoutBaselineBalance (string · int32; обязательно)

payoutBaselineBalance пример: 1000000000

payoutBaselineBalance.Тип: string · int32

payoutBaselineBalance.Баланс, от которого отсчитывается следующая выплата, fp9 в необработанном виде. Равен начальному размеру счёта, пока первая выплата не сдвинет его.

payoutBaselineBalance.format: int32

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

- isPayoutBaselineRequirementMet (boolean; обязательно)

isPayoutBaselineRequirementMet пример: true

isPayoutBaselineRequirementMet.Тип: boolean

isPayoutBaselineRequirementMet.Превышает ли собственный капитал `payoutBaselineBalance` — условие для права запросить выплату.

Пример



```json
{
  "accountId": "00000000-0000-4000-8000-000000000000",
  "tradingDays": 0,
  "currentBalance": "1000000000",
  "currentEquity": "1000000000",
  "dayStartEquity": "1000000000",
  "maxEquity": "1000000000",
  "periodStartEquity": "1000000000",
  "maxPeriodDailyEquityDelta": "1000000000",
  "maxPeriodDailyEquityDeltaAt": "2026-05-01T12:30:00.000Z",
  "consistencyRuleApplies": true,
  "consistencyRuleMet": [
    true
  ],
  "consistencyRuleRatio": "1000000000",
  "consistencyRuleLimit": "1000000000",
  "payoutBaselineBalance": "1000000000",
  "isPayoutBaselineRequirementMet": true
}
```

<a id="response-401"></a>

## Ответ 401

**401**  — Неавторизовано

<a id="response-403"></a>

## Ответ 403

**403**  — Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).

<a id="response-404"></a>

## Ответ 404

**404**  — Нет аккаунта с этим идентификатором.

<a id="response-429"></a>

## Ответ 429

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