pnclENGINEObtener acceso a la API

HISTORIAL DE CUOTAS

Guarda tú mismo el historial de cuotas de Pinnacle.

La API de cuotas de Pinnacle sirve los precios actuales y dice claramente que no tiene archivo histórico. El historial de una línea, un precio de cierre, la forma de un mercado a lo largo de una semana: todo eso solo existe si lo registraste mientras sondeabas. Esta página da un diseño de tablas, una regla de deduplicación y la aritmética de retención para un almacén que se mantiene pequeño.

Qué registrar

Con dos tablas basta. Una guarda los eventos, escritos una vez y actualizados cuando cambia la hora de inicio o el estado: event_id, sport_id, league, home, away y starts. La otra guarda los cambios de precio, una fila cada vez que el precio de una selección difiere de la última fila que tienes de ella: qué evento, qué periodo, qué mercado, qué lado, el precio y cuándo lo observaste.

CREATE TABLE price_changes (
  event_id    bigint      NOT NULL,
  period      smallint    NOT NULL,
  market      text        NOT NULL,   -- money_line, spread, total
  side        text        NOT NULL,   -- home, draw, away, over, under
  points      numeric(6,2),           -- spread or total line, else NULL
  price       numeric(8,3),           -- NULL when the market closed
  observed_at timestamptz NOT NULL,
  cursor_last bigint      NOT NULL,   -- the response's last value
  PRIMARY KEY (event_id, period, market, side, points, observed_at)
);

Guarda el precio como cuota decimal exactamente como se sirve, y conserva el nulo cuando un mercado está suspendido o cerrado. Una fila nula es información: registra cuándo desapareció el mercado, que es lo que necesita una consulta de precio de cierre.

Escribe solo lo que cambió

El cursor since ya limita un sondeo a los eventos que cambiaron, pero dentro de un evento con cambios la mayoría de las selecciones suelen estar igual que antes. Compara cada selección con la última fila que tienes e inserta solo cuando haya diferencia. Un pequeño mapa en memoria con el último precio por selección hace que la comparación sea gratis; reconstrúyelo desde la tabla al arrancar. Sin esta regla, un tablero de fútbol en vivo escribe todas las selecciones en cada sondeo, y la tabla crece con la tasa de sondeo y no con el movimiento real del mercado.

Capturar el cierre

El precio de cierre es el último precio observado antes de la hora de inicio del evento, y solo existe en tu almacén si el poller estaba funcionando en ese momento. Sondea los tableros prepartido hasta el mismo inicio, ya que el cursor mantiene el coste bajo, y deja que un trabajo que corre unos minutos después de cada inicio marque la última fila prepartido de cada selección como el cierre. Por qué el cierre merece su propia columna se explica en la guía de valor de la línea de cierre en pnclDATA: es la referencia contra la que la mayoría de los apostadores miden sus precios.

Aritmética de retención

El crecimiento del almacén depende del movimiento, no del sondeo, una vez que la deduplicación está en marcha. Las cifras de abajo ilustran la aritmética, no miden el feed; sustitúyelas por tus propios recuentos tras una semana de registro.

SupuestoValorResultado
Cambios de precio escritos por día, cinco deportes, en vivo y prepartido200,000Filas por día
Bytes por fila con índice12024 MB al día
Filas en bruto conservadas90 díasUnos 2,2 GB
Último precio por hora por selección más allá de 90 días1 fila por horaBastante menos de una décima parte del tamaño en bruto

Particiona la tabla de cambios por mes y elimina particiones en lugar de borrar filas. Conserva las filas de eventos mientras existan los cambios que las referencian.

Los huecos siguen siendo huecos

Nada en la API reproduce el pasado. Un poller que estuvo caído una hora tiene una hora sin filas, y el siguiente sondeo devuelve el estado actual, no el camino que llevó hasta él. Registra las interrupciones en una tabla aparte para que una consulta sobre el historial distinga un mercado tranquilo de uno ausente, y trata el día en que empezaste a registrar como el primer día que cubre tu historial. Qué comprobar antes de fiarte del archivo de otro con estos precios está en la guía de datos históricos de cuotas en pnclAPI.

Obtener acceso a la API

Preguntas antes de la primera fila

¿El endpoint de caídas puede rellenar el historial hacia atrás?

Solo unos minutos. El endpoint REST de caídas devuelve movimientos recientes dentro de una ventana acotada, lo que ayuda tras una interrupción corta y no más allá.

¿Debería guardar la respuesta completa como JSON?

Conserva una copia comprimida de las respuestas en bruto durante unos días si quieres volver a derivar filas tras un bug del parser, pero consulta la tabla normalizada. El JSON en bruto crece con la tasa de sondeo; la tabla de cambios crece con el mercado.

¿La clave gratuita permite esto?

Para un tablero sondeado cada 15 minutos, sí, y el historial será tosco. Un historial de línea útil necesita los planes REST de pago, cuya tasa por segundo es la cifra desde la que dimensionar.

La ausencia de archivo y el comportamiento del cursor siguen la documentación publicada por el proveedor, revisada el 26 de septiembre de 2026. Publicado el .