Skip to Content
Referencia de la APICuotas de cierre por fecha

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/closing

Se requiere nivel Sharp o superior. Los niveles Pro e inferiores recibirán un error 403 tier_restricted. Este endpoint está restringido por la funcionalidad closing_lines.

Ventana de datos de la Fase 1: Las líneas de cierre se capturan en tiempo real en las transiciones isLive false→true. Valkey retiene 30 días de datos. Solicitar una fecha anterior a 30 días devolverá un resultado vacío.

Autenticación

Requiere API key. Se requiere nivel Sharp o superior (funcionalidad closing_lines).

Parámetros de consulta

ParámetroTipoObligatorioDescripción
datestringFecha en formato YYYY-MM-DD (UTC).
sportstringIdentificador del deporte, p. ej. basketball, football, ice_hockey.
leaguestringIdentificador 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

El nivel Sharp permite hasta 30 días de retroceso. Solicitar una fecha más allá de la ventana de tu nivel devuelve un error 403 tier_restricted con el tamaño de ventana permitido.

Ejemplos de solicitudes

# 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": "valkey:closing_line", "tier_window_days": 30, "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": "The 'closing_lines' feature requires Sharp or higher.", "required_tier": "sharp", "docs": "https://docs.sharpapi.io/en/pricing" } }

403 Nivel restringido (fecha demasiado antigua)

{ "error": { "code": "tier_restricted", "message": "Your sharp plan allows historical data up to 30 days back", "tier": "sharp", "docs": "https://sharpapi.io/pricing" } }

Campos de respuesta

Objeto data

CampoTipoDescripción
datestringLa fecha solicitada (YYYY-MM-DD)
sportstringFiltro de deporte aplicado
leaguestringFiltro de liga aplicado
eventsarrayEventos con líneas de cierre que coinciden con la fecha, deporte y liga
total_eventsintegerNúmero de eventos en la respuesta
total_linesintegerNúmero total de líneas de cierre individuales en todos los eventos y casas de apuestas

Objeto Event

CampoTipoDescripción
event_idstringIdentificador único del evento
sportstringDeporte
leaguestringLiga
home_teamstringNombre del equipo local
away_teamstringNombre del equipo visitante
event_start_timestringHora de inicio programada en formato ISO 8601
first_captured_atstringMarca temporal ISO 8601 de la primera captura de línea de cierre para este evento
booksarrayCargas útiles de líneas de cierre por casa de apuestas

Objeto Book

CampoTipoDescripción
bookstringIdentificador de la casa de apuestas
captured_atstringMarca temporal ISO 8601 de cuándo se capturó la línea de cierre de esta casa
linesarrayArray de entradas de líneas de cierre para esta casa

Entrada de línea de cierre

CampoTipoDescripción
market_typestringTipo de mercado: moneyline, point_spread, total_points, etc.
selectionstringEtiqueta de la selección (nombre del equipo, Over/Under, jugador)
selection_typestringhome, away, over, under, etc.
linenumber|nullValor del hándicap o total (-3.5, 220.5). null para moneylines.
player_namestringNombre del jugador para apuestas de jugador (se omite en otros casos)
stat_categorystringTipo de estadística para apuestas de jugador (se omite en otros casos)
odds_americanintegerCuotas americanas al cierre
odds_decimalnumberCuotas decimales al cierre
implied_probabilitynumberProbabilidad implícita en bruto (con margen)
no_vig_probabilitynumber|nullProbabilidad justa devigada mediante Power (0.0–1.0). Presente para mercados de 2 y 3 vías; null para mercados de selección única.
timestampstringMarca temporal ISO 8601 del registro de cuotas utilizado para la captura

Objeto meta

CampoTipoDescripción
sourcestringSiempre "valkey:closing_line" (backend de la Fase 1)
tier_window_daysintegerMáximo de días de retroceso para tu nivel (Sharp = 30)
updated_atstringMarca 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

Last updated on