Skip to main content
GET
Get a market's closing line
Use this endpoint to read the price a market closed at: Polymarket’s own price for each outcome in the last minute before the game started. It is the line every large trade’s clv is measured against, so you can check any trade’s closing line value yourself. For one wallet’s closing line value over many trades, use Trader closing line value.

Parameters

Key response fields

Why a close is unavailable

Example

What it does not return

  • A price computed from the last trade. The close is Polymarket’s own price history, read once after the market settles.
  • A close for a market outside sports and esports. That market returns 404 with error.reason market_out_of_scope, and a market 0xinsider has no record of returns 404 too.
  • 0 in place of a missing price. A market without a close says pending or unavailable.
  • Several markets at once. Request each market, or read clv.close_price on its large trades.

Caching

Save the response’s ETag and send it in If-None-Match on your next request. If nothing has changed, the server returns 304 Not Modified with no body. A measured close never changes.

Authorizations

Authorization
string
header
required

Legacy default or named integration API key, or OAuth 2.1 access token, in the Authorization header as Bearer oxi_sk_live_... or Bearer oxi_at_.... Default keys retain full access; integration keys are limited to their approved read, webhooks, export and usage scopes and expire within 90 days. All credentials share the owner's account limits. Data calls require an active Pro subscription and return live data. A 401 carries WWW-Authenticate: Bearer resource_metadata="https://api.0xinsider.com/.well-known/oauth-protected-resource" (RFC 6750 section 3, RFC 9728).

Headers

X-Query-Validation
enum<string>

Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.

Available options:
strict
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.

Response

The market's closing line, or the state that says why it has none.

object
string
required
Allowed value: "market_close"
data
object
required

A market's stored closing line (#32517): Polymarket's price-history value for the last minute bucket ending at or before kickoff, read once after settlement and never recomputed.

meta
object
required