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 event clusters when the thing you care about has multiple child markets. PMXT groups matched events across venues, then returns the markets attached to each event so you can inspect the full cross-venue structure in one response. You can anchor the lookup to an event you already have, or omit the anchor fields to browse event clusters across the catalog.

fetchMatchedEventClusters

import pmxt

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

clusters = router.fetch_matched_event_clusters(
    slug="2026-nba-champion",
    relation="identity",
    min_confidence=0.8,
    venues=["polymarket", "kalshi"],
    include_raw_matches=True,
    limit=5,
)

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

    for event in cluster.events:
        print(f"  {event.source_exchange}: {event.title}")
        for market in event.markets[:3]:
            print(f"    - {market.title}")

Passing an existing event

If the event came from fetchEvents, pass it directly.
events = router.fetch_events(query="2026 NBA Champion", limit=1)
clusters = router.fetch_matched_event_clusters(events[0])

Browsing clusters

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

Parameters

ParameterTypeDefaultNotes
eventIdstring-Anchor to a PMXT event ID.
slugstring-Anchor to an event slug.
urlstring-Anchor to a venue event 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": "ecl_3e7b1534e6235f9e",
  "canonicalTitle": "2026 NBA Champion",
  "category": "Sports",
  "relations": ["identity"],
  "confidence": 0.97,
  "volume24h": 1487365.42,
  "events": [
    {
      "id": "poly_event_...",
      "sourceExchange": "polymarket",
      "title": "2026 NBA Champion",
      "markets": [
        {
          "marketId": "pm_knicks_...",
          "title": "2026 NBA Champion - Will the New York Knicks win the 2026 NBA Finals?",
          "outcomes": [
            { "outcomeId": "pm_knicks_yes", "label": "Yes", "price": 0.23 },
            { "outcomeId": "pm_knicks_no", "label": "No", "price": 0.77 }
          ]
        }
      ]
    },
    {
      "id": "kalshi_event_...",
      "sourceExchange": "kalshi",
      "title": "2026 Pro Basketball Finals",
      "markets": [
        {
          "marketId": "kalshi_knicks_...",
          "title": "Will New York win the 2026 Pro Basketball Finals?",
          "outcomes": [
            { "outcomeId": "KXNBA-26-NYK", "label": "Yes", "price": 0.22 },
            { "outcomeId": "KXNBA-26-NYK-NO", "label": "No", "price": 0.78 }
          ]
        }
      ]
    }
  ],
  "rawMatches": [
    {
      "eventAId": "poly_event_...",
      "eventBId": "kalshi_event_...",
      "marketAId": "pm_knicks_...",
      "marketBId": "kalshi_knicks_...",
      "relation": "identity",
      "confidence": 0.97
    }
  ]
}

When To Use Event Clusters

You haveUse
A single tradeable questionFind Similar Markets
A parent event with many child marketsFind Similar Events
Event clusters are the better default when venues structure the same topic differently. For example, one venue may expose a single event with many team markets while another exposes each team as its own market under a differently named event.