100 darmowych kredytów przy rejestracji — bez kartyZobacz cennik

[ blog · comparison ]11 min read

API Polymarket i Kalshi: przewodnik dla deweloperów

Sarah ChoyOpublikowano 3 maja 2026Zaktualizowano 23 września 202611 min czytania
API Polymarket i Kalshi: przewodnik dla deweloperów

Polymarket i Kalshi realizują ten sam prymityw — kontrakty tak/nie na CLOB — przez zupełnie różne API. Jedno wymaga podpisów EIP-712 i portfela Polygon; drugie to endpoint REST z opcjonalnym FIX. Jeśli budujesz agenta prognozującego, bota arbitrażowego lub monitor smart money, oto przewodnik porównawczy, który już powinien istnieć.

TL;DR

  • •Polymarket używa zleceń podpisanych EIP-712 wysyłanych do swojego CLOB na Polygon — obowiązują onboarding portfela i opłaty za gas.
  • •Kalshi używa standardowej autoryzacji REST + WebSocket (e-mail/hasło → token), plus opcjonalna bramka FIX dla użytkowników instytucjonalnych.
  • •Oba udostępniają księgę zleceń, transakcje i dane historyczne, ale schemat i semantyka rozliczeń różnią się na tyle, że 'ujednolicone' biblioteki są najczęściej proszonym tematem Show HN w tym zakątku narzędzi crypto/quant.
  • •Arbitraż międzyrynkowy na równoważnych kontraktach to najczęstszy wzorzec budowy (ponad 10 botów open-source na GitHubie).
  • •API Pick Prediction Markets Search opakowuje oba rynki w jeden endpoint POST do odkrywania kontraktów w języku naturalnym — 50 kredytów za wywołanie, posortowane wyniki semantyczne.

Dlaczego ten artykuł istnieje

Jeśli spędziłeś jakikolwiek czas budując na rynkach predykcyjnych, znasz kanoniczną prośbę: 'chcę odpytać Polymarket i Kalshi z tego samego skryptu w Pythonie i otrzymać czystą listę pasujących kontraktów.' Wątek komentarzy na HN przy każdym Show HN o rynkach predykcyjnych nieuchronnie zbiega się do tego — istnieje powracający wzorzec postów "CCXT dla rynków predykcyjnych", co wskazuje, że popyt istnieje, a obecne rozwiązania nie do końca trafiają w sedno.

Trudność jest realna. Oba rynki rozwiązują ten sam prymityw — binarne kontrakty "tak/nie" na centralnej księdze zleceń limitowanych — ale udostępniają je przez dramatycznie różne API. Oto działające, programistyczne spojrzenie na oba, obok siebie, z kodem, którego naprawdę potrzebujesz.

Dwa rynki, dwie architektury

Polymarket

  • Łańcuch: Polygon (rozliczenia w USDC.e)
  • Auth: podpisywanie typowanych danych EIP-712 kluczem prywatnym portfela; brak tradycyjnego tokenu bearer
  • Składanie zleceń: podpisane zlecenie wysłane do API CLOB; gas opłacany przez Polymarket via meta-transakcje
  • Odkrywanie rynków: Gamma API (REST + JSON) do przeglądania aktywnych rynków, plus osobne API CLOB dla księgi zleceń na żywo
  • Dane w czasie rzeczywistym: strumień WebSocket dla aktualizacji księgi zleceń i transakcji
  • Dane historyczne: endpointy REST dla transakcji; dzienne snapshoty do pobrania osobno

Kalshi

  • Rozliczenie: USD przez ACH i przelew (wymagany bank w USA)
  • Auth: e-mail + hasło → token bearer, LUB klucz API (instytucjonalny)
  • Składanie zleceń: standardowy uwierzytelniony POST REST do /portfolio/orders
  • Odkrywanie rynków: endpointy REST dla zdarzeń, rynków i serii; czysty schemat
  • Dane w czasie rzeczywistym: WebSocket i FIX (instytucjonalny) dla realizacji, księgi zleceń, tickera
  • Dane historyczne: endpointy REST dla transakcji; dane rozstrzygnięcia i rozliczenia rynków proste

Obok siebie

Architektury się zmieniają. Zweryfikuj limity zapytań, opłaty i wymogi KYC w dokumentacji każdego rynku przed integracją.
PolymarketKalshiAPI Pick
AuthZlecenia podpisane EIP-712 + portfel PolygonE-mail/hasło → bearer; lub klucz APINagłówek x-api-key (odkrywanie tylko do odczytu)
RozliczenieUSDC na PolygonPrzelew bankowy w USD (tylko USA)nd. (tylko wyszukiwanie)
Legalność w USAGeofenced (nie USA)Regulowany przez CFTCnd.
Czas rzeczywistyWebSocketWebSocket + FIXnd.
HistoryczneTransakcje REST + snapshotyTransakcje REST + rozliczenieWyszukiwanie zwraca linki do źródła
Najlepsze dopasowanieCrypto-native, rynki globalne, śledzenie smart moneyRegulowany w USA, wybory i ekonomiaOdkrywanie kontraktów międzyrynkowe

Działający kod: hello-world na każdym

Polymarket: lista aktywnych rynków

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: złóż podpisane zlecenie (szkic)

# 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: zaloguj się i złóż zlecenie limitowane

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: odkrywanie w języku naturalnym na obu

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.

Trzy wzorce produkcyjne, które naprawdę działają

1. Bot arbitrażu międzyrynkowego

Najczęstszy wzorzec na GitHubie: ręcznie wyselekcjonowana biała lista "ten kontrakt Polymarket rozlicza się na tym samym wyniku, co ten kontrakt Kalshi". Bot obserwuje obie księgi, oblicza prawdopodobieństwo implikowane i zajmuje pozycję, gdy spread przekroczy próg. Przykłady: ImMike/polymarket-arbitrage oraz realfishsam/prediction-market-arbitrage-bot.

Trudną częścią jest biała lista. "Czy Fed obniży o 25 pb na grudniowym posiedzeniu" dla człowieka wygląda tak samo, ale źródła rozstrzygnięcia i dokładne sformułowanie się różnią; automatyczny matcher myli się na tyle często, że prawdziwe boty używają mapowań tworzonych ręcznie.

2. Monitor smart money

Wieloryby na Polymarket są widoczne on-chain. Monitor obserwuje Polygon pod kątem dużego przepływu zleceń na konkretnych rynkach, wydobywa duże pozycje i sygnalizuje szybkie ruchy cen, zanim nagłówki dotrą do API z wiadomościami. Połącz z News Search, aby potwierdzić, czy pozorny ruch jest napędzany wiadomościami, czy to czysta spekulacja.

3. Kanał prognostyczny dla agenta LLM

Wciągnięcie aktualnych cen Polymarket / Kalshi do kontekstu agenta LLM pozwala modelowi udzielać odpowiedzi opartych na prawdopodobieństwie: "obecne rynki zakładów implikują ~65% prawdopodobieństwa X". To jest przypadek użycia odkrywania, który pokrywa API Pick — mając pytanie w języku naturalnym od agenta, zwróć posortowane kontrakty, aby agent mógł zacytować cenę w swojej odpowiedzi.

Częste pułapki (zebrane z komentarzy HN)

  • Podpisywanie EIP-712 Polymarketu — podpis zlecenia jest deterministyczny, ale błędy narzędziowe są częste. Używaj py-order-utils, zamiast pisać własne. Większość wczesnych strat botów wynika z niezgodności podpisów, które API po cichu odrzuca.
  • Limity zapytań Kalshi — udokumentowane na 100 req/s, ale niższe dla niektórych endpointów w ruchliwe dni zdarzeń (wieczory wyborcze, FOMC). Wbuduj w klienta ponawianie z backoffem.
  • Skoki gas Polymarketu — gas na Polygon może podskoczyć w dni dużego wolumenu. Polymarket subsydiuje większość składania zleceń via meta-transakcje, ale rozliczenie i wypłatę opłaca użytkownik. Uwzględnij to w obliczeniach P&L.
  • Niezgodności rozliczeń — pozorne równoważniki czasem rozliczają się inaczej. Zawsze czytaj klauzule źródła rozstrzygnięcia obu kontraktów przed handlem parami.
  • Rozłączenia WebSocket — oba rynki mają rutynowe zaniki WebSocket. Logika ponownego łączenia z odtwarzaniem numerów sekwencji jest nienegocjowalna dla każdego bota produkcyjnego.

Szybki wybór

Najlepsze dla: handlu regulowanego w USA
Kalshi. Nadzór CFTC, rozliczenie w USD, brak onboardingu crypto. Właściwa odpowiedź dla każdego produktu skierowanego do użytkowników z USA.
Najlepsze dla: crypto-native, globalne, śledzenie smart money
Polymarket. Bycie Polygon-native oznacza, że przepływ zleceń on-chain jest obserwowalny; szerszy zasięg zdarzeń, zwłaszcza w geopolityce, krypto i rozrywce.
Najlepsze dla: arbitrażu międzyrynkowego
Oba, w parze. Zbuduj bota najpierw na jednym (zwykle Kalshi ze względu na czystszą autoryzację); dodaj Polymarket, gdy twoja logika dopasowania będzie solidna.
Najlepsze dla: odkrywania kontraktów w języku naturalnym w agencie LLM
API Pick Prediction Markets Search. Jeden POST, zwraca posortowane dopasowania na obu rynkach, 50 kredytów za wywołanie, tylko przy sukcesie. Wypróbuj →

Dokąd to zmierza

Rynki predykcyjne otrzymują obecnie niezwykłą ilość uwagi mainstreamu: większe wolumeny wokół wyborów w USA, zdarzeń FOMC, sportu i pytań o AI-takeoff; szersze integracje ze stronami z wiadomościami, które pokazują prawdopodobieństwa implikowane; oraz fala narzędzi programistycznych (Show HN-y, repozytoria GitHub), która zbiega się do tego samego tematu — 'ktoś powinien napisać CCXT dla rynków predykcyjnych.'

Nie sądzimy, że biblioteka ujednoliconej realizacji w stylu CCXT to właściwa forma. Różnice w autoryzacji, rozliczeniu i reżimie regulacyjnym są zbyt głębokie, by je czysto wyabstrahować bez okłamywania użytkownika. Ale problem odkrywania — mając pytanie w języku naturalnym, znaleźć kontrakty, które już istnieją — jest rozwiązywalny dzięki wyszukiwaniu semantycznemu, i to właśnie robi API Pick Prediction Markets Search. Znajdź kontrakt; złóż zlecenie na rynku.

Najczęściej zadawane pytania

Który rynek ma więcej kontraktów?

W chwili pisania oba wymieniają dziesiątki tysięcy aktywnych rynków. Polymarket skłania się ku crypto-native i globalności (polityka, sport, krypto, bieżące wydarzenia); Kalshi jest regulowany przez CFTC i skupiony na USA (wybory, ekonomia, pogoda, sport). Rozkład wolumenu różni się w zależności od kategorii — dla wyborów w USA Kalshi jest zwykle głębszy; dla polityki globalnej i pytań crypto-native jest nim Polymarket.

Dlaczego open-source'owe biblioteki 'ujednolicone' wciąż pojawiają się na Show HN?

Bo popyt istnieje, a nikt nie rozwiązał tego dobrze. Posty na Show HN takie jak 'Open-source library to unify Polymarket and Kalshi APIs' oraz 'dr-manhattan — CCXT for Prediction Markets' to powracające wzorce. Wyzwaniem jest dopasowanie równoważnych kontraktów (ten sam wynik, inne sformułowanie) i pogodzenie semantyki rozliczeń. Biblioteki zwykle dopinają wrapper autoryzacji, ale zatrzymują się przed dopasowywaniem kontraktów.

Jak zrobić podstawowy arbitraż międzyrynkowy?

Koncepcyjnie: znajdź dwa kontrakty rozliczające się na tym samym wyniku na różnych rynkach, sprawdź prawdopodobieństwa implikowane, zajmij droższą stronę 'No' i tańszą stronę 'Yes', trzymaj do rozliczenia. W praktyce tarciem jest realizacja: opłaty za gas Polymarketu, finansowanie w USD Kalshi, częściowe realizacje i problem dopasowania powyżej. Większość żywych botów arbitrażowych na GitHubie działa na ręcznie wyselekcjonowanej białej liście mapowań par kontraktów, zamiast odkrywać je automatycznie.

Czy Polymarket jest legalny w USA?

Polymarket nie jest obecnie autoryzowany dla użytkowników z USA; dostęp jest geofenced. Kalshi jest regulowany przez CFTC i legalny w USA. Jeśli budujesz produkt dla użytkowników z USA, Kalshi to jedyna opcja. Jeśli budujesz globalnie, Polymarket oferuje szerszy zasięg rynkowy.

Gdzie API Pick pasuje w tym stacku?

API Pick Prediction Markets Search rozwiązuje problem 'odkrywania': mając pytanie w języku naturalnym (np. 'Fed obniża stopy przed końcem roku'), zwraca posortowane semantyczne dopasowania w kontraktach Polymarket i Kalshi w jednym wywołaniu POST. Nie zastępujemy API realizacji zleceń — aby składać zlecenia, nadal idziesz bezpośrednio na każdy rynek. Sprawiamy, że znalezienie właściwego rynku jest proste.

Sarah Choy
Autor
Sarah Choy
CEO, API Pick

Sarah Choy jest CEO API Pick. Pisze o budowaniu produkcyjnych API dla agentów AI i przepływów pracy z LLM.