---
title: "Explore markets"
method: GET
path: "/api/v1/markets/explore"
tags: ["Markets"]
---

# Explore markets

`GET /api/v1/markets/explore`

Browse whale-active titled markets with category, platform, status, and keyword filters. 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. Categories come straight from provider metadata (Polymarket Gamma, Kalshi) and facets are flat value/label/count rows.

## Query parameters

- `category` string
- `status` 'active' | 'closed' | 'all'
- `platform` 'polymarket' | 'kalshi' | 'all'
- `sort` 'trending' | 'hot' | 'expiring' | 'whales' | 'volume' | 'newest'
- `cursor` string
- `limit` integer
- `q` string

## Headers

- `If-None-Match` string

## Response `200`

Grouped market discovery results

- object
  - `object` 'list', required
  - `data` ExploreEntry[], required
    - union
      - ExploreGroup
        - `type` 'group', required
        - `event_slug` string, required
        - `parent_title` string, required
        - `image` string, nullable
        - `platform` string, nullable
        - `category` string, nullable
        - `markets` ExploreMarket[], required
          - `id` string, required
          - `condition_id` string, required
          - `title` string, required — Non-empty market title.
          - `slug` string, nullable — Provider-native market slug.
          - `url_slug` string, nullable — First-party market page slug used for internal links.
          - `image` string, nullable
          - `icon` string, nullable
          - `category` string, nullable
          - `platform` string, nullable
          - `status` 'active' | 'closed', required
          - `volume` number, nullable
          - `liquidity` number, nullable
          - `whale_trade_count` integer, nullable
          - `whale_distinct_wallets` integer, nullable
          - `whale_total_usd` number, nullable
          - `whale_last_trade_at` string, date-time, nullable
          - `end_date` string, date-time, nullable
          - `created_at` string, date-time, nullable
          - `outcome_yes` string, nullable
          - `outcome_no` string, nullable
          - `event_slug` string, nullable
          - `kalshi_series_slug` string, nullable
          - `smart_score` number, nullable
          - `smart_count` integer, nullable
          - `smart_label` string, nullable
          - `outcome_yes_label` string, nullable — Display label for the YES/outcome_index=0 side, enriched from provider outcome metadata when available.
          - `outcome_no_label` string, nullable — Display label for the NO/outcome_index=1 side, enriched from provider outcome metadata when available.
          - `outcome_yes_provider_id` integer, nullable — Provider-owned YES/outcome_index=0 identifier when available for trade-ticket wiring.
          - `outcome_no_provider_id` integer, nullable — Provider-owned NO/outcome_index=1 identifier when available for trade-ticket wiring.
          - `open_interest` number, nullable
          - `oi_change_pct` number, nullable
          - `price_points` array[], nullable
            - number[]
          - `no_price_points` array[], nullable
            - number[]
          - `last_price` number, nullable
          - `no_last_price` number, nullable
          - `change_pct_24h` number, nullable
          - `no_change_pct_24h` number, nullable
          - `discover_score` number, nullable — Backend-owned deterministic market discovery score used by the hot sort.
          - `score_components` object
            - `volume_signal` number, nullable
            - `whale_signal` number, nullable
            - `liquidity_signal` number, nullable
            - `recency_signal` number, nullable
            - `smart_money_signal` number, nullable
            - `price_move_signal` number, nullable
            - `missing_price_penalty` number, required
          - `freshness` object
            - `enrichment_status` 'available' | 'unavailable', required
            - `price_status` 'available' | 'unavailable', required
        - `rep_volume` number, nullable
        - `rep_whales` integer, nullable
      - ExploreStandalone
        - `type` 'standalone', required
        - `market` ExploreMarket, required
          - `id` string, required
          - `condition_id` string, required
          - `title` string, required — Non-empty market title.
          - `slug` string, nullable — Provider-native market slug.
          - `url_slug` string, nullable — First-party market page slug used for internal links.
          - `image` string, nullable
          - `icon` string, nullable
          - `category` string, nullable
          - `platform` string, nullable
          - `status` 'active' | 'closed', required
          - `volume` number, nullable
          - `liquidity` number, nullable
          - `whale_trade_count` integer, nullable
          - `whale_distinct_wallets` integer, nullable
          - `whale_total_usd` number, nullable
          - `whale_last_trade_at` string, date-time, nullable
          - `end_date` string, date-time, nullable
          - `created_at` string, date-time, nullable
          - `outcome_yes` string, nullable
          - `outcome_no` string, nullable
          - `event_slug` string, nullable
          - `kalshi_series_slug` string, nullable
          - `smart_score` number, nullable
          - `smart_count` integer, nullable
          - `smart_label` string, nullable
          - `outcome_yes_label` string, nullable — Display label for the YES/outcome_index=0 side, enriched from provider outcome metadata when available.
          - `outcome_no_label` string, nullable — Display label for the NO/outcome_index=1 side, enriched from provider outcome metadata when available.
          - `outcome_yes_provider_id` integer, nullable — Provider-owned YES/outcome_index=0 identifier when available for trade-ticket wiring.
          - `outcome_no_provider_id` integer, nullable — Provider-owned NO/outcome_index=1 identifier when available for trade-ticket wiring.
          - `open_interest` number, nullable
          - `oi_change_pct` number, nullable
          - `price_points` array[], nullable
            - number[]
          - `no_price_points` array[], nullable
            - number[]
          - `last_price` number, nullable
          - `no_last_price` number, nullable
          - `change_pct_24h` number, nullable
          - `no_change_pct_24h` number, nullable
          - `discover_score` number, nullable — Backend-owned deterministic market discovery score used by the hot sort.
          - `score_components` object
            - `volume_signal` number, nullable
            - `whale_signal` number, nullable
            - `liquidity_signal` number, nullable
            - `recency_signal` number, nullable
            - `smart_money_signal` number, nullable
            - `price_move_signal` number, nullable
            - `missing_price_penalty` number, required
          - `freshness` object
            - `enrichment_status` 'available' | 'unavailable', required
            - `price_status` 'available' | 'unavailable', required
  - `has_more` boolean, required
  - `next_cursor` string, nullable
  - `total` integer, nullable — Total matching visible entries after grouping. Present on the first page and omitted on cursor pages.
  - `facets` ExploreFacets, required
    - `categories` ExploreFacetValue[], required
      - `value` string, required
      - `label` string, required
      - `count` integer, required
    - `platforms` ExploreFacetValue[], required
      - `value` string, required
      - `label` string, required
      - `count` integer, required
  - `meta` ResponseMeta, required
    - `request_id` string, required — Unique request ID (req_ prefix).
    - `cached` boolean, required
    - `cache_age_s` integer, nullable — Cache age in seconds, null if not cached.

## Other responses

- `304` — Not Modified. Returned when If-None-Match matches the current explore payload.
- `400` — Invalid request parameter
- `401` — Missing or invalid API key
- `402` — Active Insider subscription required
- `403` — Account access denied
- `408` — Request exceeded the server's 30-second transport timeout. The timeout response has an empty body because it is generated before handler-level JSON error shaping.
- `423` — Account is locked
- `429` — Rate limit exceeded (100 req/min; batch endpoints also reserve 100 batch item units/min before execution)
- `503` — Redis-backed authenticated rate limiter unavailable; retry after the per-process outage cooldown

## Changes

- **2026-06-01** `422bd4dc1611` — 63 warning, 27 info
  - added the new `account_locked` enum value to the `error/code` response property for the response status `400`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `401`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `402`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `403`
  - …86 more
- **2026-05-07** `2907497f4ca3` — 4 info
  - added the new optional `header` request parameter `If-None-Match`
  - added the non-success response with the status `304`
  - added the non-success response with the status `408`
  - added the non-success response with the status `503`
- **2026-04-03** `24aa764c32ea` — 2 warning, 5 info
  - added the new `closed` enum value to the `data/items/oneOf[#/components/schemas/ExploreGroup]/markets/items/status` response property for the response status `200`
  - added the new `closed` enum value to the `data/items/oneOf[#/components/schemas/ExploreStandalone]/market/status` response property for the response status `200`
  - added the non-success response with the status `403`
  - added the non-success response with the status `423`
  - …3 more
- **2026-04-01** `f86d5a7bfa2c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/0xinsider/apis/0xinsider-api/changes/api/v1/markets/explore/get.md)

---

[API](https://skmtc.dev/0xinsider/apis/0xinsider-api.md) · [All operations](https://skmtc.dev/0xinsider/apis/0xinsider-api/llms.txt) · [OpenAPI document](https://skmtc.dev/0xinsider/apis/0xinsider-api/revisions/03edbd4f02bd?raw)
