> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinn.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Polling delta (actualizaciones)

> No recargues todo el board — obtén solo las cuotas que cambiaron.

Recargar todo el board en cada petición es un desperdicio. En su lugar, abre una **sesión**: un snapshot para establecer su base, y después deltas calculados respecto a ella.

1. **`/api/snapshot`** devuelve el estado actual y le entrega un `token`. Aquí es donde declara su ámbito.
2. **`/api/updated?since=<token>`** devuelve solo las **líneas modificadas** desde ese token, más un nuevo token para la llamada siguiente.

`/api/updated` nunca devuelve un snapshot: sin `since` responde `400`. La separación es deliberada — un endpoint llamado *updated* que devolviera todo el libro sería desconcertante, y caro.

```bash theme={null}
# 1) abrir la sesión — el token se emite aquí
curl https://api.apinn.io/api/snapshot -H "X-API-Key: SU_CLAVE"
# → { "snapshot": true, "token": "2026-07-24T15:36:48", "count": 33572, "odds": [ ... ] }

# 2) después consultar los deltas, devolviendo el último token recibido
curl "https://api.apinn.io/api/updated?since=2026-07-24T15:36:48" -H "X-API-Key: SU_CLAVE"
# → { "snapshot": false, "token": "2026-07-24T15:37:12", "window_seconds": 25, "count": 168, "odds": [ ... ] }
```

El campo `window_seconds` indica el tiempo cubierto por su delta — útil para ajustar su cadencia.

## Definir el ámbito de su sesión

La llamada al snapshot es también donde dice **de qué trata su sesión**. Añada `sport_id`, `league_id`, `event_id`, `market` o `period` (se aceptan listas separadas por comas): el snapshot se limita a ese ámbito, y el token recibido **lleva ese ámbito consigo**.

A partir de ahí solo envía el token. El servidor sabe sobre qué base calcular el delta, y su ámbito no puede desviarse a mitad de sesión por haber olvidado un parámetro.

```bash theme={null}
# 1) el snapshot fija el ámbito
curl "https://api.apinn.io/api/snapshot?sport_id=29&market=moneyline&period=0" -H "X-API-Key: SU_CLAVE"
# → { "snapshot": true, "token": "v1.eyJ0cyI6...", "scope": { "sports": [29], "markets": ["moneyline"], "periods": [0] }, "count": 510, ... }

# 2) el token basta — no hace falta repetir los filtros
curl "https://api.apinn.io/api/updated?since=v1.eyJ0cyI6..." -H "X-API-Key: SU_CLAVE"
# → { "snapshot": false, "scope": { ... }, "count": 3, "odds": [ ... ] }
```

Cada respuesta refleja el `scope`, para que siempre sepa qué significa su token. Para cambiar de ámbito, abra una nueva sesión con un nuevo snapshot.

## Lo que cuesta

Una llamada cuesta **1 + el número de líneas devueltas**. La frecuencia es casi gratuita; lo que se paga es el volumen. Dos consecuencias conviene anticipar.

El ámbito es la principal palanca sobre su factura. Medido en el libro en directo, un ámbito moneyline / tiempo reglamentario representa alrededor del 5 % de los movimientos — es decir, cerca del 5 % del coste de seguirlo todo. Su snapshot se factura igual, y esa es la otra razón para acotarlo: un snapshot del libro entero supera las 20 000 líneas.

Consultar más a menudo no le da datos más frescos gratis. Un precio que se mueve cinco veces en treinta segundos aparece **una sola vez** en un delta de 30 segundos, y hasta cinco veces con intervalos de 5 segundos, porque el cursor sigue el último cambio real de cada mercado. Una cadencia más rápida compra granularidad, no frescura.

<Note>
  Conserve el último `token` recibido y devuélvalo en cada llamada. Los tokens son opacos: trátelos como un cursor, no como una marca de tiempo que pueda calcular.
</Note>

<Tip>
  Si quiere un ámbito en continuo en lugar de a intervalos, el [flujo WebSocket](/es/concepts/websocket) es mucho más barato: la conexión cuesta **1 petición**, una sola vez, y acepta los mismos filtros como suscripción.
</Tip>
