# Get a position

`GET /api/positions/{id}`

## Authorization



## Parameters

- path: id (string; required). 

Type: string

## Example · cURL

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

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{id}", {
  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}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

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"
  }
}
```