---
title: "Get Prediction Market Screener"
method: POST
path: "/api/v1/prediction-market/market-screener"
tags: ["Prediction Markets"]
---

# Get Prediction Market Screener

`POST /api/v1/prediction-market/market-screener`

## Request

- Base URL: `https://api.nansen.ai`
- URL: `https://api.nansen.ai/api/v1/prediction-market/market-screener`
- Auth: API key in header `apiKey`
- TypeScript: <https://skmtc.dev/nansen/apis/nansen-api/docs/api/v1/prediction-market/market-screener/post.ts> (a function with typed inputs; its response is checked against the schema)

Browse and filter all Polymarket prediction markets. Supports sorting by volume,
liquidity, price change, and more. Filter by search query and active/closed status.

**What it helps to answer:**

1. **What are the most active prediction markets right now?**
2. **Which markets have the highest volume or liquidity?**
3. **What new markets have been created recently?**

## Request body

- MarketScreenerRequest: Request for market screener endpoint.
  - `order_by` SortOrderScreenerSortField[]: Sort order
    - `field` 'volume_24hr' | 'volume' | 'volume_1wk' | 'volume_1mo' | 'liquidity' | 'open_interest' | 'unique_traders_24h' | 'age_hours', required: Valid sort fields for screener endpoints.
    - `direction` 'ASC' | 'DESC', required: Enum for sort directions.
  - `sort_by` 'volume_24hr' | 'volume' | 'volume_1wk' | 'volume_1mo' | 'liquidity' | 'open_interest' | 'unique_traders_24h' | 'age_hours': Valid sort fields for screener endpoints.
  - `query` string: Search query to filter results
  - `status` 'active' | 'closed' | '': Valid status filters for screener endpoints.
  - `tags` string[]: Filter by tags
  - `min_liquidity` number: Minimum liquidity filter (-1 = no filter)
  - `max_liquidity` number: Maximum liquidity filter (-1 = no limit)
  - `max_unique_traders_24h` integer: Maximum unique traders in 24h (-1 = no limit)
  - `min_volume_24hr` number: Minimum 24h volume filter (-1 = no filter)
  - `neg_risk` boolean: Filter by neg-risk framework (null = no filter)
  - `min_open_interest` number: Minimum open interest filter (-1 = no filter)
  - `max_open_interest` number: Maximum open interest filter (-1 = no limit)
  - `end_date_before` string: Filter markets ending before this datetime (ISO 8601)
  - `end_date_after` string: Filter markets ending after this datetime (ISO 8601)
  - `pagination` PaginationRequest: Pagination parameters for API requests.
    - `page` integer: Page number (1-based)
    - `per_page` integer: Number of records per page (max 1000)
  - `min_price` number: Minimum price filter (-1 = no filter)
  - `max_price` number: Maximum price filter (-1 = no limit)

## Response `200`

Market screener data

- MarketScreenerResponse: Response for market screener endpoint.
  - `pagination` PaginationInfo: Pagination information for API responses.
    - `page` integer: Current page number
    - `per_page` integer: Number of records per page
    - `is_last_page` boolean: Whether this is the last page
  - `data` MarketScreenerItem[], required: List of market screener records
    - `market_id` string, required: Market ID
    - `question` string: Market question
    - `slug` string: URL slug
    - `event_id` string: Parent event ID
    - `event_title` string: Parent event title
    - `active` boolean: Whether market is active
    - `closed` boolean: Whether market is closed
    - `end_date` string, date-time: Market end date
    - `neg_risk` boolean: Uses neg-risk framework
    - `tags` string[]: Market tags
    - `volume` number: Total volume (USD)
    - `volume_24hr` number: 24h volume (USD)
    - `volume_1wk` number: 1 week volume (USD)
    - `volume_1mo` number: 1 month volume (USD)
    - `liquidity` number: Current liquidity (USD)
    - `volume_change_pct` number: Volume change percentage
    - `open_interest` number: Open interest (USD)
    - `best_bid` number: Best bid price
    - `best_ask` number: Best ask price
    - `last_trade_price` number: Last trade price
    - `one_day_price_change` number: 24h price change
    - `unique_traders_24h` integer: Unique traders in 24h
    - `created_at` string, date-time: Market creation time
    - `age_hours` number: Market age in hours

## Other responses

- `400`: Bad Request - Invalid request parameters or malformed request
- `401`: Authentication error - No API key found in request
- `402`: Payment Required - This endpoint supports pay-per-request via x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.
- `403`: Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404`: Not Found - The requested resource was not found
- `422`: Validation error - Invalid request parameters
- `429`: Too Many Requests - Rate limit exceeded
- `500`: Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/nansen/apis/nansen-api.md) - [All operations](https://skmtc.dev/nansen/apis/nansen-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nansen/apis/nansen-api/revisions/02a4d2e7d827?raw)
