Skip to main content
PMXT normalizes every supported venue to the same three-level shape:
Every response — from the local server, from the hosted Router, or from a hosted venue pass-through — uses the same field names. Write your client once, switch venues with a config change.
PMXT serves reads from a cached Postgres catalog for speed (~10 ms), or passes through live to the venue for freshness. The SDK chooses per-method based on whether the catalog can safely answer; the response envelope is identical either way.

UnifiedMarket

FieldTypeNotes
marketIdstringSource-scoped market id; hosted catalog rows use PMXT UUIDs, while venue clients may use venue-native ids.
eventIdstring | nullParent event, if any.
titlestringHuman-readable market question.
slugstring | nullVenue-native slug, when available.
descriptionstring | nullLong-form resolution criteria.
urlstring | nullCanonical venue URL for the market.
imagestring | nullVenue-hosted image.
categorystring | nullNormalized category (e.g. Sports, Politics).
tagsstring[] | nullFree-form tags from the venue.
volumenumberAll-time volume, in USD (or venue base unit).
volume24hnumberTrailing-24h volume.
liquiditynumberDepth metric — venue-specific, compared like-for-like.
resolutionDatestring | nullISO 8601, UTC.
tickSizenumber | nullMinimum price increment, when the venue exposes one.
statusstring | nullVenue status — active, closed, resolved, …
contractAddressstring | nullOn-chain address, when the venue is on-chain.
outcomesUnifiedOutcome[]See below.

UnifiedOutcome

FieldTypeNotes
outcomeIdstringSource-scoped outcome id; hosted catalog rows use PMXT UUIDs, while venue clients use venue-native trading ids.
marketIdstringBack-reference to the parent market.
labelstringDisplay label (e.g. Yes, No, Donald Trump).
pricenumberLast price, 0–1 for binary venues.
priceChange24hnumberAbsolute change vs 24h ago.
metadataobjectVenue-specific fields (e.g. clobTokenId).
Identifier semantics are source-aware: Router and hosted catalog rows use stable PMXT UUIDs for marketId and outcomeId. Venue clients and local pass-throughs may use venue-native identifiers. Do not assume every marketId / outcomeId is a UUID or every outcome id is venue-native. See Catalog UUID vs Venue ID when crossing between Router results, hosted trading, and venue-direct clients.

UnifiedEvent

FieldTypeNotes
idstringStable PMXT event id.
titlestringEvent title.
slugstring | null
descriptionstring | null
categorystring | null
tagsstring[] | null
volumenumber
volume24hnumber
urlstring | null
imagestring | null
marketsUnifiedMarket[]Child markets. Nested on every event response — no second fetch needed.
Fields that a specific venue doesn’t expose come back as null. That’s intentional — null always means “venue has no value for this field”, never “PMXT failed to populate it”.

Where the shape is defined

The canonical definition lives in core/src/types.ts in the pmxt repo, and every SDK client (TypeScript and Python) mirrors it. The OpenAPI reference is generated from the same source on every pmxt-core release.