Pred-Data Datos de cuotas

Tutorial práctico

Encuentra arbitrajes y precios +EV con Odds-API.io

Usa los endpoints /arbitrage-bets y /value-bets de Odds-API.io en Python, comprueba tú mismo los márgenes, escala los importes dentro de los límites de cada casa y conoce las limitaciones.

Última actualización: · Redactado y revisado por Ken Lin

Enlace de socio Enlace de socio — podríamos recibir una comisión. Consulta nuestra divulgación de afiliados.

Respuesta rápida

Odds-API.io calcula ambos por ti: /arbitrage-bets devuelve Arbitraje entre casas con el margen y el reparto de importes, y /value-bets devuelve precios por encima de una línea justa de casas sharp con su Valor esperado [1] [2]. Este tutorial obtiene ambos, comprueba las cuentas y explica los límites.

Qué necesitas

Qué necesitas: La función get() de Cuotas en vivo con Python y una clave con al menos dos casas seleccionadas [3].

Consigue una clave: Odds-API.io Enlace de socio

Enlace de socio — podríamos recibir una comisión. Consulta nuestra divulgación de afiliados.

Estado del código: El código Python de este tutorial se ejecutó con las respuestas de ejemplo publicadas en la documentación de Odds-API.io (comprobadas el 3 de noviembre de 2026), no con una clave real. Las respuestas reales pueden traer más campos; el código solo lee los documentados.

1. Obtén las oportunidades de arbitraje

bookmakers es obligatorio; minProfit va en porcentaje; includeEventDetails=true añade los equipos. Los márgenes se calculan con netOdds cuando hay comisiones de exchange o mercado de predicción [1]. El código recalcula cada margen a partir de las patas como control.

# reuses get() from the Python tutorial
arbs = get("/arbitrage-bets", bookmakers="Bet365,SingBet,Betano",
           minProfit=1, includeEventDetails="true", limit=50)

for a in arbs:
    # re-check the margin ourselves from the legs (netOdds where fees apply)
    s = sum(1 / float(l.get("netOdds") or l["odds"]) for l in a["legs"])
    mine = (1 - s) / s * 100
    ev = a.get("event", {})
    print(f'{ev.get("home")} v {ev.get("away")} | {a["market"]["name"]} {a["market"].get("hdp", "")}'
          f' | API {a["profitMargin"]:.2f}% vs recomputed {mine:.2f}%')

Con el ejemplo de la documentación (Betfair Exchange más 2,102 netos, Bet365 menos 2,05) el margen recalculado es del 3,78 % frente al 3,79 % de la API: una diferencia de redondeo.

2. Escala el reparto de importes

optimalStakes está calculado para totalStake (1.000 por defecto); multiplica todas las patas por el mismo factor y no superes el maxStake de cada una [1]. Compruébalo con la Calculadora de arbitraje.

def scale_stakes(arb, bankroll):
    """Scale optimalStakes to a bankroll, keeping every leg under its maxStake."""
    factor = bankroll / arb["totalStake"]
    for st in arb["optimalStakes"]:
        leg = next(l for l in arb["legs"]
                   if l["bookmaker"] == st["bookmaker"] and l["side"] == st["side"])
        if leg.get("maxStake"):
            factor = min(factor, leg["maxStake"] / st["stake"])
    return [{**st, "stake": round(st["stake"] * factor, 2),
             "potentialReturn": round(st["potentialReturn"] * factor, 2)}
            for st in arb["optimalStakes"]]

3. Obtén apuestas de valor (+EV)

/value-bets necesita un bookmaker; las cuotas justas salen de un panel de casas sharp y EV = probabilidad justa × cuota − 1 [2]. Como expectedValue es una fracción, puedes deducir la probabilidad justa. Usa la Calculadora de valor esperado (+EV) y la Calculadora del criterio de Kelly con cualquier fila.

vbs = get("/value-bets", bookmaker="Bet365", sport="football",
          includeEventDetails="true")

for vb in sorted(vbs, key=lambda v: v["expectedValue"], reverse=True)[:10]:
    side = vb["betSide"]
    odds = float(vb["bookmakerOdds"][side])
    fair_p = (vb["expectedValue"] + 1) / odds      # from EV = p x odds - 1
    ev = vb.get("event", {})
    print(f'{ev.get("home")} v {ev.get("away")} | {vb["market"]["name"]} {side} @ {odds}'
          f' | EV {vb["expectedValue"]:.2%} | implied fair p {fair_p:.1%}')

4. Conoce los límites

Los arbitrajes son solo prepartido y se eliminan en cuanto cambia un precio [1]; las casas pueden limitar las cuentas que los aprovechan [4]. El valor es una estimación frente a un consenso sharp; sigue el Valor de la línea de cierre para ver si se sostiene [5].

Preguntas frecuentes

¿Cada cuánto se actualizan las oportunidades?

Las apuestas de valor se recalculan cada 5 segundos y los arbitrajes cada pocos segundos, pero consulta al ritmo que permita tu plan.

¿Por qué mi margen recalculado difiere un poco?

Por redondeo: los netOdds de la API son cadenas redondeadas. Diferencias de centésimas de punto son normales.

¿Un precio +EV es un beneficio seguro?

No. El EV es una media a largo plazo y depende de la estimación de probabilidad justa; los resultados concretos varían.

Sobre esta guía

Pred-Data publica guías independientes y con fuentes enlazadas sobre los mercados de predicción y las herramientas de IA que se usan en ellos. Cada dato enlaza a una fuente primaria o secundaria fiable, verificada en la fecha indicada arriba. No operamos ninguna plataforma de trading, no aceptamos apuestas ni damos asesoramiento personal.

Autor: Ken Lin · Correcciones: si detectas un error, lo revisaremos y fecharemos la corrección.

Divulgación de afiliados

Algunos enlaces de este sitio (marcados como «Enlace de socio») pueden ser enlaces de afiliado: si te registras a través de ellos, podríamos recibir una comisión sin coste adicional para ti. Estos enlaces usan rel="sponsored nofollow" y nunca cambian nuestra valoración. Los enlaces a plataformas en las tablas comparativas son enlaces normales, no de afiliado, a sus webs oficiales.

Fuentes

  1. Arbitrage Bets guide (formula, response format, limitations) — Odds-API.io docs, consultado el 2 nov 2026
  2. Value Bets guide (EV formula, response format, limitations) — Odds-API.io docs, consultado el 2 nov 2026
  3. Quickstart (get a key, first calls, example responses) — Odds-API.io docs, consultado el 2 nov 2026
  4. What Is Arbitrage Betting? Definition & Example — Odds-API.io glossary, consultado el 2 nov 2026
  5. Value Bets API: Track Closing Line Value in Python — Odds-API.io blog, consultado el 2 nov 2026