Recipe 17 of 30
Every trade of a Polymarket market in the last 30 days
Ask /events for event_type=trade on both outcome tokens one 24-hour window at a time; 30 windows cover 30 days, or 30 daily trades files from the archive do. Rows carry no wallets.
GET /v1/polymarket/events with event_type=trade lists every recorded print of the tokens you name, oldest first, over a window of up to 24 hours. Name both outcome tokens of the market and step the window back one day at a time: 30 calls return 30 days of prints, each with its price, size, taker side and time. The full parameter list is on Event tape.
Quick answer
Ask for the last 24 hours of prints on both tokens, then repeat with the window moved back a day.
# the last 24 hours of prints on both tokens of one market; repeat with the window moved back a day, 30 times
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/events?token_ids=93694900555669388759405753550770573998169287228984912881955464376232163096213,55119388124180116303253993098894090042427725500010038140578121972388485050538&event_type=trade&from_ms=1792776321686&to_ms=1792862721686&limit=50000"Example response
Captured from the live API on 2026-10-24 at 17:25 UTC, the window held 2 prints. The market is will-bitcoin-hit-150k-by-december-31-2026; its two tokens printed twice in that day. price is the probability paid per share, size is shares, side is the taker's side and ts the venue time in epoch milliseconds. The fields a print does not use (bids, asks, best_bid, best_ask) are empty or 0.
{
"events": [
{
"asks": "",
"best_ask": 0.0,
"best_bid": 0.0,
"bids": "",
"event_type": "trade",
"is_snapshot": 0,
"local_ts": 1792781016449,
"price": 0.973,
"seq": 0,
"side": "sell",
"size": 5.2,
"status": "",
"token_id": "55119388124180116303253993098894090042427725500010038140578121972388485050538",
"ts": 1792781016435
},
{
"asks": "",
"best_ask": 0.0,
"best_bid": 0.0,
"bids": "",
"event_type": "trade",
"is_snapshot": 0,
"local_ts": 1792783174113,
"price": 0.021,
"seq": 0,
"side": "sell",
"size": 25.0,
"status": "",
"token_id": "93694900555669388759405753550770573998169287228984912881955464376232163096213",
"ts": 1792783174097
}
],
"has_more": false,
"next_cursor": null
}Variations
The day before. Move both bounds back 24 hours. Windows are half-open on local_ts, so consecutive windows never repeat a print.
# day 2 of 30
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/events?token_ids=93694900555669388759405753550770573998169287228984912881955464376232163096213,55119388124180116303253993098894090042427725500010038140578121972388485050538&event_type=trade&from_ms=1792689921686&to_ms=1792776321686&limit=50000"The market's token ids. /markets searches slugs and returns token_ids, in the order of the market's outcomes.
# the two outcome tokens of the market
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/markets?query=will-bitcoin-hit-150k-by-december-31-2026&limit=1"Thirty days as thirty files. The archive's trades stream holds every market's prints for a UTC day. The 2026-10-23 file is 13.5 MB and
1,162,902 rows; keep the rows whose token_id is one of yours.
# where the day's file of every print is, with its size
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-10-23&stream=trades"Check the tape exists first. /market_stats says how many prints a token has and over what span.
# trade count and first and last recorded time of one token
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/market_stats?token_id=93694900555669388759405753550770573998169287228984912881955464376232163096213"Before you rely on it
Thirty days is thirty windows, and no wallets
A window is at most 24 hours wide, so 30 days take 30 calls or 30 archive files. The tape lists prints, not who made
them: no row carries a wallet address. It covers the markets the recorder follows, from 2026-07-25 on; a token with
total_events 0 on /market_stats was never recorded.
Paging trades can skip a print
Every trade row carries seq 0, and two prints of one token can share a millisecond. The cursor resumes strictly
after (local_ts, seq, token_id), so a page that ends between two such prints loses the second. Keep
limit=50000 so a day fits in one page, and split the day in two if has_more is still true.
Ask your agent
Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The polymarket_tape tool answers, one day per call, at 1 credit a call.
List the trades of the Polymarket market will-bitcoin-hit-150k-by-december-31-2026 in the last 24 hours