Historial +EV
Historial de precios de una apuesta en un partido: cada momento en que SharpAPI marcó la apuesta como +EV y, de forma opcional, el propio historial de precios de la casa de apuestas para esa misma apuesta.
GET /api/v1/ev/historySe requiere nivel Enterprise. Este endpoint está restringido por la funcionalidad history. Los niveles inferiores reciben 403 tier_restricted.
Parámetros de Consulta
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
game_id | string | — | Obligatorio. El partido que se consulta. |
sportsbook | string | todos | Filtra por casa(s) de apuestas, separadas por comas. Con include_book_trail=true se requiere exactamente una. |
market_type | string | todos | Filtra por tipo de mercado. Obligatorio con include_book_trail=true. |
selection | string | todos | Filtra por selección. Obligatorio con include_book_trail=true. |
line | number | todas | Filtra a una línea. Opcional, también con include_book_trail=true; si se omite, el historial cubre todas las líneas de ese mercado y el campo points de cada punto indica cuál. |
player | string | todos | Coincidencia exacta con el nombre del jugador, para props de jugadores. |
since | string | hace 60 minutos | Inicio de la ventana: marca de tiempo RFC 3339 o segundos Unix. |
limit | integer | 200 | Máximo de filas, 1–500. |
include_book_trail | boolean | false | true o 1 añade book_trail, book_trail_carry_in y prematch_close a la respuesta (ver abajo). |
Con include_book_trail=true, una solicitud que no fije una casa de apuestas, un market_type y una selection se rechaza con 400 validation_error: los puntos del historial no llevan etiqueta de casa de apuestas, mercado ni selección, por lo que una solicitud poco específica mezclaría varias apuestas en una sola serie.
Historial de la casa de apuestas
include_book_trail=true añade el propio historial de precios de la casa de apuestas para la apuesta fijada: los precios que mostró la casa, no solo los momentos en que SharpAPI marcó la apuesta como +EV.
{
"success": true,
"data": [ /* +EV rows */ ],
"book_trail": [ { "t": "2026-10-13T12:10:00Z", "price": -190, "points": 1.5, "locked": false } ],
"book_trail_carry_in": { "t": "2026-10-13T01:50:51.66Z", "price": -275, "points": 1.5, "locked": false },
"prematch_close": null,
"meta": {
"game_id": "…",
"count": 3,
"book_trail_available": true,
"book_trail_count": 1,
"book_trail_truncated": false
}
}book_trail_carry_in
El precio que ya está vigente en el borde izquierdo de tu ventana: la fila más reciente de la misma apuesta con marca de tiempo anterior a since. Dibújalo como punto de partida de la línea para que el gráfico no empiece en el primer cambio dentro de la ventana.
- Forma:
{ "t", "price", "points", "locked" }, los mismos campos que un punto debook_trail, onull. - Presente en todas las respuestas con
include_book_trail=true. Sin ese parámetro, la clave no aparece. - Es
nullcuando no existe ninguna fila dentro de las 36 horas anteriores a ahora (o asince, si es anterior). Por tanto, una apuesta cuya última actualización fue más de 36 horas antes de la ventana también devuelvenull. - No forma parte de
book_trail: nunca se combina con esos puntos y no se cuenta enmeta.book_trail_countni enmeta.book_trail_truncated, que describen solo las filas de la ventana.
Cómo interpretar “la línea se abrió en la ventana”. Considera que la línea se abrió dentro de la ventana solo cuando book_trail_carry_in es null y meta.book_trail_truncated es false. Cuando el historial está truncado, un punto de arrastre null no indica nada sobre cuándo se abrió la línea.
prematch_close
El último precio pre-partido de la casa para la apuesta fijada, o null. Es null hasta que el evento ha comenzado.