The Bot Ledger
ES

Inicio / Guías

Guía de la API de Predict.fun: conecta un bot en 5 pasos

La API de Predict.fun para un bot: auth, mercados de 5 minutos, la escalera, órdenes taker, ejecuciones y la regla de liquidación que difiere del resto.

A dark blue circuit board, close up
Foto: Vishnu Mohanan, Unsplash
Auth
API key emitida en los ajustes de la cuenta, enviada como cabecera.
Lectura
REST para mercados y escaleras; un stream del libro para actualizaciones en vivo.
Trading
Órdenes limitadas y taker por acción, tick de 0.01.
Comisión de taker
0.018 x min(p, 1-p) por acción, cobrada en acciones del resultado. Los makers no pagan nada.
Liquidación
Una lectura puntual del precio del oráculo en cada límite. Sin promediar. Los empates pagan 50/50.
Geografía
Bloquea Estados Unidos.
Docs
docs.predict.fun

Cinco pasos, simplificados. Los nombres de endpoint de abajo son marcadores de la forma de cada llamada; toma las rutas exactas de la referencia, que cambia más a menudo que en los exchanges grandes.

  1. Autentícate

    import requests
    BASE = "https://api.predict.fun"          # confírmalo en la documentación
    H = {"X-API-Key": API_KEY}
  2. Lista las ventanas actuales

    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"]              # la apertura declarada, exacta al tick

    Las ventanas se encadenan: el precio de cierre de una ventana es el precio de inicio de la siguiente. Si tu propia fuente de spot no coincide con el precio de inicio declarado, fíate del declarado.

  3. Lee la escalera

    book = requests.get(f"{BASE}/markets/{m['id']}/orderbook", headers=H).json()
    best_ask = book["asks"][0]                 # [price, size]
    best_bid = book["bids"][0]

    En el último minuto casi todas las operaciones levantan la oferta o golpean el bid; nada se cruza dentro del spread. Modela tus ejecuciones al mejor precio disponible, no al punto medio.

  4. Envía una compra 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()

    La comisión sale de las acciones que recibes, así que una compra de 30 acciones a 50 centavos entrega unas 29,7 acciones.

  5. Lee las ejecuciones

    fills = requests.get(f"{BASE}/fills", headers=H).json()

La liquidación es la diferencia

Polymarket, Limitless y Kalshi liquidan los mercados cortos de cripto sobre una media del último minuto. Predict.fun liquida sobre una sola lectura. En ventanas planas las dos reglas discrepan más o menos una de cada diez veces, así que no mezcles los resultados de Predict.fun con los de los demás, ni traslades un modelo entrenado con los otros sin reentrenarlo.