Skip to content

Releases: pmxt-dev/pmxt

v2.48.1

30 May 14:06
8b9f7ed

Choose a tag to compare

Fixed

  • Server: POST /api/<exchange>/<method> now tolerates flat-body requests like {"slug":"wta"} in addition to the existing {"args":[{"slug":"wta"}]} envelope. Previously, flat bodies caused all filter parameters to be silently dropped (the method was invoked with no arguments). The Python and TypeScript SDKs were not affected — they always wrap params in args — but raw curl callers and documentation examples hit this. Empty bodies still behave as args:[].

Installation

npm:

npm install pmxtjs@2.48.1
npm install -g @pmxt/cli@2.48.1

PyPI:

pip install pmxt==2.48.1

Links

What's Changed

  • fix: tolerate flat POST bodies (treat as positional args[0]) by @realfishsam in #767

Full Changelog: v2.48.0f...v2.48.1f

v2.48.0

30 May 13:36
a0b3f78

Choose a tag to compare

Added

  • Core: New UnifiedSeries type representing recurring event groupings — the fourth tier above Event -> Market -> Outcome. Examples: Kalshi KXATPMATCH (every ATP match), Polymarket wta (every WTA match).
  • Core: fetchSeries(params?) method on BaseExchange with vendor implementations for Kalshi (GetSeriesList), Polymarket and Polymarket US (Gamma /series + /series/{id}), Opinion (emulated from raw collection field), and Gemini-Titan (emulated from raw series field). Venues without a series concept return [] and report has.fetchSeries: false.
  • Core: New series?: string parameter on fetchEvents for filtering by venue-native series id / ticker / slug. Passes through to vendor APIs where supported (Kalshi ?series_ticker=, Polymarket Gamma ?series_id=); venues without one return [] rather than silently ignore the filter.
  • Core: Router.fetchSeries() and Router.fetchEvents({series}) for cross-venue queries by normalized PMXT series id (e.g. tennis-atp-match, nfl, crypto-btc-15m). Backed by a curated venue-id map at core/src/router/series-map.ts covering tennis, American sports, soccer, esports, and crypto.
  • Core: ExchangeHas.fetchSeries capability flag.

Installation

npm:

npm install pmxtjs@2.48.0
npm install -g @pmxt/cli@2.48.0

PyPI:

pip install pmxt==2.48.0

Links

What's Changed

  • feat: UnifiedSeries — fetchSeries across venues, Router cross-venue series, both SDKs by @realfishsam in #766

Full Changelog: v2.47.0f...v2.48.0f

v2.47.0

30 May 12:21
3e59bc3

Choose a tag to compare

Added

  • Core: Optional sourceMetadata field on UnifiedEvent and UnifiedMarket (Record<string, unknown>) — captures venue-specific raw fields that are not promoted to first-class unified columns. Populated by every exchange normalizer (Kalshi, Polymarket, Polymarket US, Limitless, Smarkets, Opinion, Myriad, Probable, Metaculus, Baozi, Gemini-Titan, Hyperliquid, SuiBets) via a shared buildSourceMetadata helper at core/src/utils/metadata.ts. Includes recurring-series identifiers where the venue exposes them (Kalshi series_ticker/series_title, Polymarket series/seriesSlug when present, Opinion collection, Gemini-Titan series).

Installation

npm:

npm install pmxtjs@2.47.0
npm install -g @pmxt/cli@2.47.0

PyPI:

pip install pmxt==2.47.0

Links

What's Changed

  • feat: add sourceMetadata to UnifiedEvent and UnifiedMarket by @realfishsam in #765

Full Changelog: v2.46.14f...v2.47.0f

v2.46.14

26 May 15:24

Choose a tag to compare

Fixed

  • Docs: Simplify the raw WebSocket Python example for watchAllOrderBooks() to use the hosted PMXT URL directly and drop the local relay override from that section.

Installation

npm:

npm install pmxtjs@2.46.14
npm install -g @pmxt/cli@2.46.14

PyPI:

pip install pmxt==2.46.14

Links

Full Changelog: v2.46.13f...v2.46.14f

v2.46.13

26 May 15:10

Choose a tag to compare

Fixed

  • Docs: Replace the raw WebSocket curl examples for watchAllOrderBooks() with a direct Python WebSocket example for non-SDK users.

Installation

npm:

npm install pmxtjs@2.46.13
npm install -g @pmxt/cli@2.46.13

PyPI:

pip install pmxt==2.46.13

Links

Full Changelog: v2.46.12f...v2.46.13f

v2.46.12

26 May 14:59

Choose a tag to compare

Fixed

  • Release: Recover npm package publishing after repeated provenance/transparency-log failures left registry versions split across 2.46.9 and 2.46.10.

Installation

npm:

npm install pmxtjs@2.46.12
npm install -g @pmxt/cli@2.46.12

PyPI:

pip install pmxt==2.46.12

Links

Full Changelog: v2.46.9f...v2.46.12f

v2.46.9

26 May 14:32

Choose a tag to compare

Fixed

  • Docs: Make raw watchAllOrderBooks() WebSocket usage actionable with runnable curl examples, a raw Python WebSocket example for direct ws:// / wss:// connections, and clearer wire protocol guidance for non-SDK clients.

Installation

npm:

npm install pmxtjs@2.46.9
npm install -g @pmxt/cli@2.46.9

PyPI:

pip install pmxt==2.46.9

Links

Full Changelog: v2.46.8f...v2.46.9f

v2.46.8

26 May 14:23

Choose a tag to compare

Fixed

  • Docs: Use "local server" terminology consistently across the docs, including generated llms.txt docs and WebSocket/server management pages.

Installation

npm:

npm install pmxtjs@2.46.8
npm install -g @pmxt/cli@2.46.8

PyPI:

pip install pmxt==2.46.8

Links

Full Changelog: v2.46.7f...v2.46.8f

v2.46.7

26 May 14:13

Choose a tag to compare

Fixed

  • Docs: Add raw curl WebSocket examples for watchAllOrderBooks(), including all-venue and single-venue subscription payloads, local relay URL shape, and the curl version requirement for sending WebSocket frames from stdin.

Installation

npm:

npm install pmxtjs@2.46.7
npm install -g @pmxt/cli@2.46.7

PyPI:

pip install pmxt==2.46.7

Links

Full Changelog: v2.46.6f...v2.46.7f

v2.46.6

26 May 13:57

Choose a tag to compare

Fixed

  • Docs: Clarify watchAllOrderBooks() venue defaults. SDK Router examples now show all-venue streams, venue-client examples show single-venue defaults, and raw WebSocket examples remain explicit about omitting args for all venues.

Installation

npm:

npm install pmxtjs@2.46.6
npm install -g @pmxt/cli@2.46.6

PyPI:

pip install pmxt==2.46.6

Links

Full Changelog: v2.46.5f...v2.46.6f