Skip to Content
Referencia de la APILínea de cierre

Línea de Cierre

Devuelve la instantánea de la línea de cierre para un evento — las cuotas por casa de apuestas capturadas en el momento exacto en que cada sportsbook cambió el evento de pre-partido a en vivo. El endpoint es la fuente canónica para el análisis del valor de la línea de cierre (CLV) en apuestas realizadas antes del inicio del evento.

GET /api/v1/odds/closing

Cada sportsbook se captura de forma independiente la primera vez que cambia un evento dado a is_live=true. Las instantáneas capturadas permanecen en Valkey durante 48 horas después del inicio del evento. Más allá de esa ventana, utiliza /api/v1/historical/odds/closing (Enterprise, respaldado por ClickHouse).

Autenticación

Requiere API key. Disponible para los planes Pro, Sharp y Enterprise (función closing_line).

Parámetros de Consulta

ParámetroTipoPor defectoDescripción
event_idstringobligatorioIdentificador del evento. Mismos IDs que /api/v1/events.
sportsbookstringtodosFiltro de casas de apuestas separado por comas (p. ej., draftkings,fanduel). Se acepta books= como alias heredado.

event_id es obligatorio. Omitirlo devuelve 400 validation_error. Los caracteres no válidos en el valor también devuelven 400 validation_error.

Ejemplos de Solicitudes

curl -X GET "https://api.sharpapi.io/api/v1/odds/closing?event_id=mlb_athletics_mariners_2026-04-22" \ -H "X-API-Key: YOUR_API_KEY"

Respuesta

{ "success": true, "data": { "event_id": "mlb_athletics_mariners_2026-04-22", "sport": "baseball", "league": "mlb", "home_team": "Seattle Mariners", "away_team": "Athletics", "event_start_time": "2026-04-22T22:10:00Z", "captured_at": "2026-04-22T22:09:58.412Z", "books": { "draftkings": [ { "sportsbook": "draftkings", "market_type": "moneyline", "selection": "Seattle Mariners", "selection_type": "home", "odds_american": -165, "odds_decimal": 1.606 }, { "sportsbook": "draftkings", "market_type": "spread", "selection": "Seattle Mariners", "selection_type": "home", "line": -1.5, "odds_american": 130, "odds_decimal": 2.30 } ], "pinnacle": [ { "sportsbook": "pinnacle", "market_type": "moneyline", "selection": "Seattle Mariners", "selection_type": "home", "odds_american": -158, "odds_decimal": 1.633 } ] } }, "meta": { "source": "valkey", "updated_at": "2026-04-22T17:34:54.692Z" } }

Respuesta Vacía

Si no se ha capturado ninguna instantánea de cierre (el evento aún no ha comenzado, o el ID del evento no tiene capturas dentro de la ventana de 48h), la respuesta devuelve un objeto books vacío:

{ "success": true, "data": { "event_id": "mlb_athletics_mariners_2026-04-22", "books": {} }, "meta": { "source": "valkey", "updated_at": "2026-04-22T17:34:54.692Z" } }

Campos de Respuesta

CampoTipoDescripción
data.event_idstringIdentificador del evento devuelto desde la solicitud.
data.sportstringDeporte (p. ej., baseball). Vacío cuando no existen capturas.
data.leaguestringLiga (p. ej., mlb). Vacío cuando no existen capturas.
data.home_team, data.away_teamstringNombres de los equipos. Vacíos cuando no existen capturas.
data.event_start_timestringHora de inicio programada en formato ISO 8601.
data.captured_atstringMarca de tiempo ISO 8601 de la primera captura (la primera casa de apuestas en cambiar el evento a en vivo).
data.booksobjectMapa de book_id → ClosingOdd[]. {} vacío si no se ha capturado nada.

Estructura de ClosingOdd

CampoTipoDescripción
sportsbookstringIdentificador de la casa de apuestas (en minúsculas).
market_typestringP. ej., moneyline, spread, total, player_prop.
selectionstringEtiqueta de la selección (p. ej., nombre del equipo, nombre del jugador, over, under).
selection_typestringhome, away, over, under, etc.
linenumber?Línea de spread o total, cuando corresponda. Se omite en moneylines.
odds_americanintegerCuotas en formato americano en el momento de la captura.
odds_decimalnumberCuotas en formato decimal (3 decimales).
player_namestring?Presente para player props.
stat_categorystring?Categoría estadística (points, rebounds, etc.) para player props.

Caché

Las respuestas se almacenan en caché en el edge durante 30s (s-maxage=30) y en el cliente durante 10s (max-age=10). Las instantáneas de cierre no cambian después de la captura, por lo que esto es seguro.

Códigos de Error

EstadoCódigoSignificado
400validation_errorevent_id faltante o mal formado.
401missing_api_key / invalid_api_keyConsulta Autenticación.
403tier_restrictedPlan inferior a Pro.
503not_readyLa captura de la línea de cierre no está disponible actualmente (p. ej., el almacén de respaldo es inalcanzable). Reintenta.

Relacionado

Last updated on