Skip to main content
Requires authentication.
The Portfolio resource provides access to your trading positions and activity history.

Methods

MethodEndpointDescription
positions(params?)GET /v1/portfolio/positionsGet trading positions
activities(params?)GET /v1/portfolio/activitiesGet activity history

positions

Get your current trading positions. Returns a map of market slug to position data.
positions = client.portfolio.positions()

for slug, pos in positions["positions"].items():
    meta = pos["marketMetadata"]
    print(f"{meta['title']}")
    print(f"  Net Position: {pos['netPosition']}")
    print(f"  Cost: ${pos['cost']['value']}")
    print(f"  Cash Value: ${pos['cashValue']['value']}")

Parameters

ParameterTypeDescription
cursorstrPagination cursor
limitintMaximum results

Position Fields

FieldTypeDescription
netPositionstrNet quantity (positive = long, negative = short)
qtyBoughtstrTotal quantity bought
qtySoldstrTotal quantity sold
costAmountTotal cost basis
realizedAmountRealized profit/loss
cashValueAmountCurrent unrealized value
qtyAvailablestrQuantity available to trade
expiredboolWhether position has expired
marketMetadataobjectMarket information

activities

Get your trading activity history including trades, settlements, deposits, and withdrawals.
activities = client.portfolio.activities({"limit": 20})

for act in activities["activities"]:
    print(f"{act['type']}: {act.get('trade', act.get('accountBalanceChange', {}))}")

Parameters

ParameterTypeDescription
limitintMaximum results
cursorstrPagination cursor
typeslist[str]Filter by activity types
marketSlugstrFilter by market
sortOrderstrSORT_ORDER_DESCENDING (default) or SORT_ORDER_ASCENDING

Activity Types

TypeNested FieldDescription
ACTIVITY_TYPE_TRADEtradeTrade execution
ACTIVITY_TYPE_POSITION_RESOLUTIONpositionResolutionMarket settlement
ACTIVITY_TYPE_ACCOUNT_DEPOSITaccountBalanceChangeDeposit
ACTIVITY_TYPE_ACCOUNT_WITHDRAWALaccountBalanceChangeWithdrawal

Trade Fields

FieldTypeDescription
idstrTrade ID
marketSlugstrMarket slug
priceAmountTrade price
qtystrTrade quantity
isAggressorboolTrue if taker
realizedPnlAmountRealized P&L
For real-time position updates, use the WebSocket with SUBSCRIPTION_TYPE_POSITION instead of polling.