# Получить историю ордеров по тикеру

`GET /orders/{accountId}/{asset}/history`

Ордера аккаунта на одном рынке, достигшие финального состояния, сначала новые, с общим количеством для пагинации.

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

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

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

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

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

## Параметры

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

Тип: string · uuid

format: uuid

- path: asset (string; обязательно). Тикер базового актива рынка, как возвращается `GET /v2/markets`.

Тип: string

Пример: "BTC"

- query: limit (integer; необязательно). Размер страницы: сколько записей вернуть.

Тип: integer

Пример: 20

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

minimum: 1

maximum: 100

- query: offset (integer; необязательно). Сколько записей пропустить перед страницей.

Тип: integer

Пример: 0

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

minimum: 0

maximum: 9007199254740991

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

## Пример · cURL

```bash
curl --request GET 'https://api.upscale.trade/orders/{accountId}/{asset}/history' \
  --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/orders/{accountId}/{asset}/history", {
  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/orders/{accountId}/{asset}/history",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

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

<a id="response-default-orderspaginatedresponse"></a>

## Ответ default · OrdersPaginatedResponse

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

Схема: OrdersPaginatedResponse

Тип: object

Обязательные поля: data, totalCount

Типы обязательных полей: data (object[]; обязательно), totalCount (number; обязательно)

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

data пример: [
  {
    "id": "00000000-0000-4000-8000-000000000000",
    "txId": "string",
    "trader": "00000000-0000-4000-8000-000000000000",
    "market": "00000000-0000-4000-8000-000000000000",
    "status": "active",
    "type": "market",
    "direction": "long",
    "triggerPrice": "1000000000",
    "requestedTriggerPrice": "1000000000",
    "stopPrice": "1000000000",
    "limitPrice": "1000000000",
    "stopTriggerPrice": "1000000000",
    "takeTriggerPrice": "1000000000",
    "trailingStopActivationPrice": "1000000000",
    "trailingStopOffset": "1000000000",
    "trailingStopOffsetPercent": "1000000000",
    "leverage": "1000000000",
    "index": "string",
    "positionId": "string",
    "parentOrderId": "string",
    "expiration": "2026-05-01T12:30:00.000Z",
    "amount": "1000000000",
    "indexPrice": "1000000000",
    "settlementOraclePrice": "1000000000",
    "createdAt": "2026-05-01T12:30:00.000Z",
    "error": "string",
    "realizedPnl": "1000000000",
    "rawRealizedPnl": "1000000000",
    "profitAdjustmentApplied": true,
    "executedAfterPause": true,
    "sizeMode": "quote",
    "baseSize": "1000000000",
    "reservedAmount": "1000000000",
    "errorCode": "string",
    "reason": "force_close"
  }
]

data.Тип: object[]

data.Запрошенная страница ордеров, сначала самые новые.

data.[]Тип: object

data.[]Обязательные поля: id, txId, trader, market, status, type, direction, triggerPrice, requestedTriggerPrice, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, trailingStopActivationPrice, trailingStopOffset, trailingStopOffsetPercent, leverage, index, positionId, parentOrderId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error, realizedPnl, rawRealizedPnl, profitAdjustmentApplied, executedAfterPause, sizeMode, baseSize, reservedAmount, errorCode, reason

data.[]Типы обязательных полей: id (string · uuid; обязательно), txId (string; обязательно), trader (string · uuid; обязательно), market (string · uuid; обязательно), status (string · enum; обязательно), type (string · enum; обязательно), direction (string · enum; обязательно), triggerPrice (string · int32; обязательно), requestedTriggerPrice (string · int32 · nullable; обязательно), stopPrice (string · int32; обязательно), limitPrice (string · int32; обязательно), stopTriggerPrice (string · int32; обязательно), takeTriggerPrice (string · int32; обязательно), trailingStopActivationPrice (string · int32; обязательно), trailingStopOffset (string · int32; обязательно), trailingStopOffsetPercent (string · int32; обязательно), leverage (string · int32 · nullable; обязательно), index (string; обязательно), positionId (string · nullable; обязательно), parentOrderId (string · nullable; обязательно), expiration (string · date-time · nullable; обязательно), amount (string · int32; обязательно), indexPrice (string · int32 · nullable; обязательно), settlementOraclePrice (string · int32; обязательно), createdAt (string · date-time; обязательно), error (string · nullable; обязательно), realizedPnl (string · int32 · nullable; обязательно), rawRealizedPnl (string · int32 · nullable; обязательно), profitAdjustmentApplied (boolean; обязательно), executedAfterPause (boolean; обязательно), sizeMode (string · enum; обязательно), baseSize (string · int32 · nullable; обязательно), reservedAmount (string · int32 · nullable; обязательно), errorCode (string · nullable; обязательно), reason (string · enum · nullable; обязательно)

- data.[]id (string · uuid; обязательно)

data.[]id пример: 00000000-0000-4000-8000-000000000000

data.[]id.Тип: string · uuid

data.[]id.Идентификатор ордера.

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.[]txId (string; обязательно)

data.[]txId пример: string

data.[]txId.Тип: string

data.[]txId.Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.

- data.[]trader (string · uuid; обязательно)

data.[]trader пример: 00000000-0000-4000-8000-000000000000

data.[]trader.Тип: string · uuid

data.[]trader.Аккаунт трейдера, которому принадлежит ордер.

data.[]trader.format: uuid

data.[]trader.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.[]market (string · uuid; обязательно)

data.[]market пример: 00000000-0000-4000-8000-000000000000

data.[]market.Тип: string · uuid

data.[]market.Рынок, на котором размещён ордер.

data.[]market.format: uuid

data.[]market.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.[]status (string · enum; обязательно)

data.[]status пример: active

data.[]status.Тип: string · enum

data.[]status.Состояние жизненного цикла: `active`, пока он ожидает, `executed` после исполнения, `canceled` при отмене трейдером или платформой, `canceled_by_update` при замене в результате редактирования, `canceled_by_position` когда позиция, к которой он был привязан, исчезла, `canceled_by_error` при неудачном исполнении — см. `errorCode`.

data.[]status.Допустимые значения: ["active","canceled","canceled_by_update","canceled_by_error","canceled_by_position","executed"]

- data.[]type (string · enum; обязательно)

data.[]type пример: market

data.[]type.Тип: string · enum

data.[]type.Тип ордера. `liquidation` обозначает ордер, который движок выставил сам.

data.[]type.Допустимые значения: ["market","limit","stop","trailing_stop","take","stop_limit","stop_market","liquidation"]

- data.[]direction (string · enum; обязательно)

data.[]direction пример: long

data.[]direction.Тип: string · enum

data.[]direction.Направление ордера.

data.[]direction.Допустимые значения: ["long","short"]

- data.[]triggerPrice (string · int32; обязательно)

data.[]triggerPrice пример: 1000000000

data.[]triggerPrice.Тип: string · int32

data.[]triggerPrice.Цена, при которой срабатывает ордер, fp9 в необработанном виде. `0`, когда ордер не имеет триггера.

data.[]triggerPrice.format: int32

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

- data.[]requestedTriggerPrice (string · int32 · nullable; обязательно)

data.[]requestedTriggerPrice пример: 1000000000

data.[]requestedTriggerPrice.Тип: string · int32 · nullable

data.[]requestedTriggerPrice.Цена триггера, как запрошено, до того как движок вытолкнул её до минимального стоп-расстояния, fp9 в исходном виде. Null, когда запрошенная цена была оставлена как есть.

data.[]requestedTriggerPrice.format: int32

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

- data.[]stopPrice (string · int32; обязательно)

data.[]stopPrice пример: 1000000000

data.[]stopPrice.Тип: string · int32

data.[]stopPrice.Цена триггера ордера `stop_market` / `stop_limit`, fp9 в исходном виде; `0` для любого другого типа.

data.[]stopPrice.format: int32

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

- data.[]limitPrice (string · int32; обязательно)

data.[]limitPrice пример: 1000000000

data.[]limitPrice.Тип: string · int32

data.[]limitPrice.Цена, по которой ордер размещается при срабатывании, fp9 в исходном виде: цена стоп-лимит, с возвратом к цене триггера.

data.[]limitPrice.format: int32

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

- data.[]stopTriggerPrice (string · int32; обязательно)

data.[]stopTriggerPrice пример: 1000000000

data.[]stopTriggerPrice.Тип: string · int32

data.[]stopTriggerPrice.Стоп-лосс, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.

data.[]stopTriggerPrice.format: int32

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

- data.[]takeTriggerPrice (string · int32; обязательно)

data.[]takeTriggerPrice пример: 1000000000

data.[]takeTriggerPrice.Тип: string · int32

data.[]takeTriggerPrice.Тейк-профит, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.

data.[]takeTriggerPrice.format: int32

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

- data.[]trailingStopActivationPrice (string · int32; обязательно)

data.[]trailingStopActivationPrice пример: 1000000000

data.[]trailingStopActivationPrice.Тип: string · int32

data.[]trailingStopActivationPrice.Цена, при которой трейлинг-стоп начинает следовать, fp9 в сыром виде. `0`, когда он следует с момента создания.

data.[]trailingStopActivationPrice.format: int32

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

- data.[]trailingStopOffset (string · int32; обязательно)

data.[]trailingStopOffset пример: 1000000000

data.[]trailingStopOffset.Тип: string · int32

data.[]trailingStopOffset.Дистанция трейлинга как абсолютная сумма в котируемой валюте, fp9 в сыром виде. `0`, когда дистанция задана в процентах.

data.[]trailingStopOffset.format: int32

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

- data.[]trailingStopOffsetPercent (string · int32; обязательно)

data.[]trailingStopOffsetPercent пример: 1000000000

data.[]trailingStopOffsetPercent.Тип: string · int32

data.[]trailingStopOffsetPercent.Дистанция трейлинга как доля цены, fp9 в сыром виде. `0`, когда дистанция абсолютная.

data.[]trailingStopOffsetPercent.format: int32

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

- data.[]leverage (string · int32 · nullable; обязательно)

data.[]leverage пример: 1000000000

data.[]leverage.Тип: string · int32 · nullable

data.[]leverage.Кредитное плечо ордера, fp9 в сыром виде. Null для ордеров на закрытие, которые наследуют кредитное плечо позиции.

data.[]leverage.format: int32

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

- data.[]index (string; обязательно)

data.[]index пример: string

data.[]index.Тип: string

data.[]index.Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.

- data.[]positionId (string · nullable; обязательно)

data.[]positionId пример: string

data.[]positionId.Тип: string · nullable

data.[]positionId.Позиция, к которой привязан ордер на закрытие. Null для ордеров, которые открывают или увеличивают позицию.

- data.[]parentOrderId (string · nullable; обязательно)

data.[]parentOrderId пример: string

data.[]parentOrderId.Тип: string · nullable

data.[]parentOrderId.Ордер, из которого был порождён этот: стоп или тейк, созданный из `stopTriggerPrice` / `takeTriggerPrice`, или лимитный ордер, в который превратился `stop_limit`. Null, когда ордер был отправлен напрямую.

- data.[]expiration (string · date-time · nullable; обязательно)

data.[]expiration пример: 2026-05-01T12:30:00.000Z

data.[]expiration.Тип: string · date-time · nullable

data.[]expiration.Всегда null. Сохранено для обратной совместимости — ордера не истекают сами по себе.

data.[]expiration.format: date-time

- data.[]amount (string · int32; обязательно)

data.[]amount пример: 1000000000

data.[]amount.Тип: string · int32

data.[]amount.Размер ордера, fp9 в сыром виде, в единице, которую использует его класс: для ордера на увеличение — сумма в котируемой валюте — резерв, пока он ожидает, и то, что он фактически потратил после исполнения; для ордера на закрытие (`stop`, `take`, `trailing_stop`) — размер базового актива, который он закрывает, как было запрошено при создании.

data.[]amount.format: int32

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

- data.[]indexPrice (string · int32 · nullable; обязательно)

data.[]indexPrice пример: 1000000000

data.[]indexPrice.Тип: string · int32 · nullable

data.[]indexPrice.Цена индекса, по которой был исполнен ордер, fp9 в сыром виде. Null, пока ордер не исполнен.

data.[]indexPrice.format: int32

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

- data.[]settlementOraclePrice (string · int32; обязательно)

data.[]settlementOraclePrice пример: 1000000000

data.[]settlementOraclePrice.Тип: string · int32

data.[]settlementOraclePrice.Всегда `1000000000` (1.0). Сохранено для обратной совместимости.

data.[]settlementOraclePrice.format: int32

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

- data.[]createdAt (string · date-time; обязательно)

data.[]createdAt пример: 2026-05-01T12:30:00.000Z

data.[]createdAt.Тип: string · date-time

data.[]createdAt.Когда ордер был принят.

data.[]createdAt.format: date-time

- data.[]error (string · nullable; обязательно)

data.[]error пример: string

data.[]error.Тип: string · nullable

data.[]error.Всегда null. Сохранён для обратной совместимости — используйте `errorCode`.

- data.[]realizedPnl (string · int32 · nullable; обязательно)

data.[]realizedPnl пример: 1000000000

data.[]realizedPnl.Тип: string · int32 · nullable

data.[]realizedPnl.Pnl, реализованный этим ордером, fp9 в сыром виде. Устанавливается только для исполненного ордера на закрытие; null, пока ордер в ожидании, и для ордеров, которые открывают или увеличивают позицию.

data.[]realizedPnl.format: int32

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

- data.[]rawRealizedPnl (string · int32 · nullable; обязательно)

data.[]rawRealizedPnl пример: 1000000000

data.[]rawRealizedPnl.Тип: string · int32 · nullable

data.[]rawRealizedPnl.Реализованный pnl до 60-секундной корректировки, fp9 в сыром виде. Отличается от `realizedPnl` только тогда, когда корректировка сработала.

data.[]rawRealizedPnl.format: int32

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

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

data.[]profitAdjustmentApplied пример: true

data.[]profitAdjustmentApplied.Тип: boolean

data.[]profitAdjustmentApplied.Ограничила ли 60-секундная корректировка прибыль этого ордера — в течение минуты после открытия или увеличения позиции pnl позиции не может вырасти выше значения, которое было в тот момент.

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

data.[]executedAfterPause пример: true

data.[]executedAfterPause.Тип: boolean

data.[]executedAfterPause.Был ли ордер исполнен после рыночной паузы. Не задаётся текущим движком — всегда `false`.

- data.[]sizeMode (string · enum; обязательно)

data.[]sizeMode пример: quote

data.[]sizeMode.Тип: string · enum

data.[]sizeMode.Как был выражен размер при создании: `quote` задаёт размер ордера по `amount`, `base` задаёт его по `baseSize`.

data.[]sizeMode.Допустимые значения: ["quote","base"]

- data.[]baseSize (string · int32 · nullable; обязательно)

data.[]baseSize пример: 1000000000

data.[]baseSize.Тип: string · int32 · nullable

data.[]baseSize.Размер ордера в единицах базового актива, fp9 в сыром виде. Null для ордеров с размером `quote`.

data.[]baseSize.format: int32

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

- data.[]reservedAmount (string · int32 · nullable; обязательно)

data.[]reservedAmount пример: 1000000000

data.[]reservedAmount.Тип: string · int32 · nullable

data.[]reservedAmount.Сумма в котируемой валюте, зарезервированная при создании ордера с sizeMode=base, fp9 в сыром виде. Остаётся равной исходному резерву после исполнения, тогда как `amount` перезаписывается на потраченную сумму. Null для ордеров с размером `quote`, где `amount` — это резерв.

data.[]reservedAmount.format: int32

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

- data.[]errorCode (string · nullable; обязательно)

data.[]errorCode пример: string

data.[]errorCode.Тип: string · nullable

data.[]errorCode.Почему исполнение не удалось, задаётся вместе со статусом `canceled_by_error` — например, `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` или `slippage_tolerance`. В остальных случаях Null.

- data.[]reason (string · enum · nullable; обязательно)

data.[]reason пример: force_close

data.[]reason.Тип: string · enum · nullable

data.[]reason.Почему платформа сама отменила ордер, например `force_close` или `weekly_session_risk_close`. Null для отмен, инициированных трейдером.

data.[]reason.Допустимые значения: ["force_close","stop_accounts_fail","stop_accounts_freeze","stop_accounts_promote","stop_accounts_manual","weekly_session_risk_close",null]

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

totalCount пример: 0

totalCount.Тип: number

totalCount.Общее количество ордеров, соответствующих запросу, по всем страницам.

Пример



```json
{
  "data": [
    {
      "id": "00000000-0000-4000-8000-000000000000",
      "txId": "string",
      "trader": "00000000-0000-4000-8000-000000000000",
      "market": "00000000-0000-4000-8000-000000000000",
      "status": "active",
      "type": "market",
      "direction": "long",
      "triggerPrice": "1000000000",
      "requestedTriggerPrice": "1000000000",
      "stopPrice": "1000000000",
      "limitPrice": "1000000000",
      "stopTriggerPrice": "1000000000",
      "takeTriggerPrice": "1000000000",
      "trailingStopActivationPrice": "1000000000",
      "trailingStopOffset": "1000000000",
      "trailingStopOffsetPercent": "1000000000",
      "leverage": "1000000000",
      "index": "string",
      "positionId": "string",
      "parentOrderId": "string",
      "expiration": "2026-05-01T12:30:00.000Z",
      "amount": "1000000000",
      "indexPrice": "1000000000",
      "settlementOraclePrice": "1000000000",
      "createdAt": "2026-05-01T12:30:00.000Z",
      "error": "string",
      "realizedPnl": "1000000000",
      "rawRealizedPnl": "1000000000",
      "profitAdjustmentApplied": true,
      "executedAfterPause": true,
      "sizeMode": "quote",
      "baseSize": "1000000000",
      "reservedAmount": "1000000000",
      "errorCode": "string",
      "reason": "force_close"
    }
  ],
  "totalCount": 0
}
```