period, market, line) y lleva un line_id entero estable.
Tipos de mercado
Para los mercados 2‑way (spread/totals),
odds0 es null.
units — la unidad de la línea (tenis: juegos vs sets)
Algunos deportes cotizan el mismo mercado en dos unidades distintas. En tenis, un spread puede ser un
hándicap de sets (línea ±1.5) o un hándicap de juegos (línea -4.5, +5.5…), y un totals puede
referirse a sets (2.5) o a juegos (21.5). El campo units elimina la ambigüedad:
Los totales por jugador (
home_totals / away_totals) del tenis están siempre en juegos (units = "Games").
El campo está presente en /api/odds, /api/opening, /api/closing, /api/history y los flujos en tiempo real.
Periodos
period = 0 = partido completo. Los demás periodos dependen del deporte (1 = 1.ª mitad / set, etc.). Obtén el catálogo mediante /api/periods.
Líneas principales vs alt‑lines
Por defecto,/api/odds devuelve todas las líneas (incluidas las alternativas). Añade main_lines_only=1 para conservar solo la línea principal de cada mercado (alt_line_id nulo).
max_win
max_win = apuesta máxima aceptada (límite Pinnacle) en la línea, indicador de liquidez.
Historial: max_win y status son puntos de la serie
/api/history devuelve un punto por cambio real, nunca un valor repetido. Se crea un punto en
cuanto se mueve alguno de estos campos:
Un
max_win que sube mientras la cuota no se mueve es una señal de confianza de la casa; un
max_win que se desploma suele preceder a una suspensión. La serie ya viene deduplicada, se puede
graficar tal cual.
Aislar una sola apuesta
Sin filtro,/api/history devuelve la cronología de todas las líneas del partido. En un partido
de baloncesto con sus alt-lines eso supera habitualmente los 24.000 puntos repartidos en más de 400
apuestas — cuando usted solo quería una curva.
Dos maneras de designar la apuesta, según lo que ya tenga a mano:
Los filtros valen igualmente para
opening y closing: obtiene la apertura y el cierre de la
apuesta solicitada, no los de las otras 414.
Medido sobre un partido real:
Los tres niveles de estado
Pinnacle publica un estado en tres escalas distintas, cada una con su propio vocabulario. Confundirlas es el error más frecuente: un mercado cerrado no significa un partido terminado, y una parte liquidada no cierra las apuestas del partido completo.Nivel línea
El estado pertenece a la línea, no al mercado. Dentro de un mismo(event_id, period, market)
los peldaños divergen — Pinnacle cierra un total concreto y mantiene abiertos los vecinos:
status, un entero de paridad BIC (1 = abierto, 2 = todo lo demás), y
status_raw, la palabra tal como la envía Pinnacle.
status_raw solo se rellena en las cuotas actuales. El histórico (/api/history,
full_history=1) guarda únicamente el entero: la palabra original no se almacena, así que allí el
campo vale null.Nivel periodo
/api/fixtures expone periods, una lista {period, status, cutoff}. Aquí es donde Pinnacle
declara que una parte está cerrada, con independencia de las líneas y del estado del partido:
La liquidación de un periodo es un evento en sí mismo en el flujo: una parte que pasa a
settled dispara una trama event: update, sin que ninguna cuota tenga que moverse.Distinguir una suspensión de un cierre definitivo
No lo dice ningún campo: lo dice el tiempo:- suspensión — la línea sigue publicada, pasa a
closed, conserva su última cuota conocida (no la borramos, igual que la interfaz de Pinnacle atenúa el precio) y después vuelve aopen; - cierre definitivo — la línea deja de publicarse: su
cutoffvence, sale de/api/oddsy se anuncia una eliminación en el flujo (véase Prepartido y en directo).