
- Auth
- Clé API émise dans les paramètres du compte, envoyée dans un en-tête.
- Lecture
- REST pour les marchés et les échelles ; un flux de carnet pour les mises à jour en direct.
- Trading
- Ordres limite et taker par part, tick 0.01.
- Frais taker
- 0.018 x min(p, 1-p) par part, prélevés en parts d'issue. Les makers ne paient rien.
- Règlement
- Une lecture ponctuelle du prix de l'oracle à chaque limite. Pas de moyenne. Les égalités paient 50/50.
- Géographie
- Bloque les États-Unis.
- Docs
- docs.predict.fun
Cinq étapes, simplifiées. Les noms d'endpoint ci-dessous sont des espaces réservés pour la forme de chaque appel ; prenez les chemins exacts dans la référence, qui change plus souvent que celle des exchanges plus grands.
S'authentifier
import requests BASE = "https://api.predict.fun" # à confirmer dans la documentation H = {"X-API-Key": API_KEY}Lister les fenêtres en cours
markets = requests.get(f"{BASE}/markets", params={"category": "crypto", "status": "open"}, headers=H).json() m = next(x for x in markets if x["timeframe"] == "5m" and x["asset"] == "BTC") start_price = m["startPrice"] # l'ouverture déclarée, exacte au tickLes fenêtres s'enchaînent : le prix de fin d'une fenêtre est le prix de début de la suivante. Si votre propre flux spot n'est pas d'accord avec le prix de début déclaré, faites confiance au prix déclaré.
Lire l'échelle
book = requests.get(f"{BASE}/markets/{m['id']}/orderbook", headers=H).json() best_ask = book["asks"][0] # [price, size] best_bid = book["bids"][0]Dans la dernière minute, presque chaque transaction lève l'offre ou frappe la demande ; rien ne se négocie à l'intérieur du spread. Modélisez vos exécutions au meilleur prix affiché, pas au milieu.
Passer un achat taker
order = {"marketId": m["id"], "outcome": "UP", "side": "BUY", "type": "LIMIT", "price": best_ask[0], "size": 30, "timeInForce": "FOK"} r = requests.post(f"{BASE}/orders", json=order, headers=H).json()Les frais sont prélevés sur les parts que vous recevez, donc un achat de 30 parts à 50 cents livre environ 29,7 parts.
Lire les exécutions
fills = requests.get(f"{BASE}/fills", headers=H).json()
Le règlement fait la différence
Polymarket, Limitless et Kalshi règlent tous les marchés crypto courts sur une moyenne de la dernière minute. Predict.fun règle sur une lecture unique. Sur les fenêtres plates, les deux règles divergent environ une fois sur dix, donc ne mélangez pas les résultats de Predict.fun avec ceux des autres, et ne transférez pas un modèle entraîné sur les autres sans le réentraîner.