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

# Fluxo em tempo real (SSE)

> Receba os movimentos de odds enviados por push em Server-Sent Events, sem polling.

`/api/stream` é um fluxo **Server-Sent Events**: na ligação recebe um snapshot do board, depois cada alteração é **enviada por push** (sem polling).

Como o `EventSource` não permite header personalizado, passe a chave na query: `?key=SUA_CHAVE`.

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

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

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

es.addEventListener("update", (e) => {
  const { events } = JSON.parse(e.data);
  // events = jogos cujas odds principais mudaram
});

es.addEventListener("remove", (e) => {
  const { ids } = JSON.parse(e.data);
  // jogos retirados do board (terminados)
});
```

## Tipos de eventos

| Evento     | Payload             | Sentido                                 |
| ---------- | ------------------- | --------------------------------------- |
| `snapshot` | `{ events: [...] }` | Estado inicial do board na ligação.     |
| `update`   | `{ events: [...] }` | Jogos cujas odds principais se moveram. |
| `remove`   | `{ ids: [...] }`    | Jogos retirados (terminados).           |

Cada elemento `events` contém o `event_id`, as equipas, o `live_status` e as odds principais (moneyline/spread/totals).

<Tip>
  O fluxo abre uma ligação longa e conta como **1 pedido** no momento da ligação.
</Tip>
