# Nansen Prediction Market Screener

> Nansen Prediction Market Screener is a paid API for AI agents from api.nansen.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-13).

Screen and filter prediction markets by price, liquidity, volume, open interest, status, tags, and other criteria

## Facts

- Endpoint: GET https://api.nansen.ai/api/v1/prediction-market/market-screener
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-nansen-ai-549b2e80
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_76JHfRvB7vQqqZVxsC-Jx

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability api-nansen-ai-549b2e80
```

Example prompt: Show me active prediction markets on Nansen with at least $10,000 in liquidity and at least $5,000 in 24h volume, filtered to markets ending after 2025-06-01, sorted by open interest descending.

## When to prefer this

Use this endpoint when you need to discover, filter, or rank prediction markets based on quantitative criteria like liquidity, volume, price range, or open interest — especially when leveraging Nansen's smart money analytics layer. Prefer this over generic prediction market APIs when wallet-label-enriched or smart-money-flow context is relevant.

## Known failure modes

- Invalid status value returns 400 or empty results
- Invalid sort_by field returns error
- Date string not in ISO 8601 format causes parse error
- Pagination out of bounds returns empty list
- Payment not included or insufficient results in 402 Payment Required

## How this service works

Get Prediction Market Screener

## Output

A paginated list of prediction markets matching the filter criteria, including market metadata such as price, liquidity, open interest, 24h volume, unique traders, status, tags, and end date.

## Example request

```json
{
 "sort_by": "open_interest",
 "order_by": [
  {
   "field": "open_interest",
   "direction": "DESC"
  }
 ],
 "pagination": {
  "page": 1,
  "per_page": 10
 },
 "min_liquidity": 10000,
 "end_date_after": "2025-06-01T00:00:00Z",
 "min_volume_24hr": 5000
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "MarketScreenerRequest",
 "properties": {
  "tags": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "Tags",
   "examples": [
    [
     "Crypto",
     "Bitcoin"
    ]
   ],
   "maxItems": 50,
   "description": "Filter by tags"
  },
  "query": {
   "type": "string",
   "title": "Query",
   "default": "",
   "examples": [
    "bitcoin",
    "election"
   ],
   "maxLength": 200,
   "description": "Search query to filter results"
  },
  "status": {
   "enum": [
    "active",
    "closed",
    ""
   ],
   "type": "string",
   "title": "MarketStatus",
   "description": "Valid status filters for screener endpoints."
  },
  "sort_by": {
   "enum": [
    "volume_24hr",
    "volume",
    "volume_1wk",
    "volume_1mo",
    "liquidity",
    "open_interest",
    "unique_traders_24h",
    "age_hours"
   ],
   "type": "string",
   "title": "ScreenerSortField",
   "description": "Valid sort fields for screener endpoints."
  },
  "neg_risk": {
   "anyOf": [
    {
     "type": "boolean"
    }
   ],
   "title": "Neg Risk",
   "description": "Filter by neg-risk framework (null = no filter)"
  },
  "order_by": {
   "anyOf": [
    {
     "type": "array",
     "items": {
      "type": "object",
      "title": "SortOrder[ScreenerSortField]",
      "required": [
       "field",
       "direction"
      ],
      "properties": {
       "field": {
        "enum": [
         "volume_24hr",
         "volume",
         "volume_1wk",
         "volume_1mo",
         "liquidity",
         "open_interest",
         "unique_traders_24h",
         "age_hours"
        ],
        "type": "string",
        "title": "ScreenerSortField",
        "description": "Valid sort fields for screener endpoints."
       },
       "direction": {
        "enum": [
         "ASC",
         "DESC"
        ],
        "type": "string",
        "title": "SortDirection",
        "description": "Enum for sort directions."
       }
      }
     }
    }
   ],
   "title": "Order By",
   "examples": [
    [
     {
      "field": "volume_24hr",
      "direction": "DESC"
     }
    ]
   ],
   "description": "Sort order"
  },
  "max_price": {
   "type": "number",
   "title": "Max Price",
   "default": -1,
   "minimum": -1,
   "description": "Maximum price filter (-1 = no limit)"
  },
  "min_price": {
   "type": "number",
   "title": "Min Price",
   "default": -1,
   "minimum": -1,
   "description": "Minimum price filter (-1 = no filter)"
  },
  "pagination": {
   "
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "MarketScreenerResponse",
 "required": [
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "MarketScreenerItem",
    "required": [
     "market_id"
    ],
    "properties": {
     "slug": {
      "anyOf": [
       {
        "type": "string"
       }
      ],
      "title": "Slug",
      "description": "URL slug"
     },
     "tags": {
      "anyOf": [
       {
        "type": "array",
        "items": {
         "type": "string"
        }
       }
      ],
      "title": "Tags",
      "description": "Market tags"
     },
     "active": {
      "anyOf": [
       {
        "type": "boolean"
       }
      ],
      "title": "Active",
      "description": "Whether market is active"
     },
     "closed": {
      "anyOf": [
       {
        "type": "boolean"
       }
      ],
      "title": "Closed",
      "description": "Whether market is closed"
     },
     "volume": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Volume",
      "description": "Total volume (USD)"
     },
     "best_ask": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Best Ask",
      "description": "Best ask price"
     },
     "best_bid": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Best Bid",
      "description": "Best bid price"
     },
     "end_date": {
      "anyOf": [
       {
        "type": "string",
        "format": "date-time"
       }
      ],
      "title": "End Date",
      "description": "Market end date"
     },
     "event_id": {
      "anyOf": [
       {
        "type": "string"
       }
      ],
      "title": "Event Id",
      "description": "Parent event ID"
     },
     "neg_risk": {
      "anyOf": [
       {
        "type": "boolean"
       }
      ],
      "title": "Neg Risk",
      "description": "Uses neg-risk framework"
     },
     "question": {
      "anyOf": [
       {
        "type": "string"
       }
      ],
      "title": "Question",
      "description": "Market question"
     },
     "age_hours": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Age Hours",
      "description": "Market age in hours"
     },
     "liquidity": {
      "anyOf": [
       {
        "type": "number"
       }
      ],
      "title": "Liquidity",
      "description": "Current liquidity (USD)"
     },
     "market_id": {
      "type": 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-nansen-ai-549b2e80/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.nansen.ai](https://www.zero.xyz/host/api.nansen.ai/llms.txt)
