Explore Markets
Browse whale-active titled markets with category, platform, status, and keyword filters. Explore is Polymarket-only: the platform parameter is accepted for backward-compatibility but every request returns Polymarket markets. Paginates visible discovery entries rather than raw market rows, returns live category/platform facets alongside grouped event clusters or standalone markets, and includes total on the first page only. Each grouped event contains at most 12 markets, retaining the selected representative within that cap. Categories come straight from provider metadata (Polymarket Gamma) and facets are flat value/label/count rows.
condition_id.
Read the entries
- Each
dataitem hastypeset togrouporstandalone. Agroupcarriesevent_slug,parent_title, and up to 12markets. Astandalonecarries onemarket. market.idis themkt_market ID.market.condition_idis the raw provider ID. Both work on the single-market endpoints.market.url_slugis the first-party page slug.market.slugis the provider slug.market.freshness.enrichment_statusandmarket.freshness.price_statusareavailableorunavailable. Read them before you show a price field.totalappears on the first page only. Cursor pages omit it.facets.categoriesandfacets.platformsarevalue,label, andcountrows for the current filter. Facet values are canonical buckets.computed_atandfresh_for_secondsdescribe the 60-second explore cache. Remaining freshness isfresh_for_secondsminus the age ofcomputed_at.
platform accepts only polymarket and does not change the result. A canonical category such as Basketball matches every provider member (NBA, WNBA, NCAAB). A raw provider value also resolves to its bucket. sort accepts trending (default), hot, expiring, whales, volume, and newest. limit is 1 to 48 with a default of 24.
Cache the feed
The 200 response carries anETag. Send If-None-Match to get 304 Not Modified with an empty body when the payload is unchanged. computed_at and fresh_for_seconds are excluded from the validator, so a recomputed body with identical data keeps its ETag.
Related
Search Markets finds a market by keyword across Polymarket and Kalshi.Authorizations
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
Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.
Query Parameters
Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket. Facet values are returned as the canonical bucket.
Filter by market status.
active, closed, all Filter by source platform. Explore is Polymarket-only; polymarket is the only supported value and the parameter is accepted for backward-compatibility but does not change the result set.
polymarket Sort order for the discovery feed.
trending, hot, expiring, whales, volume, newest Opaque pagination cursor from the previous response.
Page size.
1 <= x <= 48Keyword search against market titles.
Response
Grouped market discovery results
"list"- Option 1
- Option 2
Total matching visible entries after grouping. Present on the first page and omitted on cursor pages.
When this response body was computed. Present whenever the body came from, or was just written to, the 60s explore cache. Pair it with fresh_for_seconds to derive how much longer the body may be reused: fresh_for_seconds - age(computed_at). Excluded from the ETag validator, so a body recomputed with identical data keeps its validator.
How long the body computed at computed_at is good for, in seconds. Deliberately not pre-subtracted: a cached body cannot carry a number that changes while it sits in the cache. Excluded from the ETag validator.