Skip to Content
Referencia de la APIResumen de middles

Resumen de Middles

Obtén estadísticas agregadas de las oportunidades de middles actuales sin la lista completa. Utiliza los mismos datos subyacentes que el endpoint Middles.

GET /api/v1/opportunities/middles/summary

AutenticaciónPermalink for this section

Requiere API key. Se requiere nivel Pro o superior.

Parámetros de ConsultaPermalink for this section

ParámetroTipoPor defectoDescripción
sportstringallFiltrar por deporte (p. ej., basketball, football)
leaguestringallFiltrar por liga (p. ej., nba, nfl, nhl)

Ejemplos de SolicitudesPermalink for this section

curl -X GET "https://api.sharpapi.io/api/v1/opportunities/middles/summary?league=nfl" \ -H "X-API-Key: YOUR_API_KEY"

RespuestaPermalink for this section

Éxito (200)Permalink for this section

{ "success": true, "data": { "total": 47, "positive_ev_count": 38, "guaranteed_profit_count": 2, "player_prop_count": 12, "by_sport": { "football": 18, "basketball": 15, "hockey": 8, "baseball": 6 }, "by_market": { "point_spread": 22, "total_points": 13, "player_points": 7, "player_rebounds": 5 }, "by_sportsbook": { "draftkings": 34, "fanduel": 31, "betmgm": 22, "caesars": 18, "bet365": 15 }, "avg_middle_size": 1.8, "avg_probability": 0.1245, "avg_ev": 4.72, "best_ev": { "ev": 31.52, "sport": "football", "market": "point_spread" }, "has_key_numbers_count": 14 }, "meta": { "source": "cache", "filters": { "sport": null, "league": ["nfl"] }, "updated_at": "2026-02-17T19:45:30Z" } }

Cabeceras de RespuestaPermalink for this section

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

Respuestas de ErrorPermalink for this section

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": "Middles detection requires Pro tier or higher", "docs": "https://docs.sharpapi.io/en/pricing" } }

Campos de RespuestaPermalink for this section

CampoTipoDescripción
totalintegerNúmero total de middles actuales
positive_ev_countintegerMiddles con valor esperado positivo
guaranteed_profit_countintegerMiddles que también son oportunidades de arbitraje
player_prop_countintegerMiddles en mercados de props de jugadores
by_sportobjectRecuento de middles por deporte
by_marketobjectRecuento de middles por tipo de mercado
by_sportsbookobjectRecuento de middles por sportsbook (cada casa de un middle se cuenta)
avg_middle_sizenumberTamaño medio del hueco del middle en puntos
avg_probabilitynumberProbabilidad media de que los middles acierten
avg_evnumberValor esperado medio por cada $100 apostados
best_evobject|nullResumen de la oportunidad con mayor EV
best_ev.evnumberEV en dólares por cada $100 apostados
best_ev.sportstringDeporte del middle con mayor EV
best_ev.marketstringTipo de mercado del middle con mayor EV
has_key_numbers_countintegerMiddles que contienen números clave específicos del deporte

Casos de UsoPermalink for this section

Resumen del PanelPermalink for this section

Utiliza el endpoint de resumen para alimentar widgets del panel que muestren los conteos de oportunidades de middles, los desgloses y los promedios sin recuperar la lista completa.

Sondeo vs. Recuperación CompletaPermalink for this section

Sondea el endpoint de resumen a intervalos más cortos para detectar cuándo aparecen nuevas oportunidades, y solo recupera el endpoint completo de Middles cuando cambie el conteo.

// Poll summary every 10 seconds let lastCount = 0; setInterval(async () => { const summary = await fetchMiddlesSummary(); if (summary.data.total !== lastCount) { lastCount = summary.data.total; const middles = await fetchMiddles(); // Full fetch updateUI(middles); } }, 10000);

El endpoint de resumen está cacheado durante 10 segundos y cuenta para tu rate limit igual que el endpoint completo de middles.

Endpoints RelacionadosPermalink for this section

Last updated on