Skip to main content

Endpoint

POST /info

Request Body

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

Response

[
  {
    "coin": "BTC",
    "px": "50000.00",
    "sz": "0.1",
    "side": "B",
    "time": 1701234567890,
    "startPosition": "0",
    "dir": "Open Long",
    "closedPnl": "0",
    "hash": "0x1234abcd...",
    "orderId": "0x1234567890abcdef1234567890abcdef",
    "crossed": true,
    "fee": "2.50",
    "tid": 67890,
    "feeToken": "USDC",
    "forcedClosureType": "adl"
  }
]

Response Fields

FieldTypeDescription
coinstringAsset symbol (BTC, ETH, etc.)
pxstringFill price
szstringFill size
sidestring”B” for buy, “A” for sell/ask
timenumberFill timestamp (ms)
startPositionstringPosition size before fill
dirstringDirection (Open Long, Close Short, etc.)
closedPnlstringRealized PnL from closing position
hashstringTransaction hash
orderIdstringInternal Notional order id
crossedbooleanCurrently always true in this REST response payload
feestringTrading fee paid
tidnumberTrade ID
feeTokenstringFee token (always “USDC”)
forcedClosureTypestringPresent when the fill was a forced closure: "adl" or "backstop"

Example Request

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

Error Responses

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

Notes

  • Fills returned in reverse chronological order (newest first) - The REST response uses orderId, matching the WebSocket fill payload - closedPnl is only non-zero when closing a position - Direction values: "Open Long", "Open Short", "Close Long", "Close Short"