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

# Echtzeit-Stream (SSE)

> Erhalten Sie Quotenbewegungen per Push über Server‑Sent Events, ohne Polling.

`/api/stream` ist ein **Server‑Sent Events**-Stream: bei der Verbindung erhalten Sie einen Snapshot des Boards, danach wird jede Änderung **gepusht** (kein Polling).

Da `EventSource` keinen benutzerdefinierten Header erlaubt, übergeben Sie den Schlüssel als Query: `?key=DEIN_KEY`.

```javascript Node.js theme={null}
import { EventSource } from "eventsource";

const es = new EventSource("https://api.apinn.io/api/stream?key=DEIN_KEY");

es.addEventListener("snapshot", (e) => {
  const { events } = JSON.parse(e.data);
  console.log("initialer Snapshot:", events.length, "Spiele");
});

es.addEventListener("update", (e) => {
  const { events } = JSON.parse(e.data);
  // events = Spiele, deren Hauptquoten sich geändert haben
});

es.addEventListener("remove", (e) => {
  const { ids } = JSON.parse(e.data);
  // vom Board entfernte Spiele (beendet)
});
```

## Ereignistypen

| Ereignis   | Payload             | Bedeutung                                        |
| ---------- | ------------------- | ------------------------------------------------ |
| `snapshot` | `{ events: [...] }` | Initialer Zustand des Boards bei der Verbindung. |
| `update`   | `{ events: [...] }` | Spiele, deren Hauptquoten sich bewegt haben.     |
| `remove`   | `{ ids: [...] }`    | Entfernte Spiele (beendet).                      |

Jedes `events`-Element trägt die `event_id`, die Mannschaften, den `live_status` und die Hauptquoten (moneyline/spread/totals).

<Tip>
  Der Stream öffnet eine lange Verbindung und zählt als **1 Anfrage** zum Zeitpunkt der Verbindung.
</Tip>
