# PMXT

CCXT-shaped client for prediction markets, with a hosted API and a self-hosted mode.

*https://predictionmarkets.tools/tools/pmxt · Trading Clients, SDKs & Bots*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | PMXT |
| Category | Trading Clients, SDKs & Bots |
| Job | sdk |
| Website | https://github.com/pmxt-dev/pmxt |
| Pricing model | subscription |
| Free tier | true |
| Open source | true |
| Licence | MIT |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-21 |

### Pricing

| Tier | USD | Period |
| --- | --- | --- |
| Free | 0 USD | — |
| Starter | 29.99 USD | — |
| Pro | 99.99 USD | — |

### Availability

| Field | Value |
| --- | --- |
| Jurisdictions | global |
| Open to US persons | true |
| KYC required | false |

### Markets

| Field | Value |
| --- | --- |
| Settlement | crypto |
| Resolved by | none |

### Economics

| Field | Value |
| --- | --- |
| Taker fee | none |
| Maker fee | none |
| Liquidity model | clob |
| Platforms | library, cli |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | true |
| WebSocket | true |
| Scripting | none |
| Python | true |
| MCP server | true |
| Export | json |

### Capabilities

Yes: order_book, automation, live_trading, portfolio_tracking, cross_venue

No: charting, screening, backtesting, paper_trading, calibration_scoring, alerts, news, tax_reporting

*Verified: pricing 2026-09-19; availability 2026-09-19; capabilities 2026-09-19.*

## What it is

A unified client for prediction markets shaped deliberately like [ccxt](https://predictionmarkets.tools/tools/ccxt) - its README
describes itself as "the ccxt for prediction markets" - with one interface over many venues,
Python and TypeScript SDKs, a CLI, an MCP server and a hosted API behind them. MIT-licensed,
created in January 2026, 2,157 stars.

The supported-venue row in the README lists Polymarket, Polymarket US, Kalshi, Limitless,
Probable, Baozi, Myriad, Opinion, Metaculus, Smarkets, Hyperliquid, Gemini Titan, SuiBets, Rain
and Hunch. That is a wider net than anything else in this catalogue casts, and the width is the
point: `fetch_markets`, `fetch_positions`, `fetch_balance` and `create_order` are the same calls
whichever venue you construct.

There are two ways to run it, and they are different products wearing one name.

- **Hosted.** `pip install pmxt` or `npm i pmxtjs`, a `pmxt_api_key` from the PMXT dashboard, and
  your calls go through PMXT's infrastructure - which is also what sells the subscription: deep
  historical data, cross-exchange market matching, order book snapshots, and a smart order router
  the site says picks the best price across venues.
- **Self-hosted.** `pip install pmxt-core` or `npm install pmxt-core`, construct a venue client
  with no PMXT key, and the SDK spawns a local service that talks to venue APIs directly with your
  own venue credentials. The documentation's sentence for this mode is that venue credentials stay
  on your machine.

## Availability

Nothing here is geographically gated by PMXT that we could find: the package installs anywhere,
the free hosted tier needs an email and a key rather than an identity check, and the restrictions
that bite are the venues' own - Limitless declines US order placement, Kalshi and Polymarket US
want a verified account. The card's flags describe the client, not the venues behind it.

One term is worth reading off the pricing page rather than guessing at: **all plans are for
personal use only**, with enterprise access on request. That is on the page in those words, and it
is the sort of clause a team discovers after building on the free tier.

## Pricing

The library is free and MIT. The hosted Data API is a subscription, and the figures below were
read off the pricing page on 2026-09-19 with the monthly toggle selected; an annual toggle takes
20% off.

- **Free** - $0, 25,000 credits a month, 60 requests a minute, 5 WebSocket streams.
- **Starter** - $29.99 a month, 250,000 credits, 300 requests a minute, 20 streams.
- **Pro** - $99.99 a month, 1,000,000 credits, 1,000 requests a minute, 100 streams.

One REST call costs one credit and one WebSocket message costs 0.1, which is the number that
decides whether a streaming strategy fits a tier: a book that ticks ten times a second exhausts
the free month in about seven hours of streaming.

Trading fees are not PMXT's. Each fill is charged by whichever venue executed it.

## Markets & resolution

PMXT resolves nothing and settles nothing; it routes to venues that do, and the answer differs per
venue - a Polymarket position settles in USDC on Polygon against an on-chain oracle, a Kalshi
position settles in dollars against the exchange. The card carries `crypto` because the venues it
can currently write to are the on-chain ones.

The abstraction is where the risk is. A unified market model has to flatten events, markets and
outcomes across fifteen venues that disagree about all three, and what reaches your code is PMXT's
translation. The README's own hierarchy - event, market, outcome - is the shape everything is bent
into, and a venue that does not fit it fits it anyway.

## Integrations

Python (`pmxt`), TypeScript (`pmxtjs`), a CLI (`@pmxt/cli`), an MCP server (`@pmxt/mcp`) for
Claude, Cursor and other agent clients, and copy-paste React trading widgets advertised on the
site. Credentials in self-hosted mode are the venue-native ones: a Polygon private key and
optional proxy address with a signature type for Polymarket, an API key plus RSA private key for
Kalshi, an API key plus an EIP-712 signing key for Limitless.

There is also a `dome-to-pmxt` codemod that rewrites calls from the Dome API, which tells you who
PMXT thinks it is competing with.

## Limitations

**It stopped shipping in July.** 322 releases on PyPI between 2026-01-03 and 2026-07-18, then
nothing; the last commit on `main` is the same day. For a library whose whole job is to track
fifteen moving APIs, two months of silence is the most important fact on this card. It is not
archived and the issue tracker is open - but see the next paragraph for what that tracker looks
like.

**1,236 open issues and 77 open pull requests**, counted through the GitHub search API on
2026-09-19 with `is:issue is:open` rather than the REST field, which would have added the pull
requests together with them. That is an extraordinary number for a repository eight months old,
and whatever it is - automation, a flood of small reports, a backlog nobody triaged - it means the
tracker cannot tell you whether your problem is known.

**Hosted is the default path, and the default path has a key in it.** The quickstart puts a
`pmxt_api_key` and a `private_key` in the same constructor. The hosted-trading documentation does
now set out the split that makes the claim coherent - the SDK signs the typed-data payload locally
and that step never leaves your process, and `pmxt_api_key` is described as a service-role
credential that can read hosted data and forward signed orders but cannot move funds on its own.
What remains is that this is the vendor describing its own design: the page states the contracts
are **unaudited as of 2026-06-09**, with an audit report to be linked when one exists. Self-hosted
mode is where you stop taking it on description. Re-read on 21 September 2026.

**Writes are narrower than reads.** Hosted trading covers Polymarket, Opinion and Limitless;
Kalshi writes need self-hosting. A card that says fifteen venues is telling you about data.

**Nothing here has been run by us**, including the self-hosted path, the credit accounting and the
smart order router.

## Alternatives

[ccxt](https://predictionmarkets.tools/tools/ccxt) is the older, larger and far more heavily used abstraction, with a prediction
namespace covering seven venues and a weekly release rhythm - less coverage of this niche, much
more evidence of being maintained.

For one venue done properly, the official SDKs are narrower and usually more current:
[polymarket-client](https://predictionmarkets.tools/tools/polymarket-client),
[polymarket-us-python](https://predictionmarkets.tools/tools/polymarket-us-python),
[kalshi-python-sync](https://predictionmarkets.tools/tools/kalshi-python-sync) and [limitless-sdk](https://predictionmarkets.tools/tools/limitless-sdk).

If what you want is data rather than trading, [adjacent](https://predictionmarkets.tools/tools/adjacent) and
[finfeedapi](https://predictionmarkets.tools/tools/finfeedapi) sell cross-venue feeds without asking for a signing key at all.

## FAQ

### Do I have to use PMXT's hosted service?

No. Installing pmxt-core and constructing a venue client without a PMXT API key spawns a local service and talks to the venues directly. The documentation says venue credentials stay on your machine in that mode. The hosted path is the default in the quickstart, and it needs a key from PMXT's dashboard.

### Does PMXT see my private key in hosted mode?

No, on the vendor's account. The hosted-trading page documents a build-sign-submit split in which the SDK signs locally and that step never leaves your process, and describes pmxt_api_key as a service-role credential that cannot move funds by itself. That is the design as described rather than as audited - the same page says the contracts are unaudited as of 9 June 2026 - so if the answer matters, read the source or self-host.

### Which venues can it actually trade on?

Fewer than it can read. The README says hosted writes cover Polymarket, Opinion and Limitless today, and points you at self-hosting for venue-native writes such as Kalshi. Everything else in the supported list is read access.

### Has it stopped shipping?

It has paused, at least. After 322 PyPI releases between January and July 2026, the last one - 2.54.0 - and the last commit on the main branch are both dated 2026-07-18. Check the feeds before depending on it.

## Background

- [Where your key lives when software trades for you](https://predictionmarkets.tools/guides/where-your-key-lives.md) — Four different credentials are all called a key, and they differ in what a copy permits. What the clients in this catalogue ask for, and what to ask them back.

- [Why the same contract costs two different prices on two venues](https://predictionmarkets.tools/guides/why-the-same-contract-costs-two-prices.md) — Two venues quoting one outcome are quoting two contracts. What the gap between the prices is made of - rules, fallbacks, fees, collateral, exits, eligibility.
- [What running a bot does not solve](https://predictionmarkets.tools/guides/what-a-bot-cannot-fix.md) — A bot fixes speed and consistency. Rate limits, a missing rehearsal, a field that stops arriving, a partial fill and a paused market are not coding problems.

## Also worth comparing

- [CCXT](https://predictionmarkets.tools/tools/ccxt.md) — One client for seven prediction venues, inside a 104-exchange crypto library.
- [limitless-sdk](https://predictionmarkets.tools/tools/limitless-sdk.md) — Limitless Exchange's own async Python SDK - CLOB and NegRisk orders, WebSocket, MIT.
- [polymarket-client](https://predictionmarkets.tools/tools/polymarket-client.md) — Polymarket's own unified Python SDK - sync and async, data through order signing.
- [py-clob-client](https://predictionmarkets.tools/tools/py-clob-client.md) — Polymarket's own Python CLOB client - archived, and declared non-functional by its README.
- [Kalshi Python SDK (sync and async)](https://predictionmarkets.tools/tools/kalshi-python-sync.md) — Kalshi's current official Python client - weekly releases, Python 3.13 only, no source.
- [kalshi-python](https://predictionmarkets.tools/tools/kalshi-python.md) — Kalshi's own generated Python client - closed-source, and unreleased since September 2025.

## Named as a replacement for

- [Fireplace](https://predictionmarkets.tools/alternatives/fireplace.md)
- [Metaforecast](https://predictionmarkets.tools/alternatives/metaforecast.md)
