---
title: "Get Opinion Markets"
method: GET
path: "/v2/opinion/markets"
tags: ["opinion"]
---

# Get Opinion Markets

`GET /v2/opinion/markets`

List Opinion markets with filtering and sorting.

Returns tradeable markets (standalone binaries + categorical outcomes).
Categorical parent markets are excluded — use event_id or event_slug to
query all outcomes under a categorical grouping.

Prices in outcomes are currently null (future: from WebSocket/orderbook).

## Query parameters

- `status` 'open' | 'closed'
- `market_type` 'binary' | 'categorical'
- `search` string, nullable — Search in title (minimum 3 characters)
- `labels` string[], nullable — Filter by label(s)
- `min_volume` number, nullable — Minimum total volume (USD)
- `condition_id` string[], nullable — Filter by condition ID(s)
- `market_slug` string[], nullable — Filter by market slug(s)
- `market_id` integer[], nullable — Filter by market ID(s)
- `predexon_id` string[], nullable — Filter by predexon ID(s)
- `token_id` string[], nullable — Filter by token ID(s)
- `event_id` integer[], nullable — Filter by event/parent market ID(s)
- `event_slug` string[], nullable — Filter by event slug(s)
- `sort` 'volume' | 'volume_24h' | 'volume_7d' | 'created' | 'created_asc' | 'expiration'
- `limit` integer — Number of markets to return
- `pagination_key` string, nullable — Cursor for next page (from previous response)

## Response `200`

Successful Response

- OpinionMarketsResponse — Response for Opinion markets list endpoint.
  - `markets` OpinionMarket[], required
    - `market_id` integer, required
    - `title` string, required
    - `slug` string, required
    - `description` string
    - `status` string, required
    - `outcomes` OpinionOutcome[], required
      - `label` string, required
      - `token_id` string
      - `predexon_id` string
      - `price` number, nullable
    - `total_volume_usd` number
    - `volume_24h_usd` number
    - `volume_7d_usd` number
    - `condition_id` string
    - `question_id` string
    - `result_token_id` string, nullable
    - `event_id` integer, nullable
    - `event_slug` string, nullable
    - `event_title` string, nullable
    - `labels` string[]
    - `thumbnail_url` string
    - `chain_id` string
    - `quote_token` string
    - `collection` OpinionCollection — Recurring market collection metadata.
      - `title` string, required
      - `symbol` string, required
      - `frequency` string, required
    - `created_time` string, nullable — ISO 8601 timestamp
    - `cutoff_time` string, nullable — ISO 8601 timestamp
    - `resolved_time` string, nullable — ISO 8601 timestamp
  - `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/revisions/80a306fbdb39/schema)
