Recipe 13 of 30
Polymarket odds history: OHLCV candles of an outcome
/ohlcv?token_id=&interval=1h returns one outcome token's candles, oldest first, priced as a probability from 0 to 1, at 1m, 5m, 1h or 1d.
GET /v1/polymarket/ohlcv answers it in one call: pass the outcome's token_id and an interval of 1m, 5m, 1h or 1d. Each bar has open, high, low and close as probabilities, volume in shares and a trades count; from and to are epoch milliseconds, both inclusive, and bars come oldest first. The full parameter list is on Outcome candles.
Quick answer
Ask for hourly bars of the Yes token from three days back.
# hourly odds of Yes on "Will Kylian Mbappe finish in the top 3 of the 2026 Ballon d'Or?", from three days ago
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=74473996442012992380676870006739770237037057336567567233855106290930440805273&interval=1h&from=1792602825357&limit=5"Example response
Captured from the live API on 2026-10-24 at 17:14 UTC, all 5 rows of limit=5. 0.85 is 85%. The first two bars are 18:00 and 22:00 UTC on 2026-10-21: a bar exists only for an hour that traded, so step by ts, not by row. volume is shares; multiply by a price for dollars.
[
{"close": 0.85, "high": 0.85, "low": 0.85, "open": 0.85, "trades": 1, "ts": 1792605600000, "volume": 10.0},
{"close": 0.87, "high": 0.87, "low": 0.87, "open": 0.87, "trades": 1, "ts": 1792620000000, "volume": 56.321838},
{"close": 0.89, "high": 0.89, "low": 0.87, "open": 0.87, "trades": 2, "ts": 1792659600000, "volume": 2498.604154},
{"close": 0.88, "high": 0.88, "low": 0.87, "open": 0.87, "trades": 2, "ts": 1792677600000, "volume": 73.289091},
{"close": 0.87, "high": 0.87, "low": 0.87, "open": 0.87, "trades": 1, "ts": 1792692000000, "volume": 657.21}
]Variations
The whole history as daily bars. With no from, the series starts at the token's first recorded bar.
# daily bars from the start of the token's tape
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=74473996442012992380676870006739770237037057336567567233855106290930440805273&interval=1d&limit=5"The other outcome. The No token is its own series.
# hourly odds of No on the same market
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=94460938716696962400906318004981079238211572891965687608128793145682575549865&interval=1h&from=1792602825357&limit=5"One UTC day at 5 minutes. End a millisecond before the next midnight, because both bounds are inclusive.
# 2026-10-23 in 5-minute bars
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=74473996442012992380676870006739770237037057336567567233855106290930440805273&interval=5m&from=1792713600000&to=1792799999999&limit=288"Find the token id.
# the market's two token ids, Yes first
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/markets?query=will-kylian-mbappe-finish-in-the-top-3-of-the-2026-ballon-dor&limit=1" | jq '.[0].token_ids'Before you rely on it
limit keeps the oldest bars, and from is not a date
There is no cursor: a window wider than limit bars (default 500, cap 1000) is cut at its recent end, so
move from forward to reach it. from and to are epoch milliseconds; a date string does not parse and
is ignored, which returns the series from its start. Candles exist from 2026-07-25, for markets Vike
records. These are odds, not dollars: the Hyperliquid candles at /v1/hyperliquid/ohlcv are a different
endpoint.
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_ohlcv tool answers, at 1 credit a call.
Show the daily odds of Kylian Mbappe finishing in the top 3 of the 2026 Ballon d'Or