Skip to main content
Prediction Market data is currently in beta. It is actively being worked on and improved, but may be unreliable. Polymarket data is live, and Kalshi data will be added soon.At least for the time being, this endpoint requires a Growth or Enterprise plan. Learn more.

Returns

Arguments

Example: Top markets by 24h volume

{
  filterPredictionMarkets(
    rankings: [
      { attribute: volumeUsd24h, direction: DESC }
    ]
    limit: 10
  ) {
    count
    page
    results {
      id
      eventLabel
      protocol
      status
      categories
      market {
        question
        label
        protocol
        status
        collateral
        networkId
        opensAt
        closesAt
      }
      outcome0 {
        label
        lastPriceUsd
        liquidityUsd
      }
      outcome1 {
        label
        lastPriceUsd
        liquidityUsd
      }
      liquidityUsd
      volumeUsd24h
      trades24h
      uniqueTraders24h
      trendingScore24h
    }
  }
}
Example Response (truncated)
{
  "data": {
    "filterPredictionMarkets": {
      "count": 10,
      "page": 0,
      "results": [
        {
          "id": "0x25aa90b3cd98305e849189b4e8b770fc77fe89bccb7cf9656468414e01145d38:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137",
          "eventLabel": "Fed decision in March?",
          "protocol": "POLYMARKET",
          "status": "OPEN",
          "categories": [
            "economy",
            "finance",
            "politics",
            "sports",
            "fed"
          ],
          "market": {
            "question": "Will the Fed increase interest rates by 25+ bps after the March 2026 meeting?",
            "label": "25+ bps increase",
            "protocol": "POLYMARKET",
            "status": "OPEN",
            "collateral": "{\"type\":\"token\",\"tokenAddress\":\"0x2791bca1f2de4661ed88a30c99a7a9449aa84174\",\"networkId\":137}",
            "networkId": 137,
            "opensAt": 1761764467,
            "closesAt": 1773792000
          },
          "outcome0": {
            "label": "Yes",
            "lastPriceUsd": "0.001",
            "liquidityUsd": "6324844"
          },
          "outcome1": {
            "label": "No",
            "lastPriceUsd": "0.999019",
            "liquidityUsd": "6329715"
          },
          "liquidityUsd": "12654559",
          "volumeUsd24h": "8800270",
          "trades24h": 1079,
          "uniqueTraders24h": 646,
          "trendingScore24h": 0.34541965892500454
        }
        // ... 9 more results
      ]
    }
  }
}

Example: Search markets by text

{
  filterPredictionMarkets(
    phrase: "Champions League"
    filters: {
      status: OPEN
    }
    rankings: [
      { attribute: volumeUsd24h, direction: DESC }
    ]
    limit: 5
  ) {
    count
    results {
      eventLabel
      market {
        question
        opensAt
        closesAt
      }
      status
      categories
      liquidityUsd
      volumeUsd24h
      trendingScore24h
    }
  }
}

Example: Filter by category and status

{
  filterPredictionMarkets(
    filters: {
      categories: ["sports", "soccer"]
      status: OPEN
      liquidityUsd: { gt: 100000 }
    }
    rankings: [
      { attribute: trendingScore24h, direction: DESC }
    ]
    limit: 10
  ) {
    count
    results {
      eventLabel
      market {
        question
      }
      categories
      liquidityUsd
      volumeUsd24h
      trendingScore24h
      outcome0 {
        label
        lastPriceUsd
      }
      outcome1 {
        label
        lastPriceUsd
      }
    }
  }
}

Example: Filter by time range and liquidity

{
  filterPredictionMarkets(
    filters: {
      protocol: POLYMARKET
      closesAt: { gte: 1773000000, lte: 1774000000 }
      liquidityUsd: { gt: 50000 }
    }
    rankings: [
      { attribute: uniqueTraders24h, direction: DESC }
    ]
    limit: 20
  ) {
    count
    results {
      id
      eventLabel
      protocol
      market {
        question
        closesAt
      }
      liquidityUsd
      volumeUsd24h
      uniqueTraders24h
      trades24h
    }
  }
}

Usage Guidelines

  • Response limit: 100 markets per request (configurable with limit parameter)
  • Use trendingScore24h or volumeUsd24h rankings for discovering active markets
  • Apply quality filters like minimum liquidity (liquidityUsd: { gt: 10000 }) to focus on liquid markets
  • Use phrase parameter to search by market question, event label, or category
  • Filter by status: OPEN to exclude resolved/closed markets
  • Use categories filter to narrow down to specific topics (e.g., “sports”, “politics”, “crypto”)
  • Combine multiple time windows (5m, 1h, 4h, 12h, 24h, 1w) to analyze market trends over different periods

Market Status Values

See the PredictionEventStatus enum for all possible status values and their meanings.

Scoring Metrics

  • trendingScore - Measures what’s “heating up” - prioritizes growth velocity over absolute size (a small market with 10x volume growth scores higher than a large market with flat volume)
  • relevanceScore - Measures what “matters” - based on absolute size and capital at stake, with no growth multipliers (large, established markets rank high even if quiet)
  • competitiveScore - Measures genuine uncertainty - higher when prices are near 50%, trading is balanced on both sides, and there’s active price discovery

Troubleshooting Tips

volumeUsd24h shows trading volume in the last 24 hours, while volumeUsdAll shows total lifetime volume for the market. For trending markets, use 24h metrics. For market maturity analysis, compare volumeUsdAll with time-based volumes.
Some markets use generic Yes/No outcomes without custom labels. Check both outcome0.label and outcome1.label - if null, treat them as Yes/No or reference the market question for context.
Use the change metrics like volumeChange24h, liquidityChange24h, and uniqueTradersChange24h. Positive values indicate growth. Combine with trendingScore for markets with accelerating activity.