Cuotas de cierre históricas
Obtén las cuotas de cierre capturadas para todos los eventos en una fecha específica — el último precio previo al partido de cada casa de apuestas antes de que el evento pasara a directo, con probabilidades sin margen (no-vig) devigadas mediante el método Power.
GET /api/v1/historical/odds/closingSe requiere nivel Enterprise. Este endpoint está restringido por la funcionalidad history, disponible únicamente en el nivel Enterprise. Los niveles inferiores reciben un error 403 tier_restricted.
Las líneas de cierre se capturan en tiempo real en las transiciones is_live false→true y se persisten en ClickHouse. No hay límite de ventana móvil — el histórico completo está disponible (meta.tier_window_days es "unlimited").
Autenticación
Requiere API key. Se requiere nivel Enterprise (funcionalidad history).
Parámetros de consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
date | string | Sí | Fecha en formato YYYY-MM-DD (UTC). |
sport | string | Sí | Identificador del deporte, p. ej. basketball, football, ice_hockey. |
league | string | Sí | Identificador de la liga, p. ej. nba, nfl, nhl. |
Los tres parámetros son obligatorios. La respuesta se filtra a los eventos que coinciden exactamente con el deporte y la liga en esa fecha UTC.
Ventana de fechas
No hay límite de retroceso: la ventana de histórico de Enterprise es ilimitada (meta.tier_window_days es "unlimited").
Ejemplos de solicitudes
cURL
# Líneas de cierre de la NBA del 10 de abril
curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-10&sport=basketball&league=nba" \
-H "X-API-Key: YOUR_API_KEY"
# Líneas de cierre de la NFL
curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-06&sport=football&league=nfl" \
-H "X-API-Key: YOUR_API_KEY"Respuesta
Éxito (200)
{
"success": true,
"data": {
"date": "2026-04-10",
"sport": "basketball",
"league": "nba",
"events": [
{
"event_id": "evt_nba_bos_mia_20260410",
"sport": "basketball",
"league": "nba",
"home_team": "Boston Celtics",
"away_team": "Miami Heat",
"event_start_time": "2026-04-10T18:00:00Z",
"first_captured_at": "2026-04-10T17:58:12.000000000Z",
"books": [
{
"book": "pinnacle",
"captured_at": "2026-04-10T17:58:12.000000000Z",
"lines": [
{
"market_type": "moneyline",
"selection": "Boston Celtics",
"selection_type": "home",
"line": null,
"odds_american": -145,
"odds_decimal": 1.690,
"implied_probability": 0.5920,
"no_vig_probability": 0.5813
},
{
"market_type": "moneyline",
"selection": "Miami Heat",
"selection_type": "away",
"line": null,
"odds_american": 125,
"odds_decimal": 2.250,
"implied_probability": 0.4444,
"no_vig_probability": 0.4187
},
{
"market_type": "point_spread",
"selection": "Boston Celtics",
"selection_type": "home",
"line": -3.5,
"odds_american": -110,
"odds_decimal": 1.909,
"implied_probability": 0.5238,
"no_vig_probability": 0.5000
}
]
},
{
"book": "draftkings",
"captured_at": "2026-04-10T17:57:44.000000000Z",
"lines": [
{
"market_type": "moneyline",
"selection": "Boston Celtics",
"selection_type": "home",
"line": null,
"odds_american": -140,
"odds_decimal": 1.714,
"implied_probability": 0.5833,
"no_vig_probability": 0.5730
},
{
"market_type": "moneyline",
"selection": "Miami Heat",
"selection_type": "away",
"line": null,
"odds_american": 118,
"odds_decimal": 2.180,
"implied_probability": 0.4587,
"no_vig_probability": 0.4270
}
]
}
]
}
],
"total_events": 5,
"total_lines": 48
},
"meta": {
"source": "clickhouse",
"tier_window_days": "unlimited",
"filters": {
"sport": "basketball",
"league": "nba",
"date": "2026-04-10"
},
"updated_at": "2026-04-17T20:00:00.000000000Z"
}
}Respuestas de error
400 Error de validación
{
"error": {
"code": "validation_error",
"message": "date parameter is required in YYYY-MM-DD format"
}
}403 Nivel restringido (nivel incorrecto)
{
"error": {
"code": "tier_restricted",
"message": "This endpoint requires Enterprise tier or higher",
"required_tier": "enterprise",
"docs": "https://docs.sharpapi.io/en/pricing"
}
}Campos de respuesta
Objeto data
| Campo | Tipo | Descripción |
|---|---|---|
date | string | La fecha solicitada (YYYY-MM-DD) |
sport | string | Filtro de deporte aplicado |
league | string | Filtro de liga aplicado |
events | array | Eventos con líneas de cierre que coinciden con la fecha, deporte y liga |
total_events | integer | Número de eventos en la respuesta |
total_lines | integer | Número total de líneas de cierre individuales en todos los eventos y casas de apuestas |
Objeto Event
| Campo | Tipo | Descripción |
|---|---|---|
event_id | string | Identificador único del evento |
sport | string | Deporte |
league | string | Liga |
home_team | string | Nombre del equipo local |
away_team | string | Nombre del equipo visitante |
event_start_time | string | Hora de inicio programada en formato ISO 8601 |
first_captured_at | string | Marca temporal ISO 8601 de la primera captura de línea de cierre para este evento |
books | array | Cargas útiles de líneas de cierre por casa de apuestas |
Objeto Book
| Campo | Tipo | Descripción |
|---|---|---|
book | string | Identificador de la casa de apuestas |
captured_at | string | Marca temporal ISO 8601 de cuándo se capturó la línea de cierre de esta casa |
lines | array | Array de entradas de líneas de cierre para esta casa |
Entrada de línea de cierre
| Campo | Tipo | Descripción |
|---|---|---|
market_type | string | Tipo de mercado: moneyline, point_spread, total_points, etc. |
selection | string | Etiqueta de la selección (nombre del equipo, Over/Under, jugador) |
selection_type | string | home, away, over, under, etc. |
line | number|null | Valor del hándicap o total (-3.5, 220.5). null para moneylines. |
player_name | string | Nombre del jugador para apuestas de jugador (se omite en otros casos) |
stat_category | string | Tipo de estadística para apuestas de jugador (se omite en otros casos) |
odds_american | integer | Cuotas americanas al cierre |
odds_decimal | number | Cuotas decimales al cierre |
implied_probability | number | Probabilidad implícita en bruto (con margen) |
no_vig_probability | number|null | Probabilidad justa devigada mediante Power (0.0–1.0). Presente para mercados de 2 y 3 vías; null para mercados de selección única. |
timestamp | string | Marca temporal ISO 8601 del registro de cuotas utilizado para la captura |
Objeto meta
| Campo | Tipo | Descripción |
|---|---|---|
source | string | Almacén subyacente — "clickhouse" |
tier_window_days | string | Ventana de retroceso — "unlimited" en Enterprise |
updated_at | string | Marca temporal ISO 8601 de la respuesta |
Casos de uso
Análisis de CLV: Compara los valores de no_vig_probability entre casas de apuestas frente a Pinnacle. Una casa blanda con un no_vig_probability más alto sobre el favorito cerró más floja — CLV positivo para los apostantes que tomaron ese lado.
Auditoría de line shopping: Obtén las líneas de cierre de todas las casas de apuestas para entender dónde había valor disponible al cierre.
Calibración de modelos: Usa implied_probability y no_vig_probability como verdad histórica para calibrar tus propios modelos de probabilidad.
Endpoints relacionados
- Closing Line Value (CLV) — Agregados de CLV% agrupados por casa de apuestas, deporte, liga o día
- Snapshot de cuotas — Cuotas actuales en tiempo real
- Oportunidades +EV — Apuestas de valor esperado positivo en tiempo real