Skip to content

Ito-Markets/ito-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ito-markets — Python SDK for Ito Markets

Thin, typed Python wrapper for the Ito Markets public API. Access prediction market baskets, individual market data, historical orderbook snapshots, and run backtests — all with a single pip install.

Install

pip install ito-markets
# or with pandas support:
pip install ito-markets[pandas]

Quick Start

from ito import ItoClient

client = ItoClient("ito_...")  # your API key from Settings

# List all baskets
baskets = client.baskets.list()
for b in baskets["data"]:
    print(f"{b['basket_id']}: ${b['stats']['current_price']:.2f}")

# Get a single market
market = client.markets.get("will-btc-reach-100k")
print(market["data"]["title"], market["data"]["last_price"])

# Price history
history = client.markets.history("will-btc-reach-100k", days=90)
for point in history["data"]["series"]:
    print(point["date"], point["close_price"])

# Bulk prices for multiple markets
prices = client.data.prices(["market-a", "market-b", "market-c"], days=30)

# Historical L2 orderbook
book = client.data.orderbook(
    venue="polymarket",
    market="will-btc-reach-100k",
    start="2026-06-01T00:00:00Z",
    end="2026-06-01T01:00:00Z",
    limit=5000,
)

# Run a backtest on a thematic basket
result = client.backtests.run(
    strategy_id="crypto_updown_roll_timing",
    dataset_id="clickhouse:ito_hot.platform_orderbook_l2",
    venues=["polymarket"],
    date_range={"start": "2026-05-01T00:00:00Z", "end": "2026-06-01T00:00:00Z"},
    basket_id="middle-east-conflict",  # only markets in this basket
    params={"roll_trigger": "liquidity_spread_score"},
)
print(f"P&L: ${result['data']['metrics']['pnl_usd']:.2f}")

API Key

  1. Go to institutional.itomarkets.com
  2. Sign up / log in
  3. Go to Settings -> generate an API key
  4. Use the key (starts with ito_) in the client constructor

Available Endpoints

Baskets (9 endpoints)

Method Description
client.baskets.list() All baskets with current prices
client.baskets.get(id) Single basket details
client.baskets.price(id) Current price + underlyer snapshot
client.baskets.history(id) Price time series
client.baskets.chart(id) OHLC chart data
client.baskets.metrics(id) Returns, volatility
client.baskets.underlyers(id) Component markets
client.baskets.overrides() Manual overrides
client.baskets.volume_daily() Daily traded volume

Markets (3 endpoints)

Method Description
client.markets.search() Filtered listing by volume
client.markets.get(id) Single market detail
client.markets.history(id) Daily price series

Research Data (2 endpoints)

Method Description
client.data.orderbook(venue, market) Historical L2 snapshots
client.data.prices(market_ids) Bulk daily close prices

Backtesting (9 endpoints)

Method Description
client.backtests.strategies() Available strategies
client.backtests.create_strategy(...) Create custom strategy
client.backtests.custom_strategies() List custom strategies
client.backtests.datasets() Available datasets
client.backtests.execution_models() Fill models
client.backtests.validate(...) Dry-run validation
client.backtests.plan(...) Multi-window experiment
client.backtests.submit(...) Submit for execution
client.backtests.run(...) Submit + poll to completion

Features

  • Typed: Full type hints for IDE autocompletion
  • Retries: Automatic retry with exponential backoff on 429/5xx
  • Errors: Typed exceptions (ItoAuthError, ItoRateLimitError, etc.)
  • Context manager: with ItoClient(...) as client: for clean resource management
  • Lightweight: Only dependency is httpx

Development

git clone https://github.com/Ito-Markets/ito-python.git
cd ito-python
pip install -e ".[dev]"
pytest

License

MIT

About

SDK for Itô Markets - Python

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages