Skip to main content

Endpoint

POST /info

Request Body

ParameterTypeDescription
type*stringMust be "positions"
user*stringUser’s wallet address (case-insensitive), e.g., "0x1234567890abcdef..."

Response

[
  {
    "type": "oneWay",
    "position": {
      "coin": "BTC",
      "cumFunding": {
        "allTime": "0",
        "sinceChange": "0",
        "sinceOpen": "0"
      },
      "entryPx": "50000.00",
      "leverage": {
        "type": "cross",
        "value": 5,
        "rawUsd": "0"
      },
      "liquidationPx": "45000.00",
      "marginUsed": "1000.00",
      "maxLeverage": 10,
      "positionValue": "5000.00",
      "returnOnEquity": "0.05",
      "szi": "0.1",
      "unrealizedPnl": "50.00"
    }
  }
]

Response Fields

FieldTypeDescription
typestringPosition type (always “oneWay” for Notional)
position.coinstringAsset symbol (BTC, ETH, SOL, etc.)
position.cumFundingobjectCumulative funding payments
position.entryPxstringAverage entry price
position.leverageobjectLeverage configuration
position.liquidationPxstring | nullEstimated liquidation price
position.marginUsedstringMargin allocated to position
position.maxLeveragenumberMaximum allowed leverage
position.positionValuestringNotional value (size × mark price)
position.returnOnEquitystringROE as decimal (e.g., “0.05” = 5%)
position.szistringSigned position size (+ long, - short)
position.unrealizedPnlstringCurrent unrealized profit/loss

Example Request

curl -X POST https://api.notional.xyz/info \
  -H "Content-Type: application/json" \
  -d '{
    "type": "positions",
    "user": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
  }'

Error Responses

{
  "error": "Missing 'user' parameter for positions"
}
HTTP Status: 400 Bad Request

Notes

  • Only positions with non-zero size are returned
  • Liquidation prices may be null if not calculable
  • Position sizes are signed (positive = long, negative = short)
  • All prices and values are in USDC