[ blog · comparison ]11 min read

Polymarket vs Kalshi API: Ein Entwickler-Direktvergleich (Auth, CLOB, WebSocket, historische Daten)

Sarah ChoyVeröffentlicht am 3. Mai 202611 Min. Lesezeit
Polymarket vs Kalshi API: Ein Entwickler-Direktvergleich (Auth, CLOB, WebSocket, historische Daten)

Polymarket und Kalshi betreiben dasselbe Primitiv — Ja/Nein-Kontrakte auf einem CLOB — über völlig verschiedene APIs. Die eine verlangt EIP-712-Signaturen und ein Polygon-Wallet; die andere ist ein REST-Endpoint mit optionalem FIX. Wenn du einen Prognose-Agenten, einen Arbitrage-Bot oder einen Smart-Money-Monitor baust, hier ist der Direktvergleich, den es längst geben sollte.

Auf einen Blick

  • Polymarket nutzt EIP-712-signierte Orders, die an seinen CLOB auf Polygon übermittelt werden — Wallet-Onboarding und Gas-Gebühren fallen an.
  • Kalshi nutzt Standard-REST + WebSocket-Auth (E-Mail/Passwort → Token) plus ein optionales FIX-Gateway für institutionelle Nutzer.
  • Beide exponieren Order Book, Trades und historische Daten, aber Schema und Resolution-Semantik unterscheiden sich genug, dass 'vereinheitlichte' Bibliotheken das meistgefragte HN-Show-HN-Thema in dieser Ecke des Crypto-/Quant-Toolings sind.
  • Cross-Venue-Arbitrage zwischen äquivalenten Kontrakten ist das häufigste Build-Muster (10+ Open-Source-Bots auf GitHub).
  • API Pick Prediction Markets Search bündelt beide Plattformen in einem POST-Endpoint für natürlichsprachige Kontraktentdeckung — 50 Credits pro Call, gerankte semantische Ergebnisse.

Warum es diesen Artikel gibt

Wenn du je Zeit damit verbracht hast, auf Prediction Markets zu bauen, kennst du die kanonische Anfrage: 'Ich will Polymarket und Kalshi aus demselben Python-Skript abfragen und eine saubere Liste passender Kontrakte zurückbekommen.' Der HN-Kommentarthread zu jedem Prediction-Market-Show-HN konvergiert unweigerlich darauf — es gibt ein wiederkehrendes Muster von "CCXT für Prediction Markets"-Posts, was zeigt: Die Nachfrage existiert und die vorhandenen Lösungen treffen es nicht ganz.

Die Schwierigkeit ist real. Die beiden Plattformen lösen dasselbe Primitiv — binäre "Ja/Nein"-Kontrakte auf einem zentralen Limit-Orderbuch — exponieren sie aber über dramatisch verschiedene APIs. Hier ist eine praxisnahe Entwicklersicht auf beide, im Direktvergleich, mit dem Code, den du tatsächlich brauchst.

Zwei Plattformen, zwei Architekturen

Polymarket

  • Chain: Polygon (USDC.e-Settlements)
  • Auth: EIP-712-Typed-Data-Signing mit einem Wallet-Private-Key; kein klassischer Bearer-Token
  • Order-Platzierung: signierte Order an die CLOB API übermittelt; Gas von Polymarket via Meta-Transaktionen bezahlt
  • Marktentdeckung: Gamma API (REST + JSON) zum Durchstöbern aktiver Märkte, plus eine separate CLOB API für das Live-Orderbuch
  • Echtzeitdaten: WebSocket-Stream für Orderbuch-Updates und Trades
  • Historische Daten: REST-Endpoints für Trades; tägliche Snapshots separat herunterladbar

Kalshi

  • Settlement: USD via ACH und Überweisung (US-Bankkonto erforderlich)
  • Auth: E-Mail + Passwort → Bearer-Token, ODER API-Key (institutionell)
  • Order-Platzierung: standard-authentifizierter REST-POST an /portfolio/orders
  • Marktentdeckung: REST-Endpoints für Events, Märkte und Serien; sauberes Schema
  • Echtzeitdaten: WebSocket und FIX (institutionell) für Fills, Orderbuch, Ticker
  • Historische Daten: REST-Endpoints für Trades; Marktauflösung und Settlement-Daten unkompliziert

Direktvergleich

Architekturen ändern sich. Prüfe Rate-Limits, Gebühren und KYC-Anforderungen in den Docs jeder Plattform vor der Integration.
PolymarketKalshiAPI Pick
AuthEIP-712-signierte Orders + Polygon-WalletE-Mail/Passwort → Bearer; oder API-Keyx-api-key-Header (Read-Only-Discovery)
SettlementUSDC auf PolygonUSD-Banküberweisung (nur US)k. A. (nur Suche)
US-LegalitätGeo-gesperrt (nicht US)CFTC-reguliertk. A.
EchtzeitWebSocketWebSocket + FIXk. A.
HistorischREST-Trades + SnapshotsREST-Trades + SettlementSuche liefert Links zur Quelle
Bestes EinsatzfeldCrypto-nativ, globale Märkte, Smart-Money-TrackingUS-reguliert, Wahlen & WirtschaftCross-Venue-Kontraktentdeckung

Lauffähiger Code: Hello-World auf jeder

Polymarket: aktive Märkte auflisten

import requests

# Gamma API — no auth required for browsing
r = requests.get(
    "https://gamma-api.polymarket.com/markets",
    params={"active": "true", "limit": 25, "order": "volume"},
)
markets = r.json()
for m in markets[:5]:
    print(m["question"], "→", m["outcomePrices"])

Polymarket: eine signierte Order platzieren (Skizze)

# Full order placement requires py-order-utils + a Polygon wallet
# This is the structural sketch — not runnable without wallet setup
from py_order_utils.builders import OrderBuilder
from py_order_utils.signer import Signer

signer = Signer(private_key="0xYOUR_PRIVATE_KEY")
builder = OrderBuilder(
    exchange_address="0x...",
    chain_id=137,
    signer=signer,
)

order = builder.build_signed_order({
    "maker": signer.address(),
    "tokenId": "...",        # the yes/no token ID for the market
    "makerAmount": "1000000", # USDC.e in atomic units
    "takerAmount": "1500000",
    "side": "BUY",
    "feeRateBps": 0,
    "nonce": 0,
    "expiration": 0,         # 0 = no expiry
})

requests.post(
    "https://clob.polymarket.com/order",
    json={"order": order, "owner": signer.address(), "orderType": "GTC"},
)

Kalshi: einloggen und eine Limit-Order platzieren

import requests

# Step 1 — login
r = requests.post(
    "https://api.elections.kalshi.com/trade-api/v2/login",
    json={"email": "you@example.com", "password": "..."},
).json()
token = r["token"]
headers = {"Authorization": f"Bearer {token}"}

# Step 2 — list markets in an event
r = requests.get(
    "https://api.elections.kalshi.com/trade-api/v2/markets",
    params={"event_ticker": "POTUS-2028", "limit": 25},
    headers=headers,
).json()
print(r["markets"][:5])

# Step 3 — place a limit buy on the "Yes" side at 60 cents
r = requests.post(
    "https://api.elections.kalshi.com/trade-api/v2/portfolio/orders",
    headers=headers,
    json={
        "ticker": "POTUS-2028-DEM",
        "type": "limit",
        "action": "buy",
        "side": "yes",
        "count": 100,            # 100 contracts
        "yes_price": 60,         # 60 cents
        "client_order_id": "abc123",
    },
)
print(r.json())

API Pick: natürlichsprachige Entdeckung über beide

import requests

r = requests.post(
    "https://www.apipick.com/api/search/prediction-markets",
    headers={"x-api-key": "pk_yourkey"},
    json={"query": "Federal Reserve rate cuts before end of 2026"},
)
for hit in r.json()["results"][:5]:
    print(hit["title"], "@", hit["venue"], "→", hit["url"])

# Returns ranked matches across Polymarket + Kalshi.
# 50 credits per call (~$0.05), only on HTTP 200.

Drei Produktionsmuster, die tatsächlich funktionieren

1. Der Cross-Venue-Arbitrage-Bot

Das häufigste Muster auf GitHub: eine kuratierte Whitelist von "dieser Polymarket-Kontrakt wird auf dasselbe Ergebnis aufgelöst wie dieser Kalshi-Kontrakt." Der Bot beobachtet beide Orderbücher, berechnet die implizite Wahrscheinlichkeit und nimmt eine Position ein, wenn der Spread eine Schwelle überschreitet. Beispiele: ImMike/polymarket-arbitrage und realfishsam/prediction-market-arbitrage-bot.

Der schwierige Teil ist die Whitelist. "Will the Fed cut by 25 bps at the December meeting" sieht für einen Menschen gleich aus, aber die Resolution-Quellen und der genaue Wortlaut unterscheiden sich; ein automatischer Matcher liegt oft genug falsch, dass echte Bots menschlich kuratierte Mappings verwenden.

2. Der Smart-Money-Monitor

Wale auf Polymarket sind on-chain sichtbar. Ein Monitor beobachtet Polygon auf großen Order-Flow bei bestimmten Märkten, hebt große Positionen hervor und markiert schnelle Preisbewegungen, bevor Schlagzeilen die News-APIs erreichen. Kombiniere mit News Search, um zu bestätigen, ob eine scheinbare Bewegung newsgetrieben oder reine Spekulation ist.

3. Der Prognose-Feed für einen LLM-Agenten

Aktuelle Polymarket-/Kalshi-Preise in den Kontext eines LLM-Agenten zu ziehen, ermöglicht dem Modell wahrscheinlichkeitsgestützte Antworten: "aktuelle Wettmärkte implizieren ~65 % Wahrscheinlichkeit für X". Das ist der Discovery-Anwendungsfall, den API Pick abdeckt — gegeben eine natürlichsprachige Frage vom Agenten, gerankte Kontrakte zurückgeben, damit der Agent den Preis in seiner Antwort zitieren kann.

Häufige Stolperfallen (aus HN-Kommentaren zusammengetragen)

  • Polymarket-EIP-712-Signing — die Order-Signatur ist deterministisch, aber Tooling-Fehler sind häufig. Nutze py-order-utils, statt selbst zu basteln. Die meisten frühen Bot-Verluste kommen von Signatur-Mismatches, die die API stillschweigend ablehnt.
  • Kalshi-Rate-Limits — dokumentiert mit 100 req/sec, aber niedriger für einige Endpoints an geschäftigen Event-Tagen (Wahlnächte, FOMC). Bau Retry-with-Backoff in deinen Client ein.
  • Polymarket-Gas-Spikes — Polygon-Gas kann an volumenstarken Tagen springen. Polymarket subventioniert die meiste Order-Platzierung via Meta-Transaktionen, aber Settlement und Auszahlung zahlt der Nutzer. Berücksichtige das in P&L-Berechnungen.
  • Settlement-Mismatches — scheinbare Äquivalente werden manchmal unterschiedlich aufgelöst. Lies vor dem Paar-Handel immer die Resolution-Source-Klauseln beider Kontrakte.
  • WebSocket-Disconnects — beide Plattformen haben routinemäßige WebSocket-Aussetzer. Reconnect-Logik mit Sequenznummern-Replay ist für jeden produktiven Bot nicht verhandelbar.

Schnell entscheiden

Am besten für: US-reguliertes Trading
Kalshi. CFTC-Aufsicht, USD-Settlement, kein Crypto-Onboarding. Die richtige Antwort für jedes Produkt, das auf US-Nutzer zielt.
Am besten für: crypto-nativ, global, Smart-Money-Tracking
Polymarket. Polygon-nativ bedeutet, dass On-Chain-Order-Flow beobachtbar ist; breitere Event-Abdeckung, besonders in Geopolitik, Crypto und Entertainment.
Am besten für: Cross-Venue-Arbitrage
Beide, gepaart. Bau den Bot zuerst gegen eine (meist Kalshi wegen der saubereren Auth); füge Polymarket hinzu, sobald deine Matching-Logik solide ist.
Am besten für: natürlichsprachige Kontraktentdeckung in einem LLM-Agenten
API Pick Prediction Markets Search. Ein POST, liefert gerankte Treffer über beide Plattformen, 50 Credits pro Call, nur bei Erfolg. Jetzt testen →

Wohin das geht

Prediction Markets bekommen gerade ungewöhnlich viel Mainstream-Aufmerksamkeit: größere Volumina rund um US-Wahlen, FOMC-Events, Sport und AI-Takeoff-Fragen; breitere Integrationen mit News-Sites, die implizite Wahrscheinlichkeiten einblenden; und eine Welle von Developer-Tooling (Show HNs, GitHub-Repos), die auf dasselbe Thema konvergiert — 'jemand sollte CCXT für Prediction Markets schreiben.'

Wir glauben nicht, dass eine CCXT-artige vereinheitlichte Execution-Bibliothek die richtige Form ist. Die Unterschiede in Auth, Settlement und Regulierungsregime sind zu tief, um sie sauber zu abstrahieren, ohne den Nutzer zu belügen. Aber das Discovery-Problem — gegeben eine natürlichsprachige Frage, finde die bereits existierenden Kontrakte — ist mit semantischer Suche lösbar, und genau das tut API Pick Prediction Markets Search. Finde den Kontrakt; platziere die Order auf der Plattform.

Häufig gestellte Fragen

Welche Plattform hat mehr Kontrakte?

Zum Zeitpunkt des Schreibens listen beide Zehntausende aktive Märkte. Polymarket tendiert crypto-nativ und global (Politik, Sport, Crypto, aktuelle Ereignisse); Kalshi ist CFTC-reguliert und US-fokussiert (Wahlen, Wirtschaft, Wetter, Sport). Die Volumenverteilung variiert nach Kategorie — bei US-Wahlen ist Kalshi typischerweise tiefer; bei globaler Politik und crypto-nativen Fragen ist es Polymarket.

Warum tauchen auf Show HN ständig Open-Source-'unified'-Bibliotheken auf?

Weil die Nachfrage existiert und niemand es gut gelöst hat. Show-HN-Posts wie 'Open-source library to unify Polymarket and Kalshi APIs' und 'dr-manhattan — CCXT for Prediction Markets' sind wiederkehrende Muster. Die Herausforderung ist, äquivalente Kontrakte abzugleichen (gleiches Ergebnis, andere Formulierung) und die Settlement-Semantik in Einklang zu bringen. Bibliotheken bekommen meist den Auth-Wrapper hin, hören aber vor dem Kontraktabgleich auf.

Wie mache ich grundlegende Cross-Venue-Arbitrage?

Konzeptionell: finde zwei Kontrakte, die auf dasselbe Ergebnis auf verschiedenen Plattformen aufgelöst werden, prüfe die impliziten Wahrscheinlichkeiten, nimm die teurere 'No'-Seite und die günstigere 'Yes'-Seite, halte bis zur Auflösung. In der Praxis liegt die Reibung in der Ausführung: Polymarket-Gas-Gebühren, Kalshi-USD-Funding, Teilausführungen und das Matching-Problem von oben. Die meisten Live-Arbitrage-Bots auf GitHub laufen auf einer kuratierten Whitelist von Kontraktpaar-Mappings, statt sie automatisch zu entdecken.

Ist Polymarket in den USA legal?

Polymarket ist derzeit nicht für US-Nutzer zugelassen; der Zugriff ist geo-gesperrt. Kalshi ist CFTC-reguliert und in den USA legal. Wenn du ein Produkt für US-Nutzer baust, ist Kalshi die einzige Option. Wenn du global baust, bringt Polymarket eine breitere Marktabdeckung mit.

Wo passt API Pick in diesen Stack?

API Pick Prediction Markets Search löst das 'Discovery'-Problem: gegeben eine natürlichsprachige Frage (z. B. 'Fed cuts rates by year-end') liefert es gerankte semantische Treffer über Polymarket- und Kalshi-Kontrakte in einem POST-Call. Wir ersetzen die Order-Execution-APIs nicht — zum Platzieren von Orders gehst du weiterhin direkt zu jeder Plattform. Wir machen das Finden des richtigen Marktes einfach.

APIs in diesem Artikel

Sarah Choy
Geschrieben von
Sarah Choy
CEO, API Pick

Sarah Choy ist CEO von API Pick. Sie schreibt über produktionsreife APIs für KI-Agenten und LLM-Workflows.