vike
API EndpointsPolymarket

/markets/{condition_id}

One market's detail — the same row shape as the directory, for a single market you already hold a condition_id for.

GET https://data.vike.io/v1/polymarket/markets/{condition_id}

One market's detail — the same row shape as the directory, for a single market. Call it when you already hold a condition_id (from a Polymarket URL, a settlement row, or a stored id) and want its token_ids, tick size and lifecycle flags without searching.

Note the shape: a one-element array, not a bare object. Even for a single market you index [0]. It is the same row the directory returns, which is why an unknown id is an empty array rather than a 404 — see the callout below.

cURL
# one market you already hold a condition_id for: its token_ids, tick size and lifecycle flags, no search needed
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8"

# a sibling market from the same /markets?query=bitcoin search, to compare neg_risk, tick_size and end_date
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x84fdc3f917e34acca874f93d978e84ed0c08969903ddf40a5d65274b3a5b4fdf"

# read tick_size per market rather than assuming it: this one steps in 0.01 where the two above step in 0.001
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x752fa61c93f16c4b15e85b0bd438d9c684176b0ea7b319a84c8aca34616e8a8c"

# a market that has resolved on chain: its closed flag here is derived from that resolution, so read it beside /settlements
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x69e0442186b71c5cac4fa6304311e39101ed048983a200fc8e376a9dadd7de13"

# just the token_ids, ready to feed /ohlcv, /orderbook, /market_stats or /events
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8" | jq '.[0].token_ids'

# an id the directory has never seen is 200 with [], not a 404, so test the length rather than the status
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/markets/0x0000000000000000000000000000000000000000000000000000000000000000" | jq length
condition_idpathrequired
The 0x-prefixed market condition id.
Example response
[
  {
    "active": 1,
    "closed": 0,
    "condition_id": "0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8",
    "end_date": 1798779600000,
    "neg_risk": 1,
    "slug": "will-bitcoin-reach-70000-by-december-31-2026-from-june-8",
    "tick_size": 0.001,
    "token_ids": [
      "95532524407959903145510583684979049735028502452973932716346555811355282494630",
      "107869950127184141743772429738701578723770582686430100389837827512148691029625"
    ]
  }
]

The path segment is matched as a condition_id only

The route looks a market up by condition_id and by nothing else, so a token_id in this position returns [] with status 200. There is no query-parameter form either: the route accepts no query parameters at all, and ?token_id= on this path is refused with 400 {"error":"unknown query parameter 'token_id' (this endpoint accepts: none)"}. There is no token-to-market lookup in this namespace, so keep the condition_id from the /markets row you took the token from.

cURL
# one market you already hold a condition_id for: its token_ids, tick size and lifecycle flags, no search neededcurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8"# a sibling market from the same /markets?query=bitcoin search, to compare neg_risk, tick_size and end_datecurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x84fdc3f917e34acca874f93d978e84ed0c08969903ddf40a5d65274b3a5b4fdf"# read tick_size per market rather than assuming it: this one steps in 0.01 where the two above step in 0.001curl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x752fa61c93f16c4b15e85b0bd438d9c684176b0ea7b319a84c8aca34616e8a8c"# a market that has resolved on chain: its closed flag here is derived from that resolution, so read it beside /settlementscurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x69e0442186b71c5cac4fa6304311e39101ed048983a200fc8e376a9dadd7de13"# just the token_ids, ready to feed /ohlcv, /orderbook, /market_stats or /eventscurl -s -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8" | jq '.[0].token_ids'# an id the directory has never seen is 200 with [], not a 404, so test the length rather than the statuscurl -s -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/polymarket/markets/0x0000000000000000000000000000000000000000000000000000000000000000" | jq length
Example response
[  {    "active": 1,    "closed": 0,    "condition_id": "0x7b9072e6a9cdcf022c4f098564e8ee612d544e179e4a33dcc2790fbaa778daa8",    "end_date": 1798779600000,    "neg_risk": 1,    "slug": "will-bitcoin-reach-70000-by-december-31-2026-from-june-8",    "tick_size": 0.001,    "token_ids": [      "95532524407959903145510583684979049735028502452973932716346555811355282494630",      "107869950127184141743772429738701578723770582686430100389837827512148691029625"    ]  }]