The ccxt for prediction markets. A unified API for accessing prediction market data across multiple exchanges.
Different prediction market platforms have different APIs, data formats, and conventions. pmxt provides a single, consistent interface to work with all of them.
pip install pmxtnpm install pmxtjsPrediction markets are structured in a hierarchy to group related information.
- Event: The broad topic (e.g., "Who will Trump nominate as Fed Chair?")
- Market: A specific tradeable question (e.g., "Will Trump nominate Kevin Warsh as the next Fed Chair?")
- Outcome: The actual share you buy (e.g., "Yes" or "No")
import pmxt
api = pmxt.Polymarket()
# 1. Search for the broad Event
events = api.search_events('Who will Trump nominate as Fed Chair?')
fed_event = events[0]
# 2. Search for the specific Market within that event
warsh = fed_event.search_markets('Kevin Warsh')[0]
print(f"Price: {warsh.yes.price}")import pmxt from 'pmxtjs';
const api = new pmxt.Polymarket();
// 1. Search for the broad Event
const events = await api.searchEvents('Who will Trump nominate as Fed Chair?');
const fedEvent = events[0];
// 2. Search for the specific Market within that event
const warsh = fedEvent.searchMarkets('Kevin Warsh')[0];
console.log(`Price: ${warsh.yes?.price}`);- Polymarket
- Kalshi
pmxt supports unified trading across exchanges.
To trade, you must provide your private credentials.
- Polymarket: Requires your Polygon Private Key. View Setup Guide
- Kalshi: Requires API Key & Private Key.
import pmxt
import os
exchange = pmxt.Polymarket(
private_key=os.getenv('POLYMARKET_PRIVATE_KEY')
)
# 1. Check Balance
balance = exchange.fetch_balance()
print(f"Available USDC: {balance[0].available}")
# 2. Place an Order
# Use unique outcome IDs from market.outcomes
order = exchange.create_order(
market_id='market-123',
outcome_id='outcome-456',
side='buy',
type='limit',
price=0.33,
amount=100
)
print(f"Order Status: {order.status}")See the API Reference for detailed documentation and more examples.
Check out the directory for more use cases: