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.
# 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.
[
{
"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.
# 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.
# 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.
# 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.
How much tape does Polymarket token 95532524407959903145510583684979049735028502452973932716346555811355282494630 have, and when does it start and end?