# Получить сведения о позиции

`GET /positions/{positionId}`

Одна позиция по идентификатору, открытая или закрытая, в том же формате, который возвращают списки.

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

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

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

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

## Параметры

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

Тип: string · uuid

format: uuid

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

## Пример · cURL

```bash
curl --request GET 'https://api.upscale.trade/positions/{positionId}' \
  --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/positions/{positionId}", {
  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/positions/{positionId}",
    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-positionresponse"></a>

## Ответ default · PositionResponse

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

Схема: PositionResponse

Тип: object

Обязательные поля: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, rawPnlInEvent, profitAdjustmentApplied, holdingTimeMs, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe, scalpingCoefficient, closeReason

Типы обязательных полей: idx (string[]; обязательно), txId (string[]; обязательно), version (number; обязательно), openedAt (string · date-time; обязательно), lastUpdatedAt (string · date-time; обязательно), closedAt (string · date-time · nullable; обязательно), type (string · enum; обязательно), status (string · enum; обязательно), market (string · uuid; обязательно), trader (string · uuid; обязательно), size (string · int32; обязательно), notional (string · int32; обязательно), fraction (string · int32; обязательно), margin (string · int32; обязательно), pnl (string · int32 · nullable; обязательно), funding (string · int32 · nullable; обязательно), rolloverFee (string · int32; обязательно), settlementOraclePrice (string · int32; обязательно), fee (string · int32; обязательно), feeRate (string · int32; обязательно), exchangedQuote (string · int32; обязательно), exchangedBase (string · int32; обязательно), direction (string · enum; обязательно), eventName (string · enum; обязательно), pnlInEvent (string · int32; обязательно), rawPnlInEvent (string · int32; обязательно), profitAdjustmentApplied (boolean; обязательно), holdingTimeMs (string[]; обязательно), feeInEvent (string · int32; обязательно), fundingInEvent (string · int32; обязательно), rolloverFeeInEvent (string · int32; обязательно), executionFeeRate (string · int32; обязательно), executionFeeInEvent (string · int32; обязательно), executionFee (string · int32; обязательно), timestamp (string · date-time; обязательно), isOnchain (boolean; обязательно), roe (string · int32; обязательно), scalpingCoefficient (string · int32; обязательно), closeReason (string[]; обязательно)

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

idx пример: [
  "string"
]

idx.Тип: string[]

idx.Идентификатор позиции. То же значение, что и `txId`.

idx.[]Тип: string

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

txId пример: [
  "string"
]

txId.Тип: string[]

txId.Идентификатор позиции. Сохранён для обратной совместимости, всегда равен `idx`.

txId.[]Тип: string

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

version пример: 0

version.Тип: number

version.Ревизия позиции: увеличивается при каждом событии, применённом к ней.

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

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

openedAt.Тип: string · date-time

openedAt.Когда позиция была открыта.

openedAt.format: date-time

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

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

lastUpdatedAt.Тип: string · date-time

lastUpdatedAt.Когда к позиции было применено последнее событие.

lastUpdatedAt.format: date-time

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

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

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

closedAt.Когда позиция была закрыта; null, пока она всё ещё открыта.

closedAt.format: date-time

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

type пример: long

type.Тип: string · enum

type.Направление позиции. То же значение, что и `direction`.

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

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

status пример: opened

status.Тип: string · enum

status.Является ли позиция всё ещё открытой, закрытой трейдером или ликвидированной.

status.Допустимые значения: ["opened","closed","liquidated"]

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

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

market.Тип: string · uuid

market.Рынок, на котором удерживается позиция.

market.format: uuid

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

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

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

trader.Тип: string · uuid

trader.Счёт трейдера, которому принадлежит позиция.

trader.format: uuid

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

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

size пример: 1000000000

size.Тип: string · int32

size.Размер позиции в единицах базового актива, fp9 в сыром виде.

size.format: int32

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

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

notional пример: 1000000000

notional.Тип: string · int32

notional.Открытый номинал позиции в валюте котировки, fp9 в сыром виде — размер по цене входа.

notional.format: int32

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

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

fraction пример: 1000000000

fraction.Тип: string · int32

fraction.Всегда `0`. Сохранено для обратной совместимости.

fraction.format: int32

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

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

margin пример: 1000000000

margin.Тип: string · int32

margin.Маржа, в настоящее время обеспечивающая позицию, fp9 в сыром виде. Изменяется вместе с pnl, финансированием и ручными изменениями маржи.

margin.format: int32

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

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

pnl пример: 1000000000

pnl.Тип: string · int32 · nullable

pnl.Реализованный pnl, накопленный по каждому событию позиции, fp9 в сыром виде.

pnl.format: int32

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

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

funding пример: 1000000000

funding.Тип: string · int32 · nullable

funding.Финансирование, уплаченное (отрицательное) или полученное (положительное) за всё время существования позиции, fp9 в необработанном виде.

funding.format: int32

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

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

rolloverFee пример: 1000000000

rolloverFee.Тип: string · int32

rolloverFee.Всегда `0`. Сохранено для обратной совместимости.

rolloverFee.format: int32

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

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

settlementOraclePrice пример: 1000000000

settlementOraclePrice.Тип: string · int32

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

settlementOraclePrice.format: int32

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

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

fee пример: 1000000000

fee.Тип: string · int32

fee.Торговые комиссии, взимаемые за всё время существования позиции, fp9 в необработанном виде.

fee.format: int32

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

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

feeRate пример: 1000000000

feeRate.Тип: string · int32

feeRate.Ставка комиссии, применяемая к позиции, fp9 в виде необработанной дроби (`1000000` = 0.1%).

feeRate.format: int32

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

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

exchangedQuote пример: 1000000000

exchangedQuote.Тип: string · int32

exchangedQuote.Сумма в котируемой валюте, обмененная в результате последнего события, fp9 в необработанном виде.

exchangedQuote.format: int32

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

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

exchangedBase пример: 1000000000

exchangedBase.Тип: string · int32

exchangedBase.Сумма в базовой валюте, обмененная в результате последнего события, fp9 в необработанном виде.

exchangedBase.format: int32

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

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

direction пример: long

direction.Тип: string · enum

direction.Направление позиции.

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

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

eventName пример: addMargin

eventName.Тип: string · enum

eventName.Тип последнего события, применённого к позиции.

eventName.Допустимые значения: ["addMargin","removeMargin","closePosition","increasePosition","liquidate","forceClose","payFunding"]

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

pnlInEvent пример: 1000000000

pnlInEvent.Тип: string · int32

pnlInEvent.Реализованный pnl последнего события, fp9 в сыром виде.

pnlInEvent.format: int32

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

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

rawPnlInEvent пример: 1000000000

rawPnlInEvent.Тип: string · int32

rawPnlInEvent.Реализованный pnl последнего события до 60-секундной корректировки, fp9 в сыром виде. Отличается от `pnlInEvent` только когда корректировка сработала.

rawPnlInEvent.format: int32

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

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

profitAdjustmentApplied пример: true

profitAdjustmentApplied.Тип: boolean

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

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

holdingTimeMs пример: [
  "string"
]

holdingTimeMs.Тип: string[]

holdingTimeMs.Как долго позиция удерживалась до самого последнего закрытия, в миллисекундах, считая от открытия или последнего увеличения. Null для событий, которые не являются закрытиями.

holdingTimeMs.[]Тип: string

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

feeInEvent пример: 1000000000

feeInEvent.Тип: string · int32

feeInEvent.Комиссия, взимаемая по самому последнему событию, fp9 в сыром виде.

feeInEvent.format: int32

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

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

fundingInEvent пример: 1000000000

fundingInEvent.Тип: string · int32

fundingInEvent.Фандинг, урегулированный самым последним событием, fp9 в сыром виде.

fundingInEvent.format: int32

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

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

rolloverFeeInEvent пример: 1000000000

rolloverFeeInEvent.Тип: string · int32

rolloverFeeInEvent.Всегда `0`. Сохранено для обратной совместимости.

rolloverFeeInEvent.format: int32

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

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

executionFeeRate пример: 1000000000

executionFeeRate.Тип: string · int32

executionFeeRate.Всегда `0`. Сохранено для обратной совместимости.

executionFeeRate.format: int32

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

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

executionFeeInEvent пример: 1000000000

executionFeeInEvent.Тип: string · int32

executionFeeInEvent.Всегда `0`. Сохранено для обратной совместимости.

executionFeeInEvent.format: int32

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

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

executionFee пример: 1000000000

executionFee.Тип: string · int32

executionFee.Всегда `0`. Сохранено для обратной совместимости.

executionFee.format: int32

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

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

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

timestamp.Тип: string · date-time

timestamp.Временная метка самого последнего события. То же значение, что и `lastUpdatedAt`.

timestamp.format: date-time

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

isOnchain пример: true

isOnchain.Тип: boolean

isOnchain.Всегда `true`. Сохранено для обратной совместимости.

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

roe пример: 1000000000

roe.Тип: string · int32

roe.Рентабельность капитала позиции — реализованный pnl относительно внесённой маржи, fp9 в виде необработанной дроби.

roe.format: int32

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

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

scalpingCoefficient пример: 1000000000

scalpingCoefficient.Тип: string · int32

scalpingCoefficient.Динамический множитель спреда, применённый к позиции, fp9 в необработанном виде (`1000000000` = 1.0). Выше 1, когда сделка попала в окно рыночного скальпинга.

scalpingCoefficient.format: int32

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

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

closeReason пример: [
  "string"
]

closeReason.Тип: string[]

closeReason.Почему платформа закрыла позицию (например, `weekly_session_risk_close`). Null для позиций, закрытых трейдером, и для открытых.

closeReason.[]Тип: string

Пример



```json
{
  "idx": [
    "string"
  ],
  "txId": [
    "string"
  ],
  "version": 0,
  "openedAt": "2026-05-01T12:30:00.000Z",
  "lastUpdatedAt": "2026-05-01T12:30:00.000Z",
  "closedAt": "2026-05-01T12:30:00.000Z",
  "type": "long",
  "status": "opened",
  "market": "00000000-0000-4000-8000-000000000000",
  "trader": "00000000-0000-4000-8000-000000000000",
  "size": "1000000000",
  "notional": "1000000000",
  "fraction": "1000000000",
  "margin": "1000000000",
  "pnl": "1000000000",
  "funding": "1000000000",
  "rolloverFee": "1000000000",
  "settlementOraclePrice": "1000000000",
  "fee": "1000000000",
  "feeRate": "1000000000",
  "exchangedQuote": "1000000000",
  "exchangedBase": "1000000000",
  "direction": "long",
  "eventName": "addMargin",
  "pnlInEvent": "1000000000",
  "rawPnlInEvent": "1000000000",
  "profitAdjustmentApplied": true,
  "holdingTimeMs": [
    "string"
  ],
  "feeInEvent": "1000000000",
  "fundingInEvent": "1000000000",
  "rolloverFeeInEvent": "1000000000",
  "executionFeeRate": "1000000000",
  "executionFeeInEvent": "1000000000",
  "executionFee": "1000000000",
  "timestamp": "2026-05-01T12:30:00.000Z",
  "isOnchain": true,
  "roe": "1000000000",
  "scalpingCoefficient": "1000000000",
  "closeReason": [
    "string"
  ]
}
```