> ## 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 (mises à jour)

> Ne rechargez pas tout le board : ne récupérez que les cotes qui ont changé.

Recharger tout le board à chaque requête est un gaspillage. À la place, vous ouvrez une **session** : un snapshot pour établir votre base, puis des deltas calculés par rapport à elle.

1. **`/api/snapshot`** renvoie l'état courant et vous délivre un `token`. C'est là que vous déclarez votre périmètre.
2. **`/api/updated?since=<token>`** ne renvoie que les **lignes modifiées** depuis ce token, plus un nouveau token pour l'appel suivant.

`/api/updated` ne renvoie jamais de snapshot : sans `since`, il répond `400`. La séparation est délibérée — un endpoint nommé *updated* qui renvoie tout le book serait déroutant, et coûteux.

```bash theme={null}
# 1) ouvrir la session — c'est ici que le token est délivré
curl https://api.apinn.io/api/snapshot -H "X-API-Key: VOTRE_CLE"
# → { "snapshot": true, "token": "2026-07-24T15:36:48", "count": 33572, "odds": [ ... ] }

# 2) puis interroger les deltas, en renvoyant le dernier token reçu
curl "https://api.apinn.io/api/updated?since=2026-07-24T15:36:48" -H "X-API-Key: VOTRE_CLE"
# → { "snapshot": false, "token": "2026-07-24T15:37:12", "window_seconds": 25, "count": 168, "odds": [ ... ] }
```

Le champ `window_seconds` indique la durée couverte par votre delta — pratique pour régler votre cadence.

## Définir le périmètre de votre session

L'appel au snapshot est aussi celui où vous dites **de quoi parle votre session**. Ajoutez `sport_id`, `league_id`, `event_id`, `market` ou `period` (les listes séparées par des virgules sont acceptées) : le snapshot est limité à ce périmètre, et le token reçu **porte ce périmètre avec lui**.

Ensuite, vous n'envoyez plus que le token. Le serveur sait sur quelle base calculer le delta, et votre périmètre ne peut pas dériver en cours de session parce que vous auriez oublié un paramètre.

```bash theme={null}
# 1) le snapshot fixe le périmètre
curl "https://api.apinn.io/api/snapshot?sport_id=29&market=moneyline&period=0" -H "X-API-Key: VOTRE_CLE"
# → { "snapshot": true, "token": "v1.eyJ0cyI6...", "scope": { "sports": [29], "markets": ["moneyline"], "periods": [0] }, "count": 510, ... }

# 2) le token seul suffit — inutile de répéter les filtres
curl "https://api.apinn.io/api/updated?since=v1.eyJ0cyI6..." -H "X-API-Key: VOTRE_CLE"
# → { "snapshot": false, "scope": { ... }, "count": 3, "odds": [ ... ] }
```

Chaque réponse rappelle le `scope`, pour que vous sachiez toujours ce que signifie votre token. Pour changer de périmètre, ouvrez une nouvelle session avec un nouveau snapshot.

## Ce que cela coûte

Un appel coûte **1 + le nombre de lignes renvoyées**. La fréquence est quasi gratuite ; c'est le volume que vous payez. Deux conséquences méritent d'être anticipées.

Le périmètre est le principal levier sur votre facture. Mesuré sur le book en direct, un périmètre moneyline / temps réglementaire représente environ 5 % des mouvements — donc environ 5 % du coût d'un suivi complet. Votre snapshot est facturé de la même façon, ce qui est l'autre raison de le cadrer : un snapshot du book entier dépasse 20 000 lignes.

Interroger plus souvent ne rend pas la donnée plus fraîche gratuitement. Un prix qui bouge cinq fois en trente secondes apparaît **une seule fois** dans un delta de 30 secondes, et jusqu'à cinq fois à 5 secondes d'intervalle, car le curseur suit le dernier changement réel de chaque marché. Une cadence plus rapide achète de la granularité, pas de la fraîcheur.

<Note>
  Conservez le dernier `token` reçu et renvoyez-le à chaque appel. Les tokens sont opaques : traitez-les comme un curseur, pas comme un horodatage que vous pourriez calculer.
</Note>

<Tip>
  Si vous voulez un périmètre en continu plutôt qu'à intervalle régulier, le [flux WebSocket](/concepts/websocket) est bien moins cher : la connexion coûte **1 requête**, une seule fois, et accepte les mêmes filtres sous forme d'abonnement.
</Tip>
