vike

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.

cURL
# 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.

Example response
{
  "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.

cURL — previous day
# 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.

cURL — token ids
# 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.

cURL — a day of all prints
# 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.

cURL — tape 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.

Ask your agent
List the trades of the Polymarket market will-bitcoin-hit-150k-by-december-31-2026 in the last 24 hours
Example response
{  "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}