> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# filterPredictionMarkets

> Filters prediction markets using optional text, IDs, event constraints, and ranking criteria.

<Info>
  **Prediction Market data is currently in beta**. It is actively being worked on and improved, but may be unreliable. Polymarket and Kalshi data are live.

  At least for the time being, this endpoint requires a Growth or Enterprise plan. [Learn more](https://dashboard.codex.io/dashboard/billing?utm_source=codex\&utm_medium=docs\&utm_campaign=billing).
</Info>

<div data-generated>
  ## GraphQL

  ```
  type Query {
    # Requires a Growth or Enterprise plan.
    filterPredictionMarkets(
      filters: PredictionMarketFilters
      phrase: String
      marketIds: [String!]
      excludeMarketIds: [String!]
      eventIds: [String!]
      excludeEventIds: [String!]
      rankings: [PredictionMarketRanking!]
      limit: Int
      offset: Int
    ): PredictionMarketFilterConnection
  }

  enum PredictionMarketRole {
    MONEYLINE
    MONEYLINE_OUTCOME
    ENTRANT
    SPREAD
    TOTAL
    PROP
    THRESHOLD_BUCKET
    DATE_BUCKET
    EXOTIC
    OTHER
  }

  enum PredictionMarketSegmentType {
    STAT
    PERIOD
    NONE
  }

  enum PredictionMarketStatType {
    POINTS
    REBOUNDS
    ASSISTS
    THREES
    STEALS
    BLOCKS
    TURNOVERS
    FOULS
    DOUBLE_DOUBLE
    TRIPLE_DOUBLE
    FIRST_INNING_RUNS
  }

  type PredictionMarketSegment {
    type: PredictionMarketSegmentType!
    period: String
    stat: PredictionMarketStatType
    groupingKey: String!
    numberValue: Float
  }

  enum PredictionMarketEntrantKind {
    PERSON
    PLAYER
    TEAM
    COUNTRY
    COMPANY
    TOPIC
    TV_SHOW
    MOVIE
    SONG
    ALBUM
    OTHER
  }

  type PredictionMarketEntrant {
    kind: PredictionMarketEntrantKind!
    displayName: String!
    imageUrl: String
    countryCode: String
  }

  enum PredictionMarketLadderMetric {
    PRICE
    STOCK_PRICE
    FDV
    COMMODITY
    TEMPERATURE
    RATE_CHANGE_BPS
    ROTTEN_TOMATOES
    BOX_OFFICE
    TWEETS
    FOLLOWERS
    SUBSCRIBERS
    VIEWS
    LIKES
    POSTS
    OTHER
  }

  enum PredictionMarketLadderOperator {
    ABOVE
    BELOW
    EXACTLY
    BETWEEN
  }

  type PredictionMarketThresholdBucket {
    metric: PredictionMarketLadderMetric!
    operator: PredictionMarketLadderOperator!
    numericValue: Float
    lowerBound: Float
    upperBound: Float
  }

  enum PredictionMarketDateOperator {
    BEFORE
    AFTER
    ON
    BETWEEN
  }

  type PredictionMarketDateBucket {
    operator: PredictionMarketDateOperator!
    unixTimestamp: Int
    lowerTimestamp: Int
    upperTimestamp: Int
  }

  type PredictionMarketClassification {
    role: PredictionMarketRole!
    sortKey: Int
    segment: PredictionMarketSegment!
    entrant: PredictionMarketEntrant
    thresholdBucket: PredictionMarketThresholdBucket
    dateBucket: PredictionMarketDateBucket
    rawSubtype: String
  }

  enum PredictionProtocol {
    POLYMARKET
    KALSHI
  }

  enum PredictionEventStatus {
    OPEN
    SUSPENDED
    RESOLVED
    CANCELLED
    PENDING
  }

  type SearchPredictionMarket {
    id: String!
    eventId: String!
    protocol: PredictionProtocol!
    venueMarketId: String!
    venueMarketSlug: String
    exchangeAddress: String
    networkId: Int
    venueEventId: String
    label: String
    suggestedLabel: String
    question: String
    collateral: String!
    createdAt: Int!
    opensAt: Int
    closesAt: Int
    resolvesAt: Int
    resolvedAt: Int
    status: PredictionEventStatus!
    tags: [String!]
    imageThumbUrl: String
  }

  type PredictionResolution {
    result: String
    source: String
  }

  type PredictionSubSubcategory {
    name: String!
    slug: String!
  }

  type PredictionSubcategory {
    name: String!
    slug: String!
    subcategories: [PredictionSubSubcategory!]
  }

  type PredictionCategory {
    name: String!
    slug: String!
    subcategories: [PredictionSubcategory!]
  }

  enum PredictionMetadataType {
    SPORTS
  }

  type SportsTeam {
    abbreviation: String!
    altAbbreviations: [String!]
    name: String
    league: String
    logo: String
    alias: String
    color: String
    providerId: Int
    isHome: Boolean
  }

  enum SportsTimezone {
    UTC
  }

  type SportsMarketEnrichedMetadata {
    sportsMarketType: String
    league: String
    teams: [SportsTeam!]
    gameStartDate: String
    gameStartTime: String
    gameStartTimeSeconds: Int
    gameStartTimezone: SportsTimezone
  }

  type PredictionMarketEnrichedMetadata {
    metadataType: PredictionMetadataType!
    sports: SportsMarketEnrichedMetadata
  }

  type PredictionMarket {
    id: String!
    protocol: PredictionProtocol!
    venueMarketId: String!
    venueMarketSlug: String
    eventId: String
    venueEventId: String
    question: String
    label: String
    suggestedLabel: String
    eventLabel: String
    rules: String
    rules2: String
    venueOutcomeIds: [String!]!
    outcomeIds: [String!]!
    outcomeLabels: [String!]
    resolution: PredictionResolution
    imageLargeUrl: String
    imageThumbUrl: String
    imageSmallUrl: String
    createdAt: Int
    updatedAt: Int
    opensAt: Int
    closesAt: Int
    resolvesAt: Int
    resolvedAt: Int
    observedAt: Int!
    networkId: Int
    exchangeAddress: String
    categories: [PredictionCategory!]
    winningOutcomeId: String
    enrichedMetadata: PredictionMarketEnrichedMetadata
  }

  type PredictionOutcomeFilterResult {
    id: String!
    label: String
    suggestedLabel: String
    venueOutcomeId: String!
    isWinner: Boolean
    tokenAddress: String
    networkId: Int
    exchangeAddress: String
    tags: [String!]
    bestBidUsd: String
    bestAskUsd: String
    spreadUsd: String
    lastPriceUsd: String
    bestBidCT: String
    bestAskCT: String
    spreadCT: String
    lastPriceCT: String
    bestBookBidUsd: String
    bestBookBidCT: String
    bestBookAskUsd: String
    bestBookAskCT: String
    bookLiquidityUsd: String
    bookLiquidityCT: String
    liquidityUsd: String
    liquidityCT: String
    twoPercentAskDepthUsd: String
    twoPercentBidDepthUsd: String
    twoPercentAskDepthCT: String
    twoPercentBidDepthCT: String
    highPriceUsd5m: String
    highPriceUsd1h: String
    highPriceUsd4h: String
    highPriceUsd12h: String
    highPriceUsd24h: String
    highPriceUsd1w: String
    lowPriceUsd5m: String
    lowPriceUsd1h: String
    lowPriceUsd4h: String
    lowPriceUsd12h: String
    lowPriceUsd24h: String
    lowPriceUsd1w: String
    volumeUsd5m: String
    volumeUsd1h: String
    volumeUsd4h: String
    volumeUsd12h: String
    volumeUsd24h: String
    volumeUsd1w: String
    volumeChange5m: Float
    volumeChange1h: Float
    volumeChange4h: Float
    volumeChange12h: Float
    volumeChange24h: Float
    volumeChange1w: Float
    volumeShares5m: String
    volumeShares1h: String
    volumeShares4h: String
    volumeShares12h: String
    volumeShares24h: String
    volumeShares1w: String
    buyVolumeUsd5m: String
    buyVolumeUsd1h: String
    buyVolumeUsd4h: String
    buyVolumeUsd12h: String
    buyVolumeUsd24h: String
    buyVolumeUsd1w: String
    sellVolumeUsd5m: String
    sellVolumeUsd1h: String
    sellVolumeUsd4h: String
    sellVolumeUsd12h: String
    sellVolumeUsd24h: String
    sellVolumeUsd1w: String
    trades5m: Int
    trades1h: Int
    trades4h: Int
    trades12h: Int
    trades24h: Int
    trades1w: Int
    buys5m: Int
    buys1h: Int
    buys4h: Int
    buys12h: Int
    buys24h: Int
    buys1w: Int
    sells5m: Int
    sells1h: Int
    sells4h: Int
    sells12h: Int
    sells24h: Int
    sells1w: Int
    tradesChange5m: Float
    tradesChange1h: Float
    tradesChange4h: Float
    tradesChange12h: Float
    tradesChange24h: Float
    tradesChange1w: Float
    priceChange5m: Float
    priceChange1h: Float
    priceChange4h: Float
    priceChange12h: Float
    priceChange24h: Float
    priceChange1w: Float
    priceRange5m: Float
    priceRange1h: Float
    priceRange4h: Float
    priceRange12h: Float
    priceRange24h: Float
    priceRange1w: Float
  }

  type PredictionMarketFilterResult {
    id: String!
    timestamp: Int!
    lastTransactionAt: Int!
    age: Int
    expectedLifespan: Int
    eventLabel: String
    classification: PredictionMarketClassification
    market: SearchPredictionMarket!
    predictionMarket: PredictionMarket
    protocol: PredictionProtocol!
    status: PredictionEventStatus!
    opensAt: Int!
    closesAt: Int!
    resolvesAt: Int!
    categories: [String!]!
    resolutionSource: String
    outcome0: PredictionOutcomeFilterResult!
    outcome1: PredictionOutcomeFilterResult!
    winningOutcomeId: String
    trendingScore5m: Float
    trendingScore1h: Float
    trendingScore4h: Float
    trendingScore12h: Float
    trendingScore24h: Float
    trendingScore1w: Float
    relevanceScore5m: Float
    relevanceScore1h: Float
    relevanceScore4h: Float
    relevanceScore12h: Float
    relevanceScore24h: Float
    relevanceScore1w: Float
    competitiveScore5m: Float
    competitiveScore1h: Float
    competitiveScore4h: Float
    competitiveScore12h: Float
    competitiveScore24h: Float
    competitiveScore1w: Float
    liquidityUsd: String
    liquidityCT: String
    liquidityChange5m: Float
    liquidityChange1h: Float
    liquidityChange4h: Float
    liquidityChange12h: Float
    liquidityChange24h: Float
    liquidityChange1w: Float
    openInterestUsd: String
    openInterestCT: String
    openInterestChange5m: Float
    openInterestChange1h: Float
    openInterestChange4h: Float
    openInterestChange12h: Float
    openInterestChange24h: Float
    openInterestChange1w: Float
    volumeUsd5m: String
    volumeUsd1h: String
    volumeUsd4h: String
    volumeUsd12h: String
    volumeUsd24h: String
    volumeUsd1w: String
    volumeUsdAll: String
    volumeCTAll: String
    venueVolumeUsd: String
    venueVolumeCT: String
    volumeChange5m: Float
    volumeChange1h: Float
    volumeChange4h: Float
    volumeChange12h: Float
    volumeChange24h: Float
    volumeChange1w: Float
    trades5m: Int
    trades1h: Int
    trades4h: Int
    trades12h: Int
    trades24h: Int
    trades1w: Int
    avgTradeSizeUsd5m: String
    avgTradeSizeUsd1h: String
    avgTradeSizeUsd4h: String
    avgTradeSizeUsd12h: String
    avgTradeSizeUsd24h: String
    avgTradeSizeUsd1w: String
    tradesChange5m: Float
    tradesChange1h: Float
    tradesChange4h: Float
    tradesChange12h: Float
    tradesChange24h: Float
    tradesChange1w: Float
    uniqueTraders5m: Int
    uniqueTraders1h: Int
    uniqueTraders4h: Int
    uniqueTraders12h: Int
    uniqueTraders24h: Int
    uniqueTraders1w: Int
    uniqueTradersChange5m: Float
    uniqueTradersChange1h: Float
    uniqueTradersChange4h: Float
    uniqueTradersChange12h: Float
    uniqueTradersChange24h: Float
    uniqueTradersChange1w: Float
    priceCompetitiveness: Float
    volumeImbalance24h: Float
    liquidityAsymmetry: Float
    impliedProbabilitySum: Float
    maxPriceRange5m: Float
    maxPriceRange1h: Float
    maxPriceRange4h: Float
    maxPriceRange12h: Float
    maxPriceRange24h: Float
    maxPriceRange1w: Float
  }

  type PredictionMarketFilterConnection {
    count: Int!
    page: Int!
    results: [PredictionMarketFilterResult!]!
  }

  input NumberFilter {
    gte: Float
    gt: Float
    lte: Float
    lt: Float
  }

  input PredictionOutcomeFilters {
    bestBidUsd: NumberFilter
    bestAskUsd: NumberFilter
    spreadUsd: NumberFilter
    lastPriceUsd: NumberFilter
    trades5m: NumberFilter
    trades1h: NumberFilter
    trades4h: NumberFilter
    trades12h: NumberFilter
    trades24h: NumberFilter
    trades1w: NumberFilter
    priceChange5m: NumberFilter
    priceChange1h: NumberFilter
    priceChange4h: NumberFilter
    priceChange12h: NumberFilter
    priceChange24h: NumberFilter
    priceChange1w: NumberFilter
  }

  input PredictionMarketFilters {
    protocol: [PredictionProtocol!]
    status: [PredictionEventStatus!]
    categories: [String!]
    excludeCategories: [String!]
    hasCategories: Boolean
    resolutionSource: [String!]
    timestamp: NumberFilter
    lastTransactionAt: NumberFilter
    age: NumberFilter
    createdAt: NumberFilter
    expectedLifespan: NumberFilter
    opensAt: NumberFilter
    closesAt: NumberFilter
    resolvesAt: NumberFilter
    trendingScore5m: NumberFilter
    trendingScore1h: NumberFilter
    trendingScore4h: NumberFilter
    trendingScore12h: NumberFilter
    trendingScore24h: NumberFilter
    trendingScore1w: NumberFilter
    relevanceScore5m: NumberFilter
    relevanceScore1h: NumberFilter
    relevanceScore4h: NumberFilter
    relevanceScore12h: NumberFilter
    relevanceScore24h: NumberFilter
    relevanceScore1w: NumberFilter
    competitiveScore5m: NumberFilter
    competitiveScore1h: NumberFilter
    competitiveScore4h: NumberFilter
    competitiveScore12h: NumberFilter
    competitiveScore24h: NumberFilter
    competitiveScore1w: NumberFilter
    liquidityUsd: NumberFilter
    liquidityCT: NumberFilter
    liquidityChange5m: NumberFilter
    liquidityChange1h: NumberFilter
    liquidityChange4h: NumberFilter
    liquidityChange12h: NumberFilter
    liquidityChange24h: NumberFilter
    liquidityChange1w: NumberFilter
    openInterestUsd: NumberFilter
    openInterestCT: NumberFilter
    openInterestChange5m: NumberFilter
    openInterestChange1h: NumberFilter
    openInterestChange4h: NumberFilter
    openInterestChange12h: NumberFilter
    openInterestChange24h: NumberFilter
    openInterestChange1w: NumberFilter
    volumeUsd5m: NumberFilter
    volumeUsd1h: NumberFilter
    volumeUsd4h: NumberFilter
    volumeUsd12h: NumberFilter
    volumeUsd24h: NumberFilter
    volumeUsd1w: NumberFilter
    volumeUsdAll: NumberFilter
    volumeCTAll: NumberFilter
    venueVolumeUsd: NumberFilter
    venueVolumeCT: NumberFilter
    volumeChange5m: NumberFilter
    volumeChange1h: NumberFilter
    volumeChange4h: NumberFilter
    volumeChange12h: NumberFilter
    volumeChange24h: NumberFilter
    volumeChange1w: NumberFilter
    trades5m: NumberFilter
    trades1h: NumberFilter
    trades4h: NumberFilter
    trades12h: NumberFilter
    trades24h: NumberFilter
    trades1w: NumberFilter
    avgTradeSizeUsd5m: NumberFilter
    avgTradeSizeUsd1h: NumberFilter
    avgTradeSizeUsd4h: NumberFilter
    avgTradeSizeUsd12h: NumberFilter
    avgTradeSizeUsd24h: NumberFilter
    avgTradeSizeUsd1w: NumberFilter
    tradesChange5m: NumberFilter
    tradesChange1h: NumberFilter
    tradesChange4h: NumberFilter
    tradesChange12h: NumberFilter
    tradesChange24h: NumberFilter
    tradesChange1w: NumberFilter
    uniqueTraders5m: NumberFilter
    uniqueTraders1h: NumberFilter
    uniqueTraders4h: NumberFilter
    uniqueTraders12h: NumberFilter
    uniqueTraders24h: NumberFilter
    uniqueTraders1w: NumberFilter
    uniqueTradersChange5m: NumberFilter
    uniqueTradersChange1h: NumberFilter
    uniqueTradersChange4h: NumberFilter
    uniqueTradersChange12h: NumberFilter
    uniqueTradersChange24h: NumberFilter
    uniqueTradersChange1w: NumberFilter
    priceCompetitiveness: NumberFilter
    volumeImbalance24h: NumberFilter
    liquidityAsymmetry: NumberFilter
    impliedProbabilitySum: NumberFilter
    maxPriceRange5m: NumberFilter
    maxPriceRange1h: NumberFilter
    maxPriceRange4h: NumberFilter
    maxPriceRange12h: NumberFilter
    maxPriceRange24h: NumberFilter
    maxPriceRange1w: NumberFilter
    outcome0: PredictionOutcomeFilters
    outcome1: PredictionOutcomeFilters
    outcomeOr: PredictionOutcomeFilters
  }

  enum PredictionMarketRankingAttribute {
    timestamp
    lastTransactionAt
    age
    createdAt
    expectedLifespan
    opensAt
    closesAt
    resolvesAt
    trendingScore5m
    trendingScore1h
    trendingScore4h
    trendingScore12h
    trendingScore24h
    trendingScore1w
    relevanceScore5m
    relevanceScore1h
    relevanceScore4h
    relevanceScore12h
    relevanceScore24h
    relevanceScore1w
    competitiveScore5m
    competitiveScore1h
    competitiveScore4h
    competitiveScore12h
    competitiveScore24h
    competitiveScore1w
    liquidityUsd
    liquidityCT
    liquidityChange5m
    liquidityChange1h
    liquidityChange4h
    liquidityChange12h
    liquidityChange24h
    liquidityChange1w
    openInterestUsd
    openInterestCT
    openInterestChange5m
    openInterestChange1h
    openInterestChange4h
    openInterestChange12h
    openInterestChange24h
    openInterestChange1w
    volumeUsd5m
    volumeUsd1h
    volumeUsd4h
    volumeUsd12h
    volumeUsd24h
    volumeUsd1w
    volumeUsdAll
    volumeCTAll
    venueVolumeUsd
    venueVolumeCT
    volumeChange5m
    volumeChange1h
    volumeChange4h
    volumeChange12h
    volumeChange24h
    volumeChange1w
    trades5m
    trades1h
    trades4h
    trades12h
    trades24h
    trades1w
    avgTradeSizeUsd5m
    avgTradeSizeUsd1h
    avgTradeSizeUsd4h
    avgTradeSizeUsd12h
    avgTradeSizeUsd24h
    avgTradeSizeUsd1w
    tradesChange5m
    tradesChange1h
    tradesChange4h
    tradesChange12h
    tradesChange24h
    tradesChange1w
    uniqueTraders5m
    uniqueTraders1h
    uniqueTraders4h
    uniqueTraders12h
    uniqueTraders24h
    uniqueTraders1w
    uniqueTradersChange5m
    uniqueTradersChange1h
    uniqueTradersChange4h
    uniqueTradersChange12h
    uniqueTradersChange24h
    uniqueTradersChange1w
    priceCompetitiveness
    volumeImbalance24h
    liquidityAsymmetry
    impliedProbabilitySum
    maxPriceRange5m
    maxPriceRange1h
    maxPriceRange4h
    maxPriceRange12h
    maxPriceRange24h
    maxPriceRange1w
    phraseScore
  }

  enum PredictionOutcomeIndex {
    outcome0
    outcome1
  }

  enum PredictionOutcomeRankingAttribute {
    bestBidUsd
    bestAskUsd
    spreadUsd
    lastPriceUsd
    bestBidCT
    bestAskCT
    spreadCT
    lastPriceCT
    liquidityUsd
    liquidityCT
    twoPercentAskDepthUsd
    twoPercentBidDepthUsd
    twoPercentAskDepthCT
    twoPercentBidDepthCT
    highPriceUsd5m
    highPriceUsd1h
    highPriceUsd4h
    highPriceUsd12h
    highPriceUsd24h
    highPriceUsd1w
    lowPriceUsd5m
    lowPriceUsd1h
    lowPriceUsd4h
    lowPriceUsd12h
    lowPriceUsd24h
    lowPriceUsd1w
    volumeUsd5m
    volumeUsd1h
    volumeUsd4h
    volumeUsd12h
    volumeUsd24h
    volumeUsd1w
    volumeChange5m
    volumeChange1h
    volumeChange4h
    volumeChange12h
    volumeChange24h
    volumeChange1w
    volumeShares5m
    volumeShares1h
    volumeShares4h
    volumeShares12h
    volumeShares24h
    volumeShares1w
    buyVolumeUsd5m
    buyVolumeUsd1h
    buyVolumeUsd4h
    buyVolumeUsd12h
    buyVolumeUsd24h
    buyVolumeUsd1w
    sellVolumeUsd5m
    sellVolumeUsd1h
    sellVolumeUsd4h
    sellVolumeUsd12h
    sellVolumeUsd24h
    sellVolumeUsd1w
    trades5m
    trades1h
    trades4h
    trades12h
    trades24h
    trades1w
    buys5m
    buys1h
    buys4h
    buys12h
    buys24h
    buys1w
    sells5m
    sells1h
    sells4h
    sells12h
    sells24h
    sells1w
    tradesChange5m
    tradesChange1h
    tradesChange4h
    tradesChange12h
    tradesChange24h
    tradesChange1w
    priceChange5m
    priceChange1h
    priceChange4h
    priceChange12h
    priceChange24h
    priceChange1w
    priceRange5m
    priceRange1h
    priceRange4h
    priceRange12h
    priceRange24h
    priceRange1w
  }

  enum RankingDirection {
    ASC
    DESC
  }

  input PredictionMarketRanking {
    attribute: PredictionMarketRankingAttribute
    outcome: PredictionOutcomeIndex
    outcomeAttribute: PredictionOutcomeRankingAttribute
    direction: RankingDirection
  }
  ```
</div>

## Example: Top markets by 24h volume

<a href="/explore" target="_blank" rel="noopener noreferrer">Test this query in the Explorer →</a>

```graphql theme={null}
{
  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
    }
  }
}
```

```json Example Response (truncated) theme={null}
{
  "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

```graphql theme={null}
{
  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

```graphql theme={null}
{
  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

```graphql theme={null}
{
  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`](/api-reference/enums/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

<AccordionGroup>
  <Accordion title="What's the difference between volumeUsd24h and volumeUsdAll?">
    `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.
  </Accordion>

  <Accordion title="Why are some outcome labels null?">
    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.
  </Accordion>

  <Accordion title="How do I track market momentum?">
    Use the change metrics like `volumeChange24h`, `liquidityChange24h`, and `uniqueTradersChange24h`. Positive values indicate growth. Combine with `trendingScore` for markets with accelerating activity.
  </Accordion>
</AccordionGroup>

### Related Recipes

* [Discover Prediction Markets](/recipes/predictions/discover-markets): Build filterable, sortable discovery pages for events and markets
* [Prediction Event Dashboard](/recipes/predictions/event-dashboard): Use market pricing to populate an event detail page
* [Prediction Charts](/recipes/predictions/charts): Render outcome probability charts and multi-market comparisons
