Skip to main content
GET
/
api
/
{exchange}
/
fetchEvent
import pmxt

# API key optional — enables faster catalog-backed lookups
exchange = pmxt.Polymarket(
    pmxt_api_key="YOUR_PMXT_API_KEY",
)
result = exchange.fetch_event(event_id="12345")
{
  "success": true,
  "error": {
    "message": "<string>"
  },
  "data": {
    "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>",
        "sourceMetadata": {},
        "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>"
    ],
    "sourceMetadata": {},
    "sourceExchange": "<string>"
  }
}

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.

Faster with an API key — With a PMXT API key this endpoint is served from an indexed catalog (~10 ms) instead of proxying to the venue (~500 ms). No code changes required — same request, same response, just faster. Learn more.

Use cases

Look up by slug

Slugs are the most reliable way to look up a specific event — they are human-readable, stable, and easy to share or store in config:
import pmxt

# Optional: pass pmxt_api_key for ~100x faster catalog-backed lookups
api = pmxt.Polymarket()
event = api.fetch_event(slug="presidential-election-winner-2028")
print(event.title, event.volume_24h)

Look up by event ID

When you already have an event ID from a previous API call or webhook, use eventId for a direct lookup:
import pmxt

api = pmxt.Polymarket()
event = api.fetch_event(event_id="a49db286-39ca-4119-9de5-1335a92ef92a")
print(event.title, event.url)

Access markets within an event

Each event contains a markets array with full market details including outcomes and prices. This is useful for building dashboards or comparing outcomes across an event’s markets:
import pmxt

api = pmxt.Limitless()
event = api.fetch_event(slug="presidential-election-winner-2028-1769010522121")

for market in event.markets:
    print(f"{market.title}: {market.outcomes[1].price:.0%}")

Path Parameters

exchange
enum<string>
required

The prediction market exchange to target.

Available options:
polymarket,
kalshi,
kalshi-demo,
limitless,
probable,
baozi,
myriad,
opinion,
metaculus,
smarkets,
polymarket_us,
gemini-titan,
hyperliquid,
suibets,
mock,
router

Query Parameters

query
string

For keyword search

limit
number

Maximum number of results to return

cursor
string

Opaque venue pagination cursor, where supported.

offset
number

Pagination offset — number of results to skip

sort
enum<string>

Sort order for results

Available options:
volume,
liquidity,
newest
status
enum<string>

Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)

Available options:
active,
inactive,
closed,
all
searchIn
enum<string>

Where to search (default: 'title')

Available options:
title,
description,
both
eventId
string

Direct lookup by event ID

slug
string

Lookup by event slug

series
string

Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi "KXATPMATCH", Polymarket "wta"). Passed through to the vendor where supported, otherwise applied to sourceMetadata after fetch.

filter
object

Optional client-side filter applied after fetching

category
string

Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi).

tags
string[]

Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump".

Response

200 - application/json

Fetch Event response

success
boolean
Example:

true

error
object
data
object

A grouped collection of related markets (e.g., "Who will be Fed Chair?" contains multiple candidate markets).