Skip to content

Users

The Users API provides access to user trading data including positions, trades, activity history, and closed positions.

Get current positions for a user.

const positions = await client.users.positions({
user: "0x1234...",
limit: 100,
sortBy: "TOKENS",
sortDirection: "DESC",
});
ParameterTypeDefaultDescription
userstringrequiredUser address
marketstring-Comma-separated condition IDs
eventIdstring-Comma-separated event IDs
sizeThresholdnumber1Minimum position size
redeemablebooleanfalseFilter redeemable positions
mergeablebooleanfalseFilter mergeable positions
limitnumber100Max results (0-500)
offsetnumber0Pagination offset (0-10000)
sortBySortBy”TOKENS”Sort field
sortDirectionSortDirection”DESC”Sort order
titlestring-Filter by title (max 100 chars)
type Position = {
proxyWallet: string;
asset: string;
conditionId: string;
size: number;
avgPrice: number;
initialValue: number;
currentValue: number;
cashPnl: number;
percentPnl: number;
totalBought: number;
realizedPnl: number;
percentRealizedPnl: number;
curPrice: number;
redeemable: boolean;
mergeable: boolean;
title: string;
slug: string;
icon?: string;
eventSlug?: string;
outcome: string;
outcomeIndex: number;
oppositeOutcome: string;
oppositeAsset: string;
endDate?: string;
negativeRisk: boolean;
};

Get trades for a user or markets.

const trades = await client.users.listTrades({
user: "0x1234...",
limit: 100,
side: "BUY",
});
ParameterTypeDefaultDescription
userstring-User address
marketstring-Comma-separated condition IDs
eventIdstring-Comma-separated event IDs
sideTradeSide-”BUY” or “SELL”
takerOnlybooleantrueOnly taker trades
filterTypeTradeFilterType-”CASH” or “TOKENS”
filterAmountnumber-Minimum amount
limitnumber100Max results (0-10000)
offsetnumber0Pagination offset
type Trade = {
proxyWallet: string;
side: "BUY" | "SELL";
asset: string;
conditionId: string;
size: number;
price: number;
timestamp: number;
title: string;
slug: string;
icon?: string;
eventSlug?: string;
outcome: string;
outcomeIndex: number;
name?: string;
pseudonym?: string;
bio?: string;
profileImage?: string;
profileImageOptimized?: string;
transactionHash?: string;
};

Get on-chain activity for a user.

const activity = await client.users.listActivity({
user: "0x1234...",
type: "TRADE,REDEEM",
sortBy: "TIMESTAMP",
});
ParameterTypeDefaultDescription
userstringrequiredUser address
marketstring-Comma-separated condition IDs
eventIdstring-Comma-separated event IDs
typestring-Comma-separated activity types
sideTradeSide-”BUY” or “SELL”
startnumber-Start timestamp
endnumber-End timestamp
limitnumber100Max results (0-10000)
offsetnumber0Pagination offset
sortByActivitySortBy”TIMESTAMP”Sort field
sortDirectionSortDirection”DESC”Sort order
  • TRADE - Trade execution
  • SPLIT - Position split
  • MERGE - Position merge
  • REDEEM - Position redemption
  • REWARD - Reward distribution
  • CONVERSION - Token conversion
type Activity = {
proxyWallet: string;
timestamp: number;
conditionId: string;
type: ActivityType;
size: number;
usdcSize: number;
transactionHash?: string;
price?: number;
asset?: string;
side?: string;
outcomeIndex?: number;
title?: string;
slug?: string;
icon?: string;
outcome?: string;
name?: string;
pseudonym?: string;
bio?: string;
profileImage?: string;
profileImageOptimized?: string;
};

Get total value of a user’s positions.

const values = await client.users.listPositionsValues({
user: "0x1234...",
});
ParameterTypeDefaultDescription
userstringrequiredUser address
marketstring-Comma-separated condition IDs
type PositionValue = {
user: string;
value: number;
};

Get closed positions for a user.

const closedPositions = await client.users.listClosedPositions({
user: "0x1234...",
sortBy: "REALIZEDPNL",
sortDirection: "DESC",
});
ParameterTypeDefaultDescription
userstringrequiredUser address
marketstring-Comma-separated condition IDs
eventIdstring-Comma-separated event IDs
titlestring-Filter by title (max 100 chars)
limitnumber10Max results (0-50)
offsetnumber0Pagination offset (0-100000)
sortByClosedPositionSortBy”REALIZEDPNL”Sort field
sortDirectionSortDirection”DESC”Sort order
type ClosedPosition = {
proxyWallet: string;
asset: string;
conditionId: string;
avgPrice: number;
totalBought: number;
realizedPnl: number;
curPrice: number;
timestamp: number;
title: string;
slug: string;
icon?: string;
eventSlug?: string;
outcome: string;
outcomeIndex: number;
oppositeOutcome: string;
oppositeAsset: string;
endDate?: string;
};

Get total markets a user has traded.

const tradedMarkets = await client.users.getTradedMarkets("0x1234...");
type TradedMarkets = {
user: string;
traded: number;
};
type SortBy =
| "CURRENT"
| "INITIAL"
| "TOKENS"
| "CASHPNL"
| "PERCENTPNL"
| "TITLE"
| "RESOLVING"
| "PRICE"
| "AVGPRICE";
type ClosedPositionSortBy =
| "REALIZEDPNL"
| "TITLE"
| "PRICE"
| "AVGPRICE"
| "TIMESTAMP";
type SortDirection = "ASC" | "DESC";