Endpoints
| Endpoint | Method | Description | Rate Limit |
|---|---|---|---|
/v1/portfolio/positions | GET | Get positions | 2 req/min |
/v1/account/balances | GET | Get balances | 2 req/min |
Get Positions
View all open positions across all instruments. Request:Position Fields
| Field | Type | Description |
|---|---|---|
instrument_id | string | Unique instrument identifier |
instrument_slug | string | Human-readable instrument slug |
side | string | Position direction (long or short) |
quantity | number | Number of contracts held |
entry_price | number | Average entry price |
current_price | number | Current market price |
unrealized_pnl | number | Profit/loss if closed at current price |
unrealized_pnl_percentage | number | P&L as percentage of entry value |
Get Balances
View account balance information. Request:Balance Fields
| Field | Type | Description |
|---|---|---|
currency | string | Account currency (always USD) |
total_balance | number | Total account value (available + reserved + unrealized P&L) |
available_balance | number | Cash available for new orders |
reserved_balance | number | Cash locked in open orders |
unrealized_pnl | number | Total unrealized profit/loss from positions |
positions_value | number | Current market value of all positions |
Understanding Your Balances
- You deposit $1000
- You place a $200 limit order (not yet filled) → Reserved: $200, Available: $800
- Order fills → Reserved: $0, Available: $800, Position Value: $200
- Position increases to $220 → Unrealized P&L: +$20, Total Balance: $1020
/v1/user-pnl- Detailed P&L breakdown/v1/user-pnl/position-cost-basis- Cost basis per position/v1/portfolio/activities- Activity history
Best Practices
- Cache balance data - Don’t poll balances every second. Use the 2 req/min wisely.
- Subscribe to order fills - Use WebSocket to track order executions in real-time
- Calculate P&L client-side - Track your own cost basis and realized P&L
- Reconcile regularly - Compare your calculated balances with API responses daily