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": {}
}
}
}
]
}
]
}Find the same or related event on other venues. Two modes: Lookup mode (eventId/slug provided): Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests. Browse mode (no identifier): Returns all matched event pairs from the catalog. Supports query and category params for filtering.
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.
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)")
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}")
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
Required when calling the hosted API directly (curl, requests, fetch). SDK users pass credentials via constructor params instead.
Keyword search across matched event titles.
Filter matches by category.
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).
Show child attributes
Lookup a specific event by ID. Omit for browse mode.
identity, subset, superset, overlap, disjoint Was this page helpful?