Skip to main content

Documentation Index

Fetch the complete documentation index at: https://pmxt-feat-series-api.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Use market clusters when you want the same tradeable question across venues. A cluster contains every matched market PMXT currently knows about for that question, plus the pairwise relations used to connect the cluster. You can anchor the lookup to a market you already have, or omit the anchor fields to browse clusters across the catalog.

fetchMatchedMarketClusters

import pmxt

router = pmxt.Router(pmxt_api_key="pmxt_live_...")

clusters = router.fetch_matched_market_clusters(
    slug="will-satoshi-move-any-bitcoin-in-2026",
    relation="identity",
    min_confidence=0.8,
    venues=["polymarket", "kalshi", "probable"],
    include_raw_matches=True,
    limit=5,
)

for cluster in clusters:
    print(cluster.cluster_id, cluster.confidence, cluster.canonical_title)

    for market in cluster.markets:
        print(f"  {market.source_exchange}: {market.title}")
        print(f"    market_id={market.market_id}")

    for edge in cluster.raw_matches or []:
        print(f"  edge: {edge['relation']} confidence={edge['confidence']}")

Passing an existing market

If the market came from fetchMarkets, pass it directly.
markets = router.fetch_markets(query="Satoshi Bitcoin 2026", limit=1)
clusters = router.fetch_matched_market_clusters(markets[0])

Browsing clusters

Omit marketId, slug, and url to browse the highest-volume matched clusters.
clusters = router.fetch_matched_market_clusters(
    sort="volume",
    min_venues=2,
    limit=25,
)

Parameters

ParameterTypeDefaultNotes
marketIdstring-Anchor to a PMXT market ID.
slugstring-Anchor to a market slug.
urlstring-Anchor to a venue market URL.
relationstring-Filter to one relation type.
relationsstring or string[]-Filter to multiple relation types.
minConfidence / min_confidencenumber0Minimum cluster edge confidence, from 0 to 1.
venuesstring or string[]-Only include clusters touching these venues.
excludeVenues / exclude_venuesstring or string[]-Exclude clusters touching these venues.
minVenues / min_venuesinteger-Require at least this many venues in a cluster.
withOrderbook / with_orderbookbooleanfalseRequire live orderbook coverage on matched edges.
includeRawMatches / include_raw_matchesbooleanfalseInclude pairwise edges used to build the cluster.
updatedSince / updated_sincedatetime-Only include matches updated after this time.
sort"volume" or "confidence""volume"Cluster sort order.
limitinteger50Maximum clusters to return.
offsetinteger0Pagination offset.
edgeLimit / edge_limitinteger-Maximum pairwise edges to scan before clustering.

Response shape

{
  "clusterId": "mcl_706533a07496a4eb",
  "canonicalTitle": "Will Satoshi move any Bitcoin in 2026?",
  "category": "Crypto",
  "relations": ["identity"],
  "confidence": 1,
  "volume24h": 42310.15,
  "markets": [
    {
      "marketId": "pm_...",
      "sourceExchange": "polymarket",
      "title": "Will Satoshi move any Bitcoin in 2026?",
      "slug": "will-satoshi-move-any-bitcoin-in-2026",
      "outcomes": [
        { "outcomeId": "pm_yes", "label": "Yes", "price": 0.24 },
        { "outcomeId": "pm_no", "label": "No", "price": 0.76 }
      ]
    },
    {
      "marketId": "kalshi_...",
      "sourceExchange": "kalshi",
      "title": "Will Satoshi move Bitcoin in 2026?",
      "outcomes": [
        { "outcomeId": "KXSATOSHI-26", "label": "Yes", "price": 0.25 },
        { "outcomeId": "KXSATOSHI-26-NO", "label": "No", "price": 0.75 }
      ]
    }
  ],
  "rawMatches": [
    {
      "marketAId": "pm_...",
      "marketBId": "kalshi_...",
      "relation": "identity",
      "confidence": 1
    }
  ]
}

Relation Types

Every edge in a cluster is classified into one of five set-theoretic relations describing how two markets’ resolution conditions relate.
RelationMeaningExample
identitySame resolution condition.”BTC > $100k by Dec 31” on Polymarket and Kalshi.
subsetA resolving YES implies the other resolves YES, not vice versa.”Democrats win presidency” is narrower than “Democrats win popular vote”.
supersetThe reverse of subset.”Democrats win popular vote” is broader than “Democrats win presidency”.
overlapRelated, but neither condition implies the other.”Fed cuts in June” and “Fed cuts twice in 2026”.
disjointCannot both resolve YES.Two mutually exclusive candidates winning the same office.
To match an entire event and see the corresponding child markets, use Find Similar Events.