Upscale
Menu
On this page

Получить все события по позиции

Попробовать ↓
GET/positions/{positionId}/history
Получить все события по позицииТорговля

Что произошло с одной позицией, сначала самые новые: увеличения, частичные и полные закрытия, ликвидация, принудительное закрытие, изменения маржи.

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

Авторизация

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

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

Параметры

Путь
positionIdstring · uuidобязательно

Идентификатор позиции. Его аккаунт должен принадлежать вызывающему.

Пример: 00000000-0000-4000-8000-000000000000

Примеры

curl --request GET 'https://api.upscale.trade/positions/{positionId}/history' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Ответы

401

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

403

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

404

Нет позиции с этим идентификатором.

429

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

defaultОтветapplication/json

Массив PositionEventResponse

idxstring · nullableобязательно

Идентификатор позиции.

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

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

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

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

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

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

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

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

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

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

Допустимо: "opened" "closed" "liquidated"
Пример: opened
marketstring · uuidобязательно

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

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
traderstring · uuidобязательно

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

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
sizestring · fp9обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Допустимо: "long" "short"
Пример: long
eventNamestring · enumобязательно

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

Допустимо: "addMargin" "removeMargin" "closePosition" "increasePosition" "liquidate" "forceClose" "payFunding"
Пример: addMargin
pnlInEventstring · fp9обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ордер, создавший это событие; null для событий, которые платформа инициировала самостоятельно, таких как финансирование или принудительное закрытие.

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

Идентификатор ордера.

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
traderstring · uuidобязательно

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

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
marketstring · uuidобязательно

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

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обязательно

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

Допустимо: "active" "canceled" "canceled_by_update" "canceled_by_error" "canceled_by_position" "executed"
Пример: active
typestring · enumобязательно

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

Допустимо: "market" "limit" "stop" "trailing_stop" "take" "stop_limit" "stop_market" "liquidation"
Пример: market
directionstring · enumобязательно

Направление ордера.

Допустимо: "long" "short"
Пример: long
triggerPricestring · fp9обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расстояние трейлинга как множитель цены, fp9 в сыром виде: единица минус процент, поэтому 5% — это 950000000. 0, когда расстояние абсолютное.

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

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

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

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

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

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

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

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

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

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

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

Объём предыдущих открытий и увеличений на одном и том же аккаунте, рынке и в одном и том же направлении, который всё ещё учитывался в ценовом влиянии этого ордера при его исполнении, USD fp9 raw. Окно восстановления настраивается, по умолчанию 60 секунд. Фиксируется при исполнении. Null для ордеров, которые не были исполнены, ордеров закрытия и рынков без динамического ценового влияния.

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

Ценовое влияние, применённое к этому открытию или увеличению, за исключением статического спреда, как доля fp9 raw (10000000 = 1%). Включает недавний объём в recentVolume. Фиксируется при исполнении. Null для ордеров, которые не были исполнены, ордеров закрытия и рынков без динамического ценового влияния.

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

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

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

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

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

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

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

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

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

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

Допустимо: "quote" "base"
Пример: quote
baseSizestring · fp9 · nullableобязательно

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

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

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

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

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

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

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

Допустимо: "force_close" "stop_accounts_fail" "stop_accounts_freeze" "stop_accounts_promote" "stop_accounts_manual" "weekly_session_risk_close"
Пример: force_close
vpiobject · nullableобязательно

Параметры VPI рынка на момент исполнения ордера. Null, пока ордер не исполнен.

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

Спред, взимаемый сверх индексной цены, fp9 в виде доли raw.

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

Глубина на длинной стороне, в целых USD — не fp9.

pattern
^-?[0-9]+(\.[0-9]+)?$
Пример: 45604631.000000000
marketDepthShortstringобязательно

Глубина по короткой стороне, в целых USD — не fp9.

pattern
^-?[0-9]+(\.[0-9]+)?$
Пример: 38744214.000000000
coefficientLongstring · fp9обязательно

Коэффициент влияния на цену, применяемый к длинным ордерам, fp9 в сыром виде.

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

Коэффициент влияния на цену, применяемый к коротким ордерам, fp9 в сыром виде.

pattern
^(?:-?[1-9][0-9]*|0)$
Пример: 1000000000
Посмотреть пример
{
  "spread": "1000000000",
  "marketDepthLong": "45604631.000000000",
  "marketDepthShort": "38744214.000000000",
  "coefficientLong": "1000000000",
  "coefficientShort": "1000000000"
}
Посмотреть пример
{
  "id": "00000000-0000-4000-8000-000000000000",
  "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",
  "positionId": "string",
  "parentOrderId": "string",
  "amount": "1000000000",
  "indexPrice": "1000000000",
  "recentVolume": "1000000000",
  "priceImpact": "1000000000",
  "createdAt": "2026-05-01T12:30:00.000Z",
  "realizedPnl": "1000000000",
  "rawRealizedPnl": "1000000000",
  "profitAdjustmentApplied": true,
  "sizeMode": "quote",
  "baseSize": "1000000000",
  "reservedAmount": "1000000000",
  "errorCode": "string",
  "reason": "force_close",
  "vpi": {
    "spread": "1000000000",
    "marketDepthLong": "45604631.000000000",
    "marketDepthShort": "38744214.000000000",
    "coefficientLong": "1000000000",
    "coefficientShort": "1000000000"
  }
}