> ## 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.

# Delta-Polling (Updates)

> Laden Sie nicht das ganze Board neu — holen Sie nur die geänderten Quoten.

Bei jeder Anfrage das ganze Board neu zu laden ist Verschwendung. Stattdessen eröffnen Sie eine **Sitzung**: ein Snapshot legt Ihre Basis fest, danach folgen Deltas gegen diese Basis.

1. **`/api/snapshot`** liefert den aktuellen Stand und stellt Ihnen ein `token` aus. Hier deklarieren Sie Ihren Bereich.
2. **`/api/updated?since=<token>`** liefert nur die **geänderten Zeilen** seit diesem Token, plus ein neues Token für den nächsten Aufruf.

`/api/updated` liefert nie einen Snapshot: ohne `since` antwortet es mit `400`. Die Trennung ist Absicht — ein Endpunkt namens *updated*, der das gesamte Buch zurückgibt, wäre verwirrend und teuer.

```bash theme={null}
# 1) Sitzung eröffnen — hier wird das Token ausgestellt
curl https://api.apinn.io/api/snapshot -H "X-API-Key: IHR_SCHLUESSEL"
# → { "snapshot": true, "token": "2026-07-24T15:36:48", "count": 33572, "odds": [ ... ] }

# 2) danach Deltas abfragen und das zuletzt erhaltene Token zurücksenden
curl "https://api.apinn.io/api/updated?since=2026-07-24T15:36:48" -H "X-API-Key: IHR_SCHLUESSEL"
# → { "snapshot": false, "token": "2026-07-24T15:37:12", "window_seconds": 25, "count": 168, "odds": [ ... ] }
```

Das Feld `window_seconds` gibt an, welchen Zeitraum Ihr Delta abgedeckt hat — praktisch, um Ihre Taktung einzustellen.

## Den Bereich Ihrer Sitzung festlegen

Der Snapshot-Aufruf ist zugleich der Ort, an dem Sie sagen, **worum es in Ihrer Sitzung geht**. Ergänzen Sie `sport_id`, `league_id`, `event_id`, `market` oder `period` (kommagetrennte Listen sind erlaubt): der Snapshot beschränkt sich auf diesen Bereich, und das erhaltene Token **trägt den Bereich in sich**.

Danach senden Sie nur noch das Token. Der Server weiß, auf welcher Basis er das Delta berechnet, und Ihr Bereich kann nicht mitten in der Sitzung verrutschen, weil Sie einen Parameter vergessen haben.

```bash theme={null}
# 1) der Snapshot legt den Bereich fest
curl "https://api.apinn.io/api/snapshot?sport_id=29&market=moneyline&period=0" -H "X-API-Key: IHR_SCHLUESSEL"
# → { "snapshot": true, "token": "v1.eyJ0cyI6...", "scope": { "sports": [29], "markets": ["moneyline"], "periods": [0] }, "count": 510, ... }

# 2) das Token allein genügt — die Filter müssen nicht wiederholt werden
curl "https://api.apinn.io/api/updated?since=v1.eyJ0cyI6..." -H "X-API-Key: IHR_SCHLUESSEL"
# → { "snapshot": false, "scope": { ... }, "count": 3, "odds": [ ... ] }
```

Jede Antwort spiegelt den `scope` wider, damit Sie stets wissen, was Ihr Token bedeutet. Für einen anderen Bereich eröffnen Sie eine neue Sitzung mit einem neuen Snapshot.

## Was es kostet

Ein Aufruf kostet **1 + die Anzahl der zurückgegebenen Zeilen**. Die Frequenz ist nahezu kostenlos; bezahlt wird das Volumen. Zwei Dinge sollte man einplanen.

Der Bereich ist der wichtigste Hebel auf Ihrer Rechnung. Gemessen am laufenden Buch entspricht ein Bereich Moneyline / reguläre Spielzeit rund 5 % aller Bewegungen — also etwa 5 % der Kosten, alles zu verfolgen. Ihr Snapshot wird genauso abgerechnet, und das ist der zweite Grund, ihn einzugrenzen: ein Snapshot des gesamten Buchs umfasst über 20 000 Zeilen.

Häufigeres Abfragen liefert Ihnen nicht gratis frischere Daten. Ein Preis, der sich in dreißig Sekunden fünfmal bewegt, erscheint in einem 30-Sekunden-Delta **einmal** und bei 5-Sekunden-Intervallen bis zu fünfmal, denn der Cursor folgt der letzten tatsächlichen Änderung jedes Marktes. Eine höhere Taktung kauft Granularität, nicht Aktualität.

<Note>
  Bewahren Sie das zuletzt erhaltene `token` auf und senden Sie es bei jedem Aufruf zurück. Tokens sind undurchsichtig: behandeln Sie sie als Cursor, nicht als berechenbaren Zeitstempel.
</Note>

<Tip>
  Wenn Sie einen Bereich fortlaufend statt getaktet wollen, ist der [WebSocket-Stream](/de/concepts/websocket) deutlich günstiger: die Verbindung kostet **1 Anfrage**, einmalig, und akzeptiert dieselben Filter als Abonnement.
</Tip>
