Market Activity
The examples below assume you already have a market object. To find or fetch one, see Discover Markets.- TypeScript
- Python
- API
Given a market, read its condition and event IDs:
Recent Trades
Review the trades recently matched in a market, including their side, price, size, outcome, wallet, and timestamp. Trades are always returned in descending timestamp order (newest first).- TypeScript
- Python
- API
Call
listTrades() on a PublicClient or SecureClient.Output: Trade[]
Output: Trade[]
Open Interest
Measure the value currently held in outstanding positions for one or more markets.- TypeScript
- Python
- API
Call
fetchOpenInterest() on a PublicClient or SecureClient. Pass up
to 20 condition IDs, or omit conditionIds for the single global figure
(served as conditionId: null).Output: OpenInterest[]
Output: OpenInterest[]
Market Holders
Find the largest public holders for each outcome in a market.- TypeScript
- Python
- API
Call
listMarketHolders() on a PublicClient or SecureClient and walk
the cursor pages. pageSize applies separately to each outcome token, so
merge groups by assetId across pages. Set includePnl: true (one
condition ID, page size at most 100) to add position economics to every
holder row.Output: MetaHolder[]
Output: MetaHolder[]
Event Live Volume
Summarize activity across an event and break the volume down by market.- TypeScript
- Python
- API
Call
fetchEventLiveVolume() on a PublicClient or SecureClient. Pass
one or more event IDs; a list spans events and returns one combined
result.Output: LiveVolume
Output: LiveVolume
Market Resolution
Check a market’s resolution progress.- TypeScript
- Python
- API
Call Each row includes its
fetchResolutions() on an existing PublicClient or SecureClient.
If needed, create a Public Client first.status and lastUpdatedAt. payouts is present
when published. No matching resolution returns an empty array.For UMA question lifecycle rows, transactionHash identifies the latest
lifecycle transaction, while logIndex is the initial RequestPrice event’s
log index. They can belong to different transactions. Do not combine them as
a log locator.This rule does not apply uniformly to every row. V2 condition-only rows can
return null for both fields. CTF condition-resolution fallback rows instead
carry the paired transaction and log index of the condition-resolution event.Settlement estimates use these optional fields on Resolution:expectedSettlementTime is an ISO datetime string in UTC. The fields are
omitted when no estimate is available. Import ResolutionSettlementTimeBasis
from @polymarket/client to interpret the estimate:Settlement Estimates
Treat an estimate as the earliest time the market can settle, not as a deadline. A disputed vote can roll into a later voting round, and a proposal’s liveness window can already have elapsed while it awaits finalization. No estimate is available for settled markets, proposals under extended review, or markets that are still initialized or active.Token Lookup
Find the market and outcome for a token, or list all tokens of a condition in one read.- TypeScript
- Python
- API
Call
Pass up to 50
fetchTokenReferences() on an existing PublicClient or SecureClient.
If needed, create a Public Client first.Output: TokenReference[]
Output: TokenReference[]
TokenReference Type
finalPrice is the settled payout as a decimal string, or null when
unavailable. Settlement data can take up to a minute to update.To look up a condition instead, supply only conditionIds:assetIds or 10 conditionIds, not both. Results are not
paginated. Unknown asset IDs are omitted.Trader Leaderboard
Compare trader volume and profit and loss over a selected period.- TypeScript
- Python
- API
Call
Call When called on a
A
listTraderLeaderboard() on a PublicClient or SecureClient.
window defaults to one day, category to overall, and sortBy to PnL.
Tied traders share a rank and the next rank skips.Output: TraderLeaderboardEntry[]
Output: TraderLeaderboardEntry[]
fetchTraderLeaderboardStanding() on a PublicClient or
SecureClient to read one wallet’s standing on both boards.SecureClient, user can be omitted and defaults to the
authenticated account’s wallet.Output: TraderLeaderboardStanding
Output: TraderLeaderboardStanding
null rank means the wallet is unranked on that board.Biggest Winners
Compare individual winning positions by their profit at resolution.- TypeScript
- Python
- API
Call
listBiggestWinners() on a PublicClient or SecureClient.window selects the resolution period. Each row is one position. Check
kind before using eventId, which is null for Combos.Builder Analytics
Evaluate the reach of a builder integration through its attributed trading activity.Builder Leaderboard
Compare builders by attributed volume and active users.- TypeScript
- Python
- API
Call
listBuilderLeaderboard() on a PublicClient or SecureClient.Output: BuilderStanding[]
Output: BuilderStanding[]
Builder Volume
Track attributed builder volume and active users over time.- TypeScript
- Python
- API
Call
fetchBuilderVolume() on a PublicClient or SecureClient.
interval picks the bucket width and bucketLimit counts the most recent
complete buckets (at most 90); every builder active in a bucket gets one
row.Output: BuilderVolumePoint[]
Output: BuilderVolumePoint[]