---
title: "Get Markets"
method: GET
path: "/v2/polymarket/markets/keyset"
tags: ["polymarket"]
---

# Get Markets

`GET /v2/polymarket/markets/keyset`

List markets with filtering and sorting.

Consolidates active and closed markets into a single endpoint.
Use status=open for active markets only.

Rolling metrics (volume_1d/7d/30d, trades, OI) are refreshed hourly.

## Query parameters

- `status` 'open' | 'closed'
- `min_price` number, nullable — Minimum price
- `max_price` number, nullable — Maximum price
- `min_open_interest` number, nullable — Minimum open interest (USD)
- `min_volume` number, nullable — Minimum volume (USD)
- `tags` string[], nullable — Filter by tag(s)
- `event_slug` string[], nullable — Filter by event slug(s)
- `search` string, nullable — Search in title (minimum 3 characters)
- `condition_id` string[], nullable — Filter by condition ID(s)
- `question_id` string[], nullable — Filter by question ID(s)
- `market_id` string[], nullable — Filter by market ID(s)
- `market_slug` string[], nullable — Filter by market slug(s)
- `token_id` string[], nullable — Filter by token ID(s) - matches either side_a or side_b
- `predexon_id` string[], nullable — Filter by predexon ID(s) - matches either side_a or side_b
- `end_after` integer, nullable — Filter to markets ending after this Unix timestamp
- `end_before` integer, nullable — Filter to markets ending at or before this Unix timestamp
- `sort` 'volume' | 'open_interest' | 'price_desc' | 'price_asc' | 'expiration' | 'expiration_asc' | 'created' | 'created_asc' | 'relevance' | 'volume_1d' | 'volume_7d' | 'volume_30d' | 'trades_1d' | 'trades_7d' | 'trades_30d' | 'oi_change_1d' | 'oi_change_7d' | 'oi_change_30d'
- `limit` integer — Number of markets to return
- `pagination_key` string, nullable — Cursor returned from the previous response
- `offset` integer — Deprecated. Offset pagination has been removed; only 0 is accepted.
- `min_volume_1d` number, nullable — Minimum rolling 1-day volume (USD)
- `min_volume_7d` number, nullable — Minimum rolling 7-day volume (USD)
- `min_volume_30d` number, nullable — Minimum rolling 30-day volume (USD)
- `min_trades_1d` integer, nullable — Minimum rolling 1-day trade count
- `min_trades_7d` integer, nullable — Minimum rolling 7-day trade count
- `min_trades_30d` integer, nullable — Minimum rolling 30-day trade count

## Response `200`

Successful Response

- PolymarketMarketsResponse — Response for Polymarket markets list endpoint.
  - `markets` PolymarketMarket[], required
    - `condition_id` string, required
    - `question_id` string, nullable
    - `market_id` string, required
    - `market_slug` string, required
    - `title` string, required
    - `description` string
    - `status` string, required
    - `winning_side` string, nullable
    - `start_time` string, nullable — ISO 8601 timestamp
    - `end_time` string, nullable — ISO 8601 timestamp
    - `close_time` string, nullable — ISO 8601 timestamp
    - `created_time` string, nullable — ISO 8601 timestamp
    - `image_url` string
    - `event_id` string, nullable
    - `event_slug` string, nullable
    - `event_title` string, nullable
    - `outcomes` PolymarketOutcome[], required
      - `label` string, required
      - `token_id` string, nullable
      - `predexon_id` string, nullable
      - `price` number, nullable
    - `total_volume_usd` number
    - `liquidity_usd` number
    - `tags` string[]
    - `is_neg_risk` boolean
    - `rolling_metrics` MarketRollingMetrics — Rolling window metrics from market_metrics_summary (hourly cron refresh).
      - `volume_1d` number — Volume in USD over last 24 hours
      - `volume_7d` number — Volume in USD over last 7 days
      - `volume_30d` number — Volume in USD over last 30 days
      - `buy_volume_1d` number — Buy volume (USD) last 24h
      - `buy_volume_7d` number — Buy volume (USD) last 7d
      - `buy_volume_30d` number — Buy volume (USD) last 30d
      - `sell_volume_1d` number — Sell volume (USD) last 24h
      - `sell_volume_7d` number — Sell volume (USD) last 7d
      - `sell_volume_30d` number — Sell volume (USD) last 30d
      - `trades_1d` integer — Trade count last 24h
      - `trades_7d` integer — Trade count last 7d
      - `trades_30d` integer — Trade count last 30d
      - `buys_1d` integer — Buy trades last 24h
      - `buys_7d` integer — Buy trades last 7d
      - `buys_30d` integer — Buy trades last 30d
      - `sells_1d` integer — Sell trades last 24h
      - `sells_7d` integer — Sell trades last 7d
      - `sells_30d` integer — Sell trades last 30d
      - `oi_change_1d` number — OI change over last 24h (USD)
      - `oi_change_7d` number — OI change over last 7d (USD)
      - `oi_change_30d` number — OI change over last 30d (USD)
      - `computed_at` string, nullable — ISO 8601 timestamp when metrics were last computed
  - `pagination` CursorPagination, required — Cursor-based pagination for endpoints that don't support offset.
    - `limit` integer, required — Requested limit
    - `count` integer, required — Number of items in current response
    - `pagination_key` string, nullable — Base64-encoded cursor for next page
    - `has_more` boolean, required — Whether there are more items available

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/predexon/apis/predexon-api.md) · [All operations](https://skmtc.net/predexon/apis/predexon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/predexon/predexon-api/versions/80a306fbdb39/schema)
