
The activity feed, rolled up to a one-hour window. Expanding a row charts the market's price around the fill.
Columns
The reference columns are what make the log enriched. Each comes back as the resolved entity rather than a bare id, so a row already carries the market’s question, the event’s title and the category labels:
You still filter on the id fields —
marketId, eventId, tagIds, seriesId and positionId — even though rows come back carrying the resolved entity. See Filtering.Two ways to read it
The log
By default the endpoint returns one row per fill, newest first.The summary
PassaggregationWindow to roll fills up into time buckets. Rows are grouped by bucket, activity type, wallet and position — one row per wallet’s buying (or selling) of one position within one window.
Measures are aggregated the way each one means something:
amount,
usdAmount and realizedPnl are summed, while usdPrice and
avgBuyingPrice are share-weighted averages — not plain averages, so a
large fill counts more than a small one. market, event, tags and
series carry through as representative values for the group.Selecting activity types
activityIds restricts the log to buys or sells. Activity type isn’t part of filter — it’s selected here.
Filtering and search
Filter on wallet, market, event, category, position, timestamp, and the numeric measures — see Filtering for the syntax.searchKey runs a free-text search over markets, combining semantic and keyword relevance, so you can find activity by what a market is about rather than by id.
API endpoint
Activity
POST /api/v1/activity: chronological log of buys and sells, or a bucketed
summary.