Skip to Content
Referencia de la APIReparto de apuestas

Splits de Apuestas

Obtén splits de apuestas públicas (handle % y bet %) de DraftKings, Circa Sports y BetMGM.

Cada fila corresponde a un evento en una fuente. Incluye la proporción de tickets (bets_pct) y, cuando la fuente la publica, la proporción del dinero (handle_pct) en cada lado de los mercados que cubre: moneyline, spread y total. Úsalo para ver de qué lado apuesta el público y dónde el dinero pesa más que el número de tickets. Para ver cómo cambiaron los splits de un evento a lo largo del tiempo, usa el Historial de Splits descrito más abajo.

GET /api/v1/splits

AutenticaciónEnlace permanente a esta sección

Requiere API key. Requiere plan Pro (229 $/mes) o superior.

¿Qué son los splits de apuestas?Enlace permanente a esta sección

Handle % es el porcentaje del dinero total apostado en cada lado. Bet % es el porcentaje del total de tickets (apuestas realizadas) en cada lado.

La diferencia entre bet % y handle % revela el dinero sharp. Si el 30 % de los tickets concentra el 60 % del dinero, los apostantes sharp están en ese lado.

Fuentes de DatosEnlace permanente a esta sección

FuenteTipoQué incluyeFrecuencia de Actualización
DraftKingsCasa recreativa (~35 % de cuota del mercado de EE. UU.)Handle % y bet %Cada 5 minutos
Circa SportsCasa orientada a sharps (atrae profesionales)Handle % y bet %Cada 5 minutos
BetMGMCasa recreativa — derivada de su propio campo de porcentaje de apuestas públicasSolo bet % — los valores de handle_pct son nullIntermitente

Comparar los splits de DraftKings (recreativa) frente a Circa (sharp) revela dónde el dinero profesional diverge del público.

La cobertura está fijada en estas tres casas. No crece con el cupo de casas de apuestas de tu plan: seleccionar más casas, o subir de nivel, no añade fuentes de splits. Ninguna otra casa publica splits de apuestas y no hay más previstas. Como BetMGM solo aporta un porcentaje de tickets, la brecha bet %/handle % que revela el dinero sharp únicamente puede calcularse en las filas de DraftKings y Circa. El historial incluye muestras de DraftKings, Circa y BetMGM capturadas durante las 48 horas de retención. BetMGM solo publica porcentajes de tickets; sus porcentajes de dinero siguen siendo null.

consensus es una etiqueta, no una casa de apuestas. Cuando todas las fuentes que cubren un evento publican cifras idénticas, esas filas se fusionan en una sola con "sportsbook": "consensus". La API la aplica de forma sintética: nunca aparece en /api/v1/sportsbooks, aunque /splits?sportsbook=consensus sí filtra por ella. Un filtro sportsbook=draftkings no devuelve las filas fusionadas.

Parámetros de ConsultaEnlace permanente a esta sección

ParámetroTipoDescripción
sportstringFiltra por deporte (separado por comas). Ejemplo: basketball
leaguestringFiltra por liga (separado por comas). Ejemplo: nba,ncaab
sportsbookstringFiltra por fuente de splits. Ejemplo: draftkings,circa. También acepta el valor sintético consensus.
event_idstringFiltra por ID canónico de evento (separado por comas)
marketstringFiltra eventos que incluyan un mercado de splits dado (separado por comas). Uno o más de spread, total, moneyline.
limitintegerResultados máximos (predeterminado 100, máximo 200)
offsetintegerDesplazamiento de paginación (predeterminado 0)

RespuestaEnlace permanente a esta sección

{ "data": [ { "event_id": "mlb_guardians_orioles_2026-04-16", "sport": "baseball", "league": "mlb", "sportsbook": "draftkings", "away_team": "Baltimore Orioles", "home_team": "Cleveland Guardians", "spread": { "away_odds": -1.5, "home_odds": 1.5, "handle_pct": { "away": 0.22, "home": 0.78 }, "bets_pct": { "away": 0.20, "home": 0.80 } }, "total": { "line": 8, "handle_pct": { "over": 0.53, "under": 0.47 }, "bets_pct": { "over": 0.57, "under": 0.43 } }, "moneyline": { "away_odds": 104, "home_odds": -126, "handle_pct": { "away": 0.28, "home": 0.72 }, "bets_pct": { "away": 0.33, "home": 0.67 } }, "fetched_at": "2026-04-16T19:25:28.363825+00:00", "available_metrics": ["bets_pct", "handle_pct"] } ], "pagination": { "limit": 100, "offset": 0, "count": 1, "total": 41, "has_more": false, "next_offset": null }, "updated_at": "2026-04-16T19:29:38.920698424Z" }

En la respuesta de /splits el spread incluye los valores de line dentro de las claves away_odds/home_odds (p. ej., -1.5 / +1.5) — esta nomenclatura es una inconsistencia conocida. El endpoint histórico utiliza away_line/home_line para los mismos datos.

Campos de RespuestaEnlace permanente a esta sección

CampoTipoDescripción
event_idstringID canónico de evento — úsalo para hacer join con los datos de /odds
sportstringNombre de deporte normalizado por Atlas
leaguestringNombre de liga normalizado por Atlas
sportsbookstringCasa de apuestas fuente de los datos de splits (draftkings, circa, betmgm o el valor sintético consensus)
away_teamstringNombre del equipo visitante
home_teamstringNombre del equipo local
spread.away_oddsnumberValor de line del spread visitante (p. ej., -1.5) — consulta el aviso anterior
spread.home_oddsnumberValor de line del spread local (p. ej., +1.5)
spread.handle_pctobject% de dinero en cada lado (away, home; 0.0-1.0)
spread.bets_pctobject% de tickets en cada lado (away, home; 0.0-1.0)
total.linenumberLínea de over/under (p. ej., 225.5)
total.handle_pctobject% de dinero (over, under; 0.0-1.0)
total.bets_pctobject% de tickets (over, under; 0.0-1.0)
moneyline.away_oddsnumberCuotas de moneyline del visitante (formato americano)
moneyline.home_oddsnumberCuotas de moneyline del local (formato americano)
moneyline.handle_pctobject% de dinero en cada lado (away, home; 0.0-1.0)
moneyline.bets_pctobject% de tickets en cada lado (away, home; 0.0-1.0)
fetched_atstringMarca de tiempo ISO 8601 de la última extracción de datos
available_metricsarrayQué métricas de split llega a publicar la casa de apuestas de esta fila — bets_pct, handle_pct o ambas, siempre en ese orden. Es una afirmación sobre la casa, no sobre los valores de esta fila. Se omite cuando la casa no está declarada — véase más abajo.

Qué valores pueden ser null, y cuáles pueden faltar. Las claves de porcentaje y las claves de cuotas de la línea de dinero anteriores siempre están presentes, aunque algunas llevan null en lugar de un número. Otras claves pueden faltar en vez de llevar null: total.line se omite en un evento para el que la casa no ha publicado un total, spread.away_odds / .home_odds se omiten en una fila betmgm sin línea de spread, y available_metrics se omite para una casa que SharpAPI no ha declarado — léelas con un valor por defecto en lugar de dar por hecho que la clave existe. handle_pct.away / .home (y .over / .under en los totales) son null en todas las filas betmgm, porque BetMGM solo publica un porcentaje de tickets — no hay cifra de handle que informar. Los valores de bets_pct son null cuando la fuente aún no ha publicado un porcentaje para ese mercado; el feed de BetMGM es intermitente, así que ahí es donde aparece. moneyline.away_odds / .home_odds son null cuando una casa ha retirado la línea de dinero de un evento pero sigue publicando sus porcentajes de splits — esto también ocurre en filas de DraftKings y Circa, no solo de BetMGM. La especificación OpenAPI declara todo esto como nullable, de modo que un cliente generado los aceptará. spread.away_odds / .home_odds son null cuando la fuente no ha publicado una línea de spread para el partido, y los valores de bets_pct y handle_pct de ese spread también son null.

El campo event_id utiliza el mismo formato de ID canónico que el endpoint /odds, por lo que puedes hacer join de splits con datos de cuotas directamente. Por ejemplo, obtén las cuotas de un partido específico y compáralas con sus splits:

GET /api/v1/odds?event_id=nba_thunder_timberwolves_2026-03-15 GET /api/v1/splits?event_id=nba_thunder_timberwolves_2026-03-15

/odds no incluye el bet % público por fila. Los splits de apuestas (% de dinero y % de tickets) solo están disponibles a través de este endpoint (/splits) y su versión histórica (/splits/history). No existe el campo public_bet_pct en las filas de /odds.

Cómo leer available_metricsEnlace permanente a esta sección

Una fila de splits puede incluir available_metrics, un array que nombra las métricas de split que la casa de apuestas de esa fila llega a publicar. Describe la casa, no la fila: una casa que publica el porcentaje de dinero sigue listando handle_pct aunque los miembros handle_pct de esa fila sean null.

Solo pueden aparecer dos nombres, siempre en este orden, y cada uno es exactamente una clave dentro de los objetos spread, total y moneyline, de modo que un nombre aquí apunta a un campo que puede consultar:

  • bets_pct — porcentaje de tickets (apuestas realizadas), 0.0-1.0
  • handle_pct — porcentaje de dinero (handle), 0.0-1.0

El campo se omite por completo cuando SharpAPI no ha declarado qué publica una casa. Su ausencia significa no declarado, nunca no publica nada.

Lea la lista junto con el valor. Tomando handle_pct como ejemplo:

available_metricsMiembros de handle_pctQué significa
presente, lista handle_pctnúmerosLa casa publica el porcentaje de dinero y lo tenemos.
presente, lista handle_pctnullLa casa publica el porcentaje de dinero y nos falta — una carencia de nuestro lado, no una limitación de la casa.
presente, no lista handle_pctnullLa casa no publica el porcentaje de dinero. No hay nada roto.
presente, no lista handle_pctnúmerosNo debería ocurrir; trátelo como una declaración desactualizada y confíe en el valor.
ausentenúmeros o nullNo se declara nada sobre esta casa. No deduzca en ningún sentido — lea los valores por sí mismos y no registre la casa como que no publica nada.

Una fila consensus lleva la intersección. Una fila fusionada con "sportsbook": "consensus" agrupa varias casas, así que su afirmación debe cumplirse para todas ellas: lista solo las métricas que declaran todas las casas contribuyentes, y omite el campo por completo si alguna de ellas no está declarada.

EjemplosEnlace permanente a esta sección

curl "https://api.sharpapi.io/api/v1/splits?league=nba" \ -H "X-API-Key: YOUR_API_KEY"

Historial de SplitsEnlace permanente a esta sección

Realiza un seguimiento de cómo cambian los splits a lo largo del tiempo para un evento concreto.

GET /api/v1/splits/history?event_id={event_id}

Parámetros de ConsultaEnlace permanente a esta sección

ParámetroTipoObligatorioDescripción
event_idstringSíID canónico de evento
sportsbookstringNoFiltra por casa (separadas por comas), antes de paginar.
start_timestringNoLímite inferior. RFC 3339 (2026-04-16T13:00:00Z) o segundos Unix (1776344602).
end_timestringNoLímite superior, mismos formatos.
limitintegerNoEntradas máximas (predeterminado 100, máximo 200).
cursorstringNoToken de continuación de meta.next_cursor; conserva los filtros de evento, casa y tiempo.

La retención es de solo 48 horas. No hay archivo a largo plazo ni recuperación de muestras fuera de esa ventana. Sigue meta.next_cursor mientras meta.has_more sea true. meta.total, books, oldest y newest describen la página actual; meta.limit es el tamaño efectivo (100 por defecto, máximo 200; los valores mayores se limitan a 200). Mantén el mismo end_time en todas las páginas para un intervalo fijo. Las fechas no válidas o los cursores incompatibles devuelven 400; los fallos temporales del almacén devuelven 503.

RespuestaEnlace permanente a esta sección

Las entradas se ordenan de la más antigua a la más reciente. Este endpoint emite el envoltorio de éxito (success/data/meta) — distinto de /splits, que emite data/pagination/updated_at.

El payload del historial usa book (no sportsbook) y el spread incluye away_line/home_line (no away_odds/home_odds). Ambas son inconsistencias conocidas frente a /splits. Cada entrada incluye además available_metrics, con el mismo significado que en /splits: las métricas que llega a publicar la casa de esa entrada. Se omite para una casa que SharpAPI no ha declarado.

Los valores del historial pueden no estar disponibles. Los porcentajes pueden ser null; BetMGM nunca publica porcentajes de dinero. Las líneas y cuotas pueden faltar o ser null. Consulta available_metrics para saber qué métricas publica la casa y comprueba los valores ausentes o nulos de cada mercado.

{ "success": true, "data": [ { "available_metrics": ["bets_pct", "handle_pct"], "book": "circa", "ts": "2026-04-16T13:03:21.071966+00:00", "timestamp": 1776344602.36, "spread": { "away_line": -1.5, "home_line": 1.5, "handle_pct": { "away": 0.37, "home": 0.63 }, "bets_pct": { "away": 0.27, "home": 0.73 } }, "total": { "line": 8, "handle_pct": { "over": 0.43, "under": 0.57 }, "bets_pct": { "over": 0.55, "under": 0.45 } }, "moneyline": { "away_odds": 104, "home_odds": -126, "handle_pct": { "away": 0.35, "home": 0.65 }, "bets_pct": { "away": 0.35, "home": 0.65 } } } ], "meta": { "event_id": "mlb_guardians_orioles_2026-04-16", "total": 1, "books": ["circa"], "limit": 100, "has_more": false, "next_cursor": "", "oldest": "2026-04-16T13:03:22.360588312Z", "newest": "2026-04-16T13:03:22.360588312Z", "updated_at": "2026-04-16T19:28:50.525875452Z" } }

Los datos se recopilan cada ~5 minutos y se conservan durante 48 horas mediante un sorted set de Valkey (splits_history:{event_id}) puntuado por timestamp Unix.

curl "https://api.sharpapi.io/api/v1/splits/history?event_id=nba_thunder_timberwolves_2026-03-15" \ -H "X-API-Key: YOUR_API_KEY"

Interpretación de los SplitsEnlace permanente a esta sección

SeñalQué significa
Bet % alto, Handle % bajoLado público — muchas apuestas pequeñas
Bet % bajo, Handle % altoLado sharp — menos apuestas pero más grandes
DK y Circa coincidenConsenso de mercado — público y sharp alineados
DK y Circa divergenBrecha sharp-público — Circa (sharp) discrepa de DK (público)

Los splits provienen únicamente de tres casas — DraftKings y BetMGM (recreativas) y Circa (cercana al perfil sharp). Ninguna casa verdaderamente sharp publica splits, y no hay más fuentes previstas. Utiliza los splits como una señal más junto con el movimiento de líneas y el análisis de +EV, no de forma aislada.

Last updated on