Skip to main content
GET
cURL
Get one provider-first market card: identity, outcome labels, top of book, liquidity, live sports context, and freshness. Use this endpoint to render or refresh one market card.

Read the snapshot

  • market.provider is polymarket or kalshi. market.status is active or closed.
  • outcomes has one entry per side. Each carries side (yes or no), label, token_id, current_price, and top_of_book.
  • top_of_book.status is available or unavailable. An unavailable entry carries reason and null prices.
  • liquidity.last_price is Kalshi only. It is always null for Polymarket markets.
  • freshness.market_data.status is stale when the provider refresh is older than 24 hours. stale_after_s is 86400 and reason is provider_refresh_older_than_24h.
  • sports.status is fresh, stale, not_live, or unavailable. An unavailable or not_live state carries reason.
  • market.series_slug is null for most markets. For Polymarket it names a league, not one matchup.
  • A null or unavailable value means the provider fact is absent. Do not replace it with 0.

Handle the market ID

  1. Pass the raw condition_id from search or explore, or the mkt_ market ID from any V1 response.
  2. A trd_, wt_, or rf_ prefix returns 400 bad_request with error.param="condition_id".
  3. An unknown market returns 404 not_found.

Expand the trust block

trust appears only with expand=trust or expand[]=trust. It covers current_price and spread_bps with source, freshness, reconciliation, and completeness. See Trust Metadata.

Cache the snapshot

The 200 response carries an ETag. Send If-None-Match to get 304 Not Modified with an empty body when nothing changed. Get Market Candles returns the daily price series for the same market.

Authorizations

Authorization
string
header
required

API key authentication. Send your key in the Authorization header as Bearer oxi_sk_live_.... Live keys require an active Pro subscription and return live data.

Headers

If-None-Match
string

Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.

Path Parameters

condition_id
string
required

Market condition ID. Accepts the raw provider-backed condition_id returned by /api/v1/markets/search or /api/v1/markets/explore, or the mkt_-prefixed market.id emitted by V1 responses.

Query Parameters

expand[]
enum<string>[]

Backward-compatible alias for expand. Repeatable: trust.

Available options:
trust
expand
enum<string>[]

Include trust metadata for current_price and spread_bps. Repeatable: trust.

Available options:
trust

Response

Provider-first market snapshot

object
string
required
Allowed value: "market_snapshot"
data
object
required
meta
object
required