vike

Recipe 21 of 30

Tape summary of a Polymarket outcome token (events, first and last recorded)

/market_stats returns one row per token with its recorded event count, trade count, shares traded, book snapshots, and the first and last recorded times.

GET /v1/polymarket/market_stats answers it in one call: one row per outcome token with how many events were recorded, how many of them were prints, how many shares those prints moved, how many full-book snapshots were taken, and the first and last recorded times. It is the cheap call to make before you ask for the tape itself. The full parameter list is on Market stats.

Quick answer

Pass the outcome token id.

cURL
# how much tape one outcome token has, and over what span
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/market_stats?token_id=95532524407959903145510583684979049735028502452973932716346555811355282494630"

Example response

Captured from the live API on 2026-10-24 at 17:21 UTC. This token's tape runs from 2026-07-25 03:51:50 UTC to 2026-08-19 23:53:53 UTC: 202,244 events, of which 302 prints moving 39,301.4 shares, and 10,674 full-book snapshots. Book changes, not prints, make up almost all of the tape.

Example response
[
  {
    "first_ms": 1784951510849,
    "last_ms": 1787183633324,
    "snapshots": 10674,
    "total_events": 202244,
    "trade_volume": 39301.396175,
    "trades": 302
  }
]

Variations

The other outcome of the market. Each outcome token has its own tape and its own counts.

cURL — other token
# the second token of the same market
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/market_stats?token_id=107869950127184141743772429738701578723770582686430100389837827512148691029625"

A token still being recorded. For a market that is still trading, last_ms is close to now. For will-bitcoin-hit-150k-by-december-31-2026 at 17:25 UTC on 2026-10-24 it was 12 seconds old, with 354 prints since 2026-07-25.

cURL — live token
# a long-running market's first token
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/market_stats?token_id=93694900555669388759405753550770573998169287228984912881955464376232163096213"

Then the last hour of the tape. Anchor an /events window on last_ms, not on the clock. to_ms runs a minute past last_ms because the window is cut on the receive time, a few milliseconds after the venue time that last_ms is built from.

cURL — final hour
# the final hour of this token's recorded tape, prints only
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/events?token_id=95532524407959903145510583684979049735028502452973932716346555811355282494630&event_type=trade&from_ms=1787180033324&to_ms=1787183693324&limit=1000"

Before you rely on it

Shares, the whole recording, and zeros for never recorded

trade_volume is in outcome shares, not dollars. Every count covers the token's whole recording; there is no window parameter. A token that was never recorded still returns one row, all zeros, so test total_events == 0 rather than an empty array. last_ms is where the recording ends, which can be weeks before now.

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_market_stats tool answers, at 1 credit a call.

Ask your agent
How much tape does Polymarket token 95532524407959903145510583684979049735028502452973932716346555811355282494630 have, and when does it start and end?
Example response
[  {    "first_ms": 1784951510849,    "last_ms": 1787183633324,    "snapshots": 10674,    "total_events": 202244,    "trade_volume": 39301.396175,    "trades": 302  }]