PredictIt is the longest-running US political prediction market. It holds full CFTC regulatory approval (DCM + DCO) as of September 2025, lists ~245 active political markets, and offers a free read-only API. For agent builders, it’s the best structured data source for US election probabilities — but you can’t trade programmatically.

What PredictIt Is

PredictIt is a real-money political prediction market operated by Aristotle Inc. on behalf of Victoria University of Wellington, New Zealand. Launched in November 2014, it was originally structured as a nonprofit academic research project, which is how it secured its initial CFTC no-action letter allowing real-money event trading in the US.

The platform uses a continuous double auction — functionally a stock exchange for political outcomes. For each market question (e.g., “Which party will control the Senate after the 2026 election?”), PredictIt issues YES and NO shares priced between $0.01 and $0.99. If the outcome occurs, YES shares resolve at $1.00. If it doesn’t, NO shares resolve at $1.00.

As of March 2026, PredictIt has over 400,000 registered users and approximately 245 active markets.

Regulatory Status

PredictIt’s regulatory history is one of the most eventful in prediction market history:

DateEvent
November 2014Launched under CFTC no-action letter
August 2022CFTC revoked no-action letter, ordered wind-down
September 2022PredictIt/Aristotle sued CFTC in Western District of Texas
January 2023Fifth Circuit granted temporary injunction
July 2025PredictIt won the case; $850 cap raised to $3,500; 5,000-trader cap removed
September 2025Full CFTC approval as DCM and DCO

This makes PredictIt one of the few platforms — alongside Kalshi — holding full CFTC designation for prediction market trading.

Market Coverage

PredictIt focuses exclusively on political and policy markets. No sports, no entertainment, no crypto. Current categories include:

  • Presidential elections — 2028 Democratic and Republican nominations, general election
  • Congressional races — 2026 Senate and House races by state
  • Gubernatorial elections — California 2026, others
  • Party control — Senate and House balance of power
  • Policy outcomes — Fed appointments, Supreme Court confirmations, approval ratings
  • International politics — Select global political events

This narrow focus is both PredictIt’s strength and its limitation. If you’re building an agent that needs deep US political coverage, PredictIt has no equal. If you need sports or macro, look at Polymarket or Opinion.

Fee Structure

FeeRate
Trading feeNone (spread-based)
Profit fee10% on net profits per market
Withdrawal fee5%
Position cap$3,500 per contract (raised from $850 in July 2025)
Minimum deposit$10

The combined 10% profit fee and 5% withdrawal fee makes PredictIt one of the more expensive platforms by effective cost. For comparison, Kalshi charges lower trading fees and Polymarket charges 0% maker fees with variable taker fees depending on market type.

API for Agent Builders

PredictIt offers a read-only public JSON API. It doesn’t support programmatic trading — all order placement is manual through the web interface.

Endpoints

All markets:

GET https://www.predictit.org/api/marketdata/all/

Single market (by ID):

GET https://www.predictit.org/api/marketdata/markets/{marketId}

The market ID is the numeric code in the market’s URL. For example, market 8155 is “Which party will control the Senate after the 2026 election?”

Response Structure

{
  "id": 8155,
  "name": "Which party will control the Senate after the 2026 election?",
  "shortName": "Senate control 2026?",
  "url": "https://www.predictit.org/markets/detail/8155",
  "timeStamp": "2026-03-20T14:30:00Z",
  "status": "Open",
  "contracts": [
    {
      "id": 30201,
      "name": "Republican",
      "shortName": "Republican",
      "lastTradePrice": 0.67,
      "bestBuyYesCost": 0.68,
      "bestBuyNoCost": 0.34,
      "bestSellYesCost": 0.67,
      "bestSellNoCost": 0.33,
      "lastClosePrice": 0.66
    },
    {
      "id": 30202,
      "name": "Democratic",
      "shortName": "Democratic",
      "lastTradePrice": 0.36,
      "bestBuyYesCost": 0.37,
      "bestBuyNoCost": 0.65,
      "bestSellYesCost": 0.36,
      "bestSellNoCost": 0.64,
      "lastClosePrice": 0.37
    }
  ]
}

Python: Fetch All Markets

import requests

def get_predictit_markets():
    """Fetch all active PredictIt markets."""
    url = "https://www.predictit.org/api/marketdata/all/"
    resp = requests.get(url)
    resp.raise_for_status()
    data = resp.json()
    return data["markets"]

markets = get_predictit_markets()
for market in markets[:5]:
    print(f"[{market['id']}] {market['shortName']}")
    for contract in market["contracts"]:
        print(f"  {contract['shortName']}: "
              f"Last={contract['lastTradePrice']:.2f} "
              f"Bid={contract['bestBuyYesCost']:.2f} "
              f"Ask={contract['bestSellYesCost']:.2f}")

Python: Election Probability Monitor

import requests
import time
from datetime import datetime

SENATE_MARKET_ID = 8155
POLL_INTERVAL = 60  # API updates every ~60 seconds

def monitor_senate_control():
    """Stream Senate control probabilities from PredictIt."""
    url = f"https://www.predictit.org/api/marketdata/markets/{SENATE_MARKET_ID}"

    while True:
        try:
            resp = requests.get(url, timeout=10)
            if resp.status_code == 429:
                print("Rate limited — backing off")
                time.sleep(300)
                continue

            data = resp.json()
            ts = datetime.now().strftime("%H:%M:%S")

            for contract in data["contracts"]:
                party = contract["shortName"]
                price = contract["lastTradePrice"]
                print(f"[{ts}] {party}: {price:.0%}")

        except requests.RequestException as e:
            print(f"Error: {e}")

        time.sleep(POLL_INTERVAL)

if __name__ == "__main__":
    monitor_senate_control()

Community Libraries

LibraryLanguageInstall
rpredictitRinstall.packages('rpredictit')
Ergo (PredictIt module)Pythonpip install ergo
predictit (GitHub)PythonVarious community wrappers

API license: PredictIt data is for non-commercial use only. PredictIt must be attributed as the source.

Agent Infrastructure Angle

PredictIt sits at Layer 3 — Trading and Layer 4 — Intelligence in the Agent Betting Stack:

  • Data feed: The API is a clean, structured source for US political probabilities. An agent can poll every 60 seconds and pipe prices into downstream analysis.
  • Arbitrage detection: Cross-reference PredictIt prices against Polymarket, Kalshi, or Dome for the same political events. PredictIt’s fees (10% profit + 5% withdrawal) must be factored into any arb calculation.
  • Election intelligence: PredictIt’s 160+ academic data partners and informed user base make its prices a high-quality signal for election forecasting agents.
  • No programmatic trading: The biggest limitation. Agents can read PredictIt but cannot execute. For automated political trading, Kalshi’s API or Polymarket are better execution venues.

Strengths and Limitations

Strengths:

  • Full CFTC regulatory approval (DCM + DCO)
  • Deepest US political market coverage anywhere
  • Clean, free JSON API with 60-second refresh
  • Informed user base — prices driven by political knowledge, not speculation
  • Academic data-sharing program with 160+ university partners

Limitations:

  • Read-only API — no programmatic trading
  • 10% profit fee + 5% withdrawal fee (higher than competitors)
  • $3,500 per-contract cap (lower than Kalshi or Polymarket)
  • No mobile app (mobile web only)
  • Politics only — no sports, entertainment, or macro coverage

Who Should Use PredictIt

PredictIt is the right platform if you’re a political junkie who wants to trade on elections, or an agent builder who needs structured political probability data. It’s the wrong platform if you need programmatic execution, broad market coverage, or low fees.

For a broader view of prediction market APIs and how they compare, see the Prediction Market API Reference.


Last verified: March 2026