# Get position events

`GET /api/positions/{id}/history`

## Authorization



## Parameters

- path: id (string; required). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{id}/history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{id}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{id}/history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.PositionResponse

[]Type: object

[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- []idx (string · nullable; required)

[]idx example: string

[]idx.Type: string · nullable

- []txId (string · nullable; required)

[]txId example: string

[]txId.Type: string · nullable

- []version (number; required)

[]version example: 0

[]version.Type: number

- []openedAt (string · date-time; required)

[]openedAt example: 2026-01-01T00:00:00Z

[]openedAt.Type: string · date-time

[]openedAt.format: date-time

- []lastUpdatedAt (string · date-time; required)

[]lastUpdatedAt example: 2026-01-01T00:00:00Z

[]lastUpdatedAt.Type: string · date-time

[]lastUpdatedAt.format: date-time

- []closedAt (string · date-time · nullable; required)

[]closedAt example: 2026-01-01T00:00:00Z

[]closedAt.Type: string · date-time · nullable

[]closedAt.format: date-time

- []type (string · enum; required)

[]type example: long

[]type.Type: string · enum

[]type.Allowed values: ["long","short"]

- []status (string · enum; required)

[]status example: pending_open

[]status.Type: string · enum

[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []size (string · int64; required)

[]size example: 0

[]size.Type: string · int64

[]size.format: int64

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

- []notional (string · int64; required)

[]notional example: 0

[]notional.Type: string · int64

[]notional.format: int64

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

- []fraction (string · int64; required)

[]fraction example: 0

[]fraction.Type: string · int64

[]fraction.format: int64

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

- []margin (string · int64; required)

[]margin example: 0

[]margin.Type: string · int64

[]margin.format: int64

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

- []pnl (string · int64 · nullable; required)

[]pnl example: 0

[]pnl.Type: string · int64 · nullable

[]pnl.format: int64

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

- []funding (string · int64 · nullable; required)

[]funding example: 0

[]funding.Type: string · int64 · nullable

[]funding.format: int64

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

- []rolloverFee (string · int64 · nullable; required)

[]rolloverFee example: 0

[]rolloverFee.Type: string · int64 · nullable

[]rolloverFee.format: int64

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

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

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

- []indexOraclePrice (string · int64 · nullable; required)

[]indexOraclePrice example: 0

[]indexOraclePrice.Type: string · int64 · nullable

[]indexOraclePrice.format: int64

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

- []fee (string · int64 · nullable; required)

[]fee example: 0

[]fee.Type: string · int64 · nullable

[]fee.format: int64

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

- []feeRate (string · int64 · nullable; required)

[]feeRate example: 0

[]feeRate.Type: string · int64 · nullable

[]feeRate.format: int64

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

- []exchangedQuote (string · int64 · nullable; required)

[]exchangedQuote example: 0

[]exchangedQuote.Type: string · int64 · nullable

[]exchangedQuote.format: int64

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

- []exchangedBase (string · int64 · nullable; required)

[]exchangedBase example: 0

[]exchangedBase.Type: string · int64 · nullable

[]exchangedBase.format: int64

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

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []eventName (string · nullable; required)

[]eventName example: string

[]eventName.Type: string · nullable

- []pnlInEvent (string · int64 · nullable; required)

[]pnlInEvent example: 0

[]pnlInEvent.Type: string · int64 · nullable

[]pnlInEvent.format: int64

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

- []feeInEvent (string · int64 · nullable; required)

[]feeInEvent example: 0

[]feeInEvent.Type: string · int64 · nullable

[]feeInEvent.format: int64

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

- []fundingInEvent (string · int64 · nullable; required)

[]fundingInEvent example: 0

[]fundingInEvent.Type: string · int64 · nullable

[]fundingInEvent.format: int64

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

- []rolloverFeeInEvent (string · int64 · nullable; required)

[]rolloverFeeInEvent example: 0

[]rolloverFeeInEvent.Type: string · int64 · nullable

[]rolloverFeeInEvent.format: int64

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

- []executionFeeRate (string · int64 · nullable; required)

[]executionFeeRate example: 0

[]executionFeeRate.Type: string · int64 · nullable

[]executionFeeRate.format: int64

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

- []executionFeeInEvent (string · int64 · nullable; required)

[]executionFeeInEvent example: 0

[]executionFeeInEvent.Type: string · int64 · nullable

[]executionFeeInEvent.format: int64

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

- []executionFee (string · int64 · nullable; required)

[]executionFee example: 0

[]executionFee.Type: string · int64 · nullable

[]executionFee.format: int64

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

- []timestamp (string · date-time; required)

[]timestamp example: 2026-01-01T00:00:00Z

[]timestamp.Type: string · date-time

[]timestamp.format: date-time

- []isOnchain (boolean; required)

[]isOnchain example: true

[]isOnchain.Type: boolean

- []roe (string · int64 · nullable; required)

[]roe example: 0

[]roe.Type: string · int64 · nullable

[]roe.format: int64

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

- []order (object · nullable; optional)

[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

[]order.Type: object · nullable

[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []order.id (string; required)

[]order.id example: string

[]order.id.Type: string

- []order.txId (string; required)

[]order.txId example: string

[]order.txId.Type: string

- []order.trader (string; required)

[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.trader.Type: string

- []order.masterTrader (string; required)

[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.masterTrader.Type: string

- []order.market (string; required)

[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.market.Type: string

- []order.status (string · enum; required)

[]order.status example: seq_pending

[]order.status.Type: string · enum

[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []order.type (string · enum; required)

[]order.type example: market

[]order.type.Type: string · enum

[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []order.direction (string · enum; required)

[]order.direction example: long

[]order.direction.Type: string · enum

[]order.direction.Allowed values: ["long","short"]

- []order.stopPrice (string · int64 · nullable; required)

[]order.stopPrice example: 0

[]order.stopPrice.Type: string · int64 · nullable

[]order.stopPrice.format: int64

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

- []order.limitPrice (string · int64 · nullable; required)

[]order.limitPrice example: 0

[]order.limitPrice.Type: string · int64 · nullable

[]order.limitPrice.format: int64

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

- []order.stopTriggerPrice (string · int64 · nullable; required)

[]order.stopTriggerPrice example: 0

[]order.stopTriggerPrice.Type: string · int64 · nullable

[]order.stopTriggerPrice.format: int64

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

- []order.takeTriggerPrice (string · int64 · nullable; required)

[]order.takeTriggerPrice example: 0

[]order.takeTriggerPrice.Type: string · int64 · nullable

[]order.takeTriggerPrice.format: int64

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

- []order.leverage (string · int64 · nullable; required)

[]order.leverage example: 0

[]order.leverage.Type: string · int64 · nullable

[]order.leverage.format: int64

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

- []order.index (number · nullable; required)

[]order.index example: 0

[]order.index.Type: number · nullable

- []order.positionId (string · nullable; required)

[]order.positionId example: string

[]order.positionId.Type: string · nullable

- []order.expiration (string · date-time · nullable; required)

[]order.expiration example: 2026-01-01T00:00:00Z

[]order.expiration.Type: string · date-time · nullable

[]order.expiration.format: date-time

- []order.amount (string · int64 · nullable; required)

[]order.amount example: 0

[]order.amount.Type: string · int64 · nullable

[]order.amount.format: int64

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

- []order.indexPrice (string · int64 · nullable; required)

[]order.indexPrice example: 0

[]order.indexPrice.Type: string · int64 · nullable

[]order.indexPrice.format: int64

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

- []order.settlementOraclePrice (string · int64 · nullable; required)

[]order.settlementOraclePrice example: 0

[]order.settlementOraclePrice.Type: string · int64 · nullable

[]order.settlementOraclePrice.format: int64

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

- []order.createdAt (string · date-time; required)

[]order.createdAt example: 2026-01-01T00:00:00Z

[]order.createdAt.Type: string · date-time

[]order.createdAt.format: date-time

- []order.error (string · nullable; required)

[]order.error example: string

[]order.error.Type: string · nullable

Example



```json
[
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]
```