Skip to Content

Oportunidades de Low Hold

Encuentra mercados con el menor vig (hold) entre casas de apuestas — las líneas más ajustadas disponibles.

GET /api/v1/opportunities/low_hold

Autenticación

Requiere API key. Se requiere nivel Pro o superior. Tu cuenta debe tener la característica low_hold habilitada.

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

Parámetros de Consulta

ParámetroTipoPredeterminadoDescripción
sportstringallFiltra por deporte(s), separados por comas (p. ej. basketball, football)
leaguestringallFiltra por liga(s), separadas por comas (p. ej. nba, nfl, nhl)
sportsbookstringtier-allowedFiltra por casa(s) de apuestas, separadas por comas. Se aplican los límites del nivel.
marketstringallFiltra por tipo(s) de mercado, separados por comas
max_holdnumber5.0Porcentaje máximo de hold (vig). Menor = líneas más ajustadas.
livebooleantrue = solo en vivo, false = solo prepartido, omitir = ambos
statestringpaCódigo de estado de EE. UU. para generar deep links (p. ej. pa, nj, co, mi)
sortstringholdCampo de ordenación: hold (menor primero, predeterminado), market, sport
limitinteger50Resultados por página (máximo 200)
offsetinteger0Offset de paginación (máximo 5000)

Filtrado de Múltiples Valores

Utiliza valores separados por comas para los filtros de selección múltiple:

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

Ejemplos de Solicitudes

# Moneylines de bajo hold por debajo del 2% de vig curl -X GET "https://api.sharpapi.io/api/v1/opportunities/low_hold?league=nba&max_hold=2&market=moneyline" \ -H "X-API-Key: YOUR_API_KEY" # Con estado para deep links curl -X GET "https://api.sharpapi.io/api/v1/opportunities/low_hold?league=nfl&state=nj" \ -H "X-API-Key: YOUR_API_KEY"

Respuesta

Éxito (200)

{ "success": true, "data": [ { "id": "lh_nba_lal_bos_ml_0", "event_id": "evt_nba_lal_bos_20260208", "event_name": "Los Angeles Lakers @ Boston Celtics", "sport": "basketball", "league": "nba", "market_type": "moneyline", "home_team": "Boston Celtics", "away_team": "Los Angeles Lakers", "start_time": "2026-02-08T19:00:00Z", "line": null, "hold_percentage": 1.8, "side1": { "selection": "Los Angeles Lakers", "books": ["draftkings", "betmgm"], "line": null, "odds": { "american": 145, "decimal": 2.45, "implied_probability": 0.408, "fair_probability": 0.415 }, "deep_links": { "draftkings": "https://sportsbook.draftkings.com/...", "betmgm": "https://sports.betmgm.com/..." } }, "side2": { "selection": "Boston Celtics", "books": ["pinnacle", "fanduel"], "line": null, "odds": { "american": -155, "decimal": 1.645, "implied_probability": 0.608, "fair_probability": 0.585 }, "deep_links": { "pinnacle": null, "fanduel": "https://sportsbook.fanduel.com/..." } }, "side3": null, "is_live": false, "is_alternate_line": false, "is_player_prop": false, "player_name": null, "stat_category": null, "all_books": ["draftkings", "betmgm", "pinnacle", "fanduel"], "confidence": 92, "odds_age_seconds": 5, "possibly_stale": false, "detected_at": "2026-02-08T14:22:10.456Z" } ], "pagination": { "limit": 50, "offset": 0, "total": 87, "has_more": true, "next_offset": 50 }, "meta": { "source": "cache", "summary": { "count": 87, "avg_hold": 2.4, "min_hold": 0.8, "by_market": { "moneyline": 35, "point_spread": 30, "total_points": 22 }, "by_sport": { "basketball": 87 } }, "filters": { "sport": null, "league": ["nba"], "sportsbook": null, "market": null, "max_hold": 5.0, "live": null, "state": "pa" } } }

Cabeceras de Respuesta

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 296 X-RateLimit-Reset: 1707401000 X-Data-Delay: 0 X-Request-Id: req_lh123abc456

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": "This endpoint requires Pro 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 Respuesta

CampoTipoDescripción
idstringIdentificador único de low-hold (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.)
home_teamstringNombre del equipo local
away_teamstringNombre del equipo visitante
start_timestring|nullHora de inicio del evento en formato ISO 8601
linenumber|nullLínea de spread/total (p. ej., -3.5, 220.5)
hold_percentagenumberPorcentaje de hold/vig del mercado (p. ej., 1.8 = 1,8%)
side1objectPrimer lado del mercado
side2objectSegundo lado del mercado
side3object|nullTercer lado (solo para mercados de 3 vías como el moneyline de fútbol)
is_livebooleanSi el evento está actualmente en vivo
is_alternate_linebooleanSi utiliza una línea no estándar
is_player_propbooleanSi 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)
all_booksstring[]Todas las casas de apuestas que participan en este mercado
confidencenumberMétrica de confianza (0-100)
odds_age_secondsnumberAntigüedad de las cuotas más obsoletas en segundos
possibly_stalebooleanSi los datos de cuotas pueden haberse movido desde la detección
detected_atstringCuándo se detectó la oportunidad (ISO 8601)

Objeto Side

CampoTipoDescripción
selectionstringNombre de la selección (p. ej., “Lakers”, “Over”)
booksstring[]Casas de apuestas que ofrecen el mejor precio en este lado
linenumber|nullValor de la línea para este lado
odds.americannumberCuotas americanas
odds.decimalnumberCuotas decimales
odds.implied_probabilitynumberProbabilidad implícita (0-1)
odds.fair_probabilitynumberProbabilidad justa ajustada por el hold
deep_linksobjectMapa del nombre de la casa de apuestas a la URL del deep link (o null si no está disponible)

Los deep links se generan en función del parámetro de consulta state. Pasa el código de estado de EE. UU. de tu usuario (p. ej., ?state=nj) para obtener las URLs correctas de la casa de apuestas para su jurisdicción.


¿Qué Es el Hold?

El hold (también llamado vig o juice) es el margen integrado de la casa de apuestas en un mercado. Es la diferencia entre las probabilidades implícitas combinadas y el 100%.

Hold % = (implied_prob_side1 + implied_prob_side2 - 1) × 100

Ejemplo

DraftKings: Lakers +145 (implícito 40,8%) Pinnacle: Celtics -155 (implícito 60,8%) Combinado: 101,6% Hold: 1,6%

Un hold del 1,6% significa que la casa de apuestas se queda con ~1,60 $ de cada 100 $ apostados en este mercado. Menor hold = mejor valor para los apostadores.

Por Qué Importa el Bajo Hold

Hold %CalidadOrigen Típico
< 1,5%ExcelenteCasas sharp, mejor precio entre casas
1,5 - 3%BuenoMercados competitivos
3 - 5%PromedioPrecios estándar de minoristas
5%+PobreProps, mercados exóticos

Los mercados de bajo hold te dan mejores cuotas independientemente de qué lado apuestes. Combinados con la detección de +EV, ayudan a maximizar los retornos esperados.

Bajo Hold vs Arbitraje

Bajo HoldArbitraje
HoldBajo pero > 0%Por debajo del 0% (hold negativo)
RiesgoNormal (eliges un lado)Cero (apuestas a ambos lados)
Caso de usoConseguir el mejor precioGarantizar beneficio
VolumenCientos disponiblesRaros (un solo dígito)

Las oportunidades de bajo hold son mucho más comunes que las de arbitraje. Representan las líneas más ajustadas disponibles entre casas — ideales para apostadores que quieren el mejor precio sin necesidad de apostar a ambos lados.

Mercados de Tres Vías

Para deportes con tres resultados (fútbol, resultado a tiempo completo de hockey), la respuesta incluye side3:

{ "side1": { "selection": "Home Win", "..." : "..." }, "side2": { "selection": "Draw", "..." : "..." }, "side3": { "selection": "Away Win", "..." : "..." }, "hold_percentage": 2.1 }

El cálculo del hold se extiende a los tres lados: implied_prob_1 + implied_prob_2 + implied_prob_3 - 1.

Buenas Prácticas

  1. Establece un max_hold ajustado — Usa max_hold=2 o max_hold=3 para centrarte en los mercados de mejor valor
  2. Pasa el parámetro state — Obtén deep links precisos para la jurisdicción de tu usuario
  3. Combínalo con datos de +EV — Bajo hold + EV positivo es la combinación ideal
  4. Comprueba possibly_stale — Omite oportunidades en las que las cuotas pueden haberse movido ya
  5. Utiliza streaming — Suscríbete a los eventos low_hold:detected mediante SSE o WebSocket para alertas en tiempo real
  6. Monitorea all_books — Más casas participando generalmente significa precios más fiables

Endpoints Relacionados

Last updated on