Skip to main content
GET
/
api
/
router
/
fetchEventMatches
Python
import pmxt

# API key required — queries the cross-venue catalog
exchange = pmxt.Router(
    pmxt_api_key="YOUR_PMXT_API_KEY",
)
result = exchange.fetch_event_matches(event_id="12345")
{
  "success": true,
  "error": {
    "message": "<string>"
  },
  "data": [
    {
      "event": {
        "id": "<string>",
        "title": "<string>",
        "description": "<string>",
        "slug": "<string>",
        "markets": [
          {
            "marketId": "<string>",
            "title": "<string>",
            "description": "<string>",
            "outcomes": [
              {
                "outcomeId": "<string>",
                "label": "<string>",
                "price": 123,
                "marketId": "<string>",
                "priceChange24h": 123,
                "metadata": {}
              }
            ],
            "resolutionDate": "2023-11-07T05:31:56Z",
            "volume24h": 123,
            "liquidity": 123,
            "url": "<string>",
            "eventId": "<string>",
            "slug": "<string>",
            "volume": 123,
            "openInterest": 123,
            "image": "<string>",
            "category": "<string>",
            "tags": [
              "<string>"
            ],
            "tickSize": 123,
            "status": "<string>",
            "contractAddress": "<string>",
            "sourceExchange": "<string>",
            "yes": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "no": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "up": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "down": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            }
          }
        ],
        "volume24h": 123,
        "url": "<string>",
        "volume": 123,
        "image": "<string>",
        "category": "<string>",
        "tags": [
          "<string>"
        ],
        "sourceExchange": "<string>"
      },
      "marketMatches": [
        {
          "market": {
            "marketId": "<string>",
            "title": "<string>",
            "description": "<string>",
            "outcomes": [
              {
                "outcomeId": "<string>",
                "label": "<string>",
                "price": 123,
                "marketId": "<string>",
                "priceChange24h": 123,
                "metadata": {}
              }
            ],
            "resolutionDate": "2023-11-07T05:31:56Z",
            "volume24h": 123,
            "liquidity": 123,
            "url": "<string>",
            "eventId": "<string>",
            "slug": "<string>",
            "volume": 123,
            "openInterest": 123,
            "image": "<string>",
            "category": "<string>",
            "tags": [
              "<string>"
            ],
            "tickSize": 123,
            "status": "<string>",
            "contractAddress": "<string>",
            "sourceExchange": "<string>",
            "yes": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "no": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "up": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "down": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            }
          },
          "relation": "identity",
          "confidence": 123,
          "reasoning": "<string>",
          "bestBid": 123,
          "bestAsk": 123,
          "sourceMarket": {
            "marketId": "<string>",
            "title": "<string>",
            "description": "<string>",
            "outcomes": [
              {
                "outcomeId": "<string>",
                "label": "<string>",
                "price": 123,
                "marketId": "<string>",
                "priceChange24h": 123,
                "metadata": {}
              }
            ],
            "resolutionDate": "2023-11-07T05:31:56Z",
            "volume24h": 123,
            "liquidity": 123,
            "url": "<string>",
            "eventId": "<string>",
            "slug": "<string>",
            "volume": 123,
            "openInterest": 123,
            "image": "<string>",
            "category": "<string>",
            "tags": [
              "<string>"
            ],
            "tickSize": 123,
            "status": "<string>",
            "contractAddress": "<string>",
            "sourceExchange": "<string>",
            "yes": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "no": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "up": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            },
            "down": {
              "outcomeId": "<string>",
              "label": "<string>",
              "price": 123,
              "marketId": "<string>",
              "priceChange24h": 123,
              "metadata": {}
            }
          }
        }
      ]
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://pmxt.dev/docs/llms.txt

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

Use cases

Find the same event on other venues

Fetch an event from Polymarket, then find it on every other venue:
import pmxt

# Step 1: Get an event from any venue
poly = pmxt.Polymarket()
event = poly.fetch_event(slug="presidential-election-winner-2028")

# Step 2: Find matches across all other venues (requires API key)
router = pmxt.Router(pmxt_api_key="YOUR_PMXT_API_KEY")
matches = router.fetch_event_matches(event=event)

for match in matches:
    print(f"{match.event.source_exchange}: {match.event.title} ({len(match.market_matches)} market matches)")

Look up by event ID

If you already have an event ID, pass it directly:
import pmxt

router = pmxt.Router(pmxt_api_key="YOUR_PMXT_API_KEY")
matches = router.fetch_event_matches(event_id="a49db286-39ca-4119-9de5-1335a92ef92a")

for match in matches:
    print(f"{match.event.source_exchange}: {match.event.title}")

Browse all matched events

List all cross-venue event matches in the catalog:
import pmxt

router = pmxt.Router(pmxt_api_key="YOUR_PMXT_API_KEY")
matches = router.fetch_event_matches()

for match in matches:
    print(match.event.title)
    print(f"  {match.event.source_exchange}: {match.event.url}")
    seen = set()
    for m in match.market_matches:
        venue = m.market.source_exchange
        if venue not in seen:
            seen.add(venue)
            print(f"  {venue}: {m.market.url}")

# Will Jesus Christ return before 2027?
#   polymarket: https://polymarket.com/event/will-jesus-christ-return-before-2027
#   probable:   https://probable.markets/event/will-jesus-christ-return-before-2027
#
# FL-27 House Election Winner
#   polymarket: https://polymarket.com/event/fl-27-house-election-winner
#   kalshi:     https://kalshi.com/events/KXHOUSERACE-FL27-26

Authorizations

Authorization
string
header
required

Required when calling the hosted API directly (curl, requests, fetch). SDK users pass credentials via constructor params instead.

Query Parameters

query
string

Keyword search across matched event titles.

category
string

Filter matches by category.

event
object

Pass a UnifiedEvent directly instead of eventId/slug. A grouped collection of related markets (e.g., "Who will be Fed Chair?" contains multiple candidate markets).

eventId
string

Lookup a specific event by ID. Omit for browse mode.

slug
string
relation
enum<string>
Available options:
identity,
subset,
superset,
overlap,
disjoint
minConfidence
number
limit
number
includePrices
boolean

Response

200 - application/json

Event Matches response

success
boolean
Example:

true

error
object
data
object[]