Skip to Content

Oportunidades de Arbitraje

Encuentra oportunidades de arbitraje con beneficio garantizado entre casas de apuestas.

GET /api/v1/opportunities/arbitrage

Autenticación

Requiere API key. Se requiere nivel Hobby o superior. Tu cuenta debe tener la función arbitrage habilitada.

Parámetros de Consulta

ParámetroTipoPor defectoDescripción
sportstringallFiltrar por deporte(s), separados por comas (p. ej. basketball, football)
leaguestringallFiltrar por liga(s), separadas por comas (p. ej. nba, nfl, nhl)
sportsbookstringtier-allowedFiltrar por casa(s) de apuestas, separadas por comas. Se aplican los límites del nivel.
marketstringallFiltrar por tipo(s) de mercado, separados por comas. Admite alias de categoría — consulta Odds: Alias de Categoría de Mercado.
min_profitnumber0.5Porcentaje mínimo de beneficio (p. ej. 1.0 = 1%)
livebooleantrue = solo en vivo, false = solo prepartido, omitir = ambos
formatstringjsonFormato de respuesta: json o csv. El CSV se descarga como arbitrage_YYYY-MM-DD.csv.
limitinteger50Resultados por página (máx. 200)
offsetinteger0Desplazamiento de paginación (máx. 5000)

Límite de beneficio: Las oportunidades con un beneficio superior al 10% se filtran automáticamente. Casi siempre son arbitrajes fantasma causados por cuotas obsoletas o suspendidas, en lugar de oportunidades reales.

Cambio incompatible: El campo game_state (marcador/periodo/reloj) se eliminó de esta respuesta. El estado del partido en vivo ahora se sirve exclusivamente desde el endpoint Game State y el canal de stream gamestate. Une las filas con el estado del partido mediante event_id.

Filtrado de Múltiples Valores

Usa valores separados por comas para los filtros multi-selección:

?sport=basketball,football&league=nba,nfl

Ejemplos de Solicitudes

curl -X GET "https://api.sharpapi.io/api/v1/opportunities/arbitrage?league=nba&min_profit=1" \ -H "X-API-Key: YOUR_API_KEY"

Respuesta

Éxito (200)

{ "success": true, "data": [ { "id": "arb_dk_pin_nba_lal_bos_ml", "event_id": "evt_nba_lal_bos_20260208", "event_name": "Los Angeles Lakers @ Boston Celtics", "sport": "basketball", "league": "nba", "market_type": "moneyline", "line": null, "profit_percent": 1.83, "implied_total": 98.2, "is_live": false, "start_time": "2026-02-08T19:00:00Z", "is_alternate_line": false, "possibly_stale": false, "oldest_odds_age_seconds": 8, "warnings": [], "ev_available": true, "ev_percentage": 3.5, "is_player_prop": false, "player_name": null, "stat_category": null, "legs": [ { "sportsbook": "draftkings", "selection": "Los Angeles Lakers", "odds_american": 145, "odds_decimal": 2.45, "implied_probability": 0.408, "stake_percent": 41.5, "timestamp": "2026-02-08T14:22:05.000Z", "external_event_id": "33483153", "selection_id": "sel_lal_ml", "market_id": "mkt_ml_33483153" }, { "sportsbook": "pinnacle", "selection": "Boston Celtics", "odds_american": -135, "odds_decimal": 1.74, "implied_probability": 0.574, "stake_percent": 58.5, "timestamp": "2026-02-08T14:22:08.000Z", "external_event_id": null, "selection_id": null, "market_id": null } ], "detected_at": "2026-02-08T14:22:10.456Z" } ], "pagination": { "limit": 50, "offset": 0, "has_more": false, "next_offset": null }, "meta": { "source": "cache", "summary": { "count": 3, "avg_profit": 1.23, "max_profit": 1.83, "by_market": { "moneyline": 2, "point_spread": 1 }, "by_sport": { "basketball": 3 } }, "filters": { "sport": null, "league": ["nba"], "sportsbook": null, "market": null, "live": null, "min_profit": 1.0 }, "books_analyzed": 8 } }

Cabeceras de Respuesta

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 297 X-RateLimit-Reset: 1707401000 X-Data-Delay: 0 X-Request-Id: req_arb789xyz012

Respuestas de Error

401 Unauthorized

{ "error": { "code": "unauthorized", "message": "Invalid or missing API key", "docs": "https://docs.sharpapi.io/en/authentication" } }

403 Tier Required

{ "error": { "code": "tier_restricted", "message": "Arbitrage detection requires Hobby tier or higher", "docs": "https://docs.sharpapi.io/en/pricing" } }

429 Rate Limited

{ "error": { "code": "rate_limited", "message": "Rate limit exceeded", "docs": "https://docs.sharpapi.io/en/api-reference/overview" } }

Campos de la Respuesta

CampoTipoDescripción
idstringIdentificador único del arbitraje (hash)
event_idstringIdentificador del evento
event_namestringNombre del evento legible para humanos
sportstringIdentificador del deporte (en minúsculas)
leaguestringIdentificador de la liga
market_typestringTipo de mercado (moneyline, point_spread, total_points, etc.)
linenumber|nullLínea de hándicap/total (p. ej. -3.5)
profit_percentnumberBeneficio garantizado como porcentaje (p. ej. 1.83 = 1,83%)
implied_totalnumberSuma de las probabilidades implícitas de todas las patas (por debajo de 100 = existe arbitraje)
is_livebooleanIndica si el evento está actualmente en vivo
start_timestring|nullHora de inicio del evento en ISO 8601
is_alternate_linebooleanIndica si utiliza una línea no estándar
possibly_stalebooleanIndica si las cuotas pueden haberse movido desde la detección
oldest_odds_age_secondsnumber|nullAntigüedad de las cuotas de la pata más antigua, en segundos
warningsstring[]Indicadores de advertencia. Valores posibles: LIVE_GAME, LIVE_HIGH_PROFIT_SUSPICIOUS, LOW_IMPLIED_TOTAL, POTENTIALLY_STALE_ODDS, VERY_STALE_ODDS
ev_availablebooleanIndica si existe una oportunidad de EV en este mercado
ev_percentagenumber|nullPorcentaje de EV si está disponible
is_player_propbooleanIndica si se trata de un mercado de prop de jugador
player_namestring|nullNombre del jugador (si es prop de jugador)
stat_categorystring|nullTipo de estadística (si es prop de jugador, p. ej. points, rebounds)
legsarrayArray de patas de apuesta que forman el arbitraje
detected_atstringMarca de tiempo ISO 8601 de cuándo se detectó el arbitraje por primera vez

Objeto Leg

CampoTipoDescripción
sportsbookstringCasa de apuestas para esta pata
selectionstringLa selección (nombre del equipo, Over/Under, etc.)
odds_americannumberCuotas americanas para esta pata
odds_decimalnumberCuotas decimales para esta pata
implied_probabilitynumberProbabilidad implícita (de 0,0 a 1,0)
stake_percentnumberPorcentaje del stake total a colocar en esta pata
timestampstring|nullCuándo se capturaron estas cuotas (ISO 8601)
external_event_idstring|nullID nativo del evento en la casa de apuestas
selection_idstring|nullID de la selección/resultado en la casa de apuestas
market_idstring|nullID del mercado en la casa de apuestas

Formato CSV

Cuando se usa ?format=csv, la respuesta se descarga como arbitrage_YYYY-MM-DD.csv con las siguientes columnas:

event,sport,market,line,profit%,implied_total,book1,selection1,odds1,stake1%,book2,selection2,odds2,stake2%,is_live,is_alternate_line,possibly_stale,warnings,detected_at

Cómo Funciona el Arbitraje

El arbitraje aprovecha las diferencias de precio entre casas de apuestas para garantizar un beneficio independientemente del resultado. Cuando las probabilidades implícitas combinadas de todas las patas de un mercado suman menos del 100%, existe una oportunidad de arbitraje.

El Principio Fundamental

Book A: Team X +150 (implied 40.0%) Book B: Team Y -130 (implied 56.5%) Total implied: 96.5% < 100% = ARBITRAGE

Cuando el total está por debajo del 100%, puedes apostar de forma proporcional en todos los resultados y garantizar un beneficio.

Cálculo del Beneficio

Profit % = (100 / implied_total) - 100

Usando el ejemplo anterior:

Profit % = (100 / 96.5) - 100 = 3.63%

Esto significa que por cada 1.000 $ apostados, tienes garantizados aproximadamente 36,30 $ de beneficio.

Cálculo de los Stakes Óptimos

Para garantizar retornos iguales independientemente del resultado, asigna los stakes de forma proporcional:

// Decimal odds: Team X = 2.50, Team Y = 1.77 const impliedX = 1 / 2.50; // 0.400 const impliedY = 1 / 1.77; // 0.565 const total = impliedX + impliedY; // 0.965 const stakeX = impliedX / total; // 41.5% of bankroll const stakeY = impliedY / total; // 58.5% of bankroll

Ejemplo Completo de Stake

Bankroll total para este arbitraje: 1.000 $

PataStakeCuotasPago si gana
Team X @ DraftKings415 $+1501.037,50 $
Team Y @ Pinnacle585 $-1301.035,00 $

Beneficio garantizado: ~35-38 $ (3,5-3,8%) independientemente del resultado.

Arbitraje a Tres Vías

Deportes como el fútbol y el hockey tienen mercados a tres vías (local/empate/visitante), que también pueden generar arbitrajes:

Home Win: +200 (33.3%) Draw: +250 (28.6%) Away Win: +180 (35.7%) Total implied: 97.6% -> 2.4% arbitrage profit

Se aplica el mismo cálculo de stake: divide la probabilidad implícita de cada pata entre el total para determinar la asignación del stake.

Por Qué Existen los Arbitrajes

  1. Diferencias de tiempo - Las casas de apuestas actualizan las cuotas a distintas velocidades
  2. Opiniones divergentes - Las casas tienen distintos modelos de riesgo y exposición
  3. Promociones - Las cuotas potenciadas de una casa crean huecos artificiales
  4. Errores - Ocasionalmente, una casa publica cuotas incorrectas

Buenas Prácticas

Riesgo de cuenta: Las casas de apuestas monitorizan activamente la actividad de arbitraje. Las cuentas que colocan exclusivamente apuestas de arbitraje pueden ser limitadas o restringidas. Considera mezclar las apuestas de arbitraje con actividad recreativa.

  1. Actúa rápido - Las ventanas de arbitraje suelen ser efímeras (segundos a minutos)
  2. Redondea tus stakes - Una apuesta de 47,32 $ resulta sospechosa; redondea a 50 $
  3. Usa stakes precalculados - El campo stake_percent te da la asignación óptima
  4. Verifica las cuotas antes de apostar - Confirma siempre que las cuotas en la casa de apuestas no se han movido
  5. Empieza con arbitrajes mayores - Céntrate en min_profit=1 o superior para tener en cuenta el movimiento de líneas
  6. Sigue el implied_total - Totales más bajos significan mayores beneficios garantizados
  7. Diversifica casas de apuestas - Distribuir la actividad entre muchas casas reduce el riesgo individual de cada cuenta

Arbitraje vs Apuestas +EV

AspectoArbitrajeApuestas +EV
RiesgoCero (beneficio garantizado)Existe varianza
Beneficio por apuesta1-3% típico2-10% de ventaja
Riesgo de cuentaAlto (limitaciones probables)Menor
Capital requeridoAlto (apostar a ambos lados)Menor
SostenibilidadLimitada por la salud de la cuentaViable a largo plazo

Muchos apostadores experimentados prefieren las apuestas +EV al arbitraje porque las cuentas duran más y las ventajas esperadas suelen ser mayores. Consulta el endpoint de Oportunidades +EV para más detalles.

Endpoints Relacionados

Last updated on