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

# Subscribe to stream

> Feliratkozás egy aktív beszélgetés adatfolyamára az AI-válaszok valós idejű követéséhez

Feliratkozik egy aktív beszélgetés adatfolyamára, hogy valós időben megkapd az AI válaszait. Ez a [Get Status](/docs/hu/api/get-status) végpont lekérdezésének alternatívája.

## Kérés

```
GET /api/chat/{chatId}/subscribe
```

### Fejlécek

| Fejléc | Kötelező | Leírás |
| - | - | - |
| `Authorization` | Igen | `Bearer macaly_...` |

### Útvonalparaméterek

| Paraméter | Típus | Leírás |
| - | - | - |
| `chatId` | string | A `POST /api/chat` által visszaadott beszélgetésazonosító |

### Példa kérés

<CodeGroup>
  ```bash cURL theme={null}
  curl -N https://www.macaly.com/api/chat/abc123/subscribe \
    -H "Authorization: Bearer macaly_abc123..."
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://www.macaly.com/api/chat/${chatId}/subscribe`,
    {
      headers: {
        'Authorization': 'Bearer macaly_abc123...',
      },
    }
  );

  if (response.status === 204) {
    console.log('No active stream');
    return;
  }

  const reader = response.body.getReader();
  const decoder = new TextDecoder();

  while (true) {
    const { done, value } = await reader.read();
    if (done) break;

    const chunk = decoder.decode(value);
    for (const line of chunk.split('\n')) {
      if (line.startsWith('0:')) {
        // Text content
        const text = JSON.parse(line.slice(2));
        process.stdout.write(text);
      }
    }
  }
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      f'https://www.macaly.com/api/chat/{chat_id}/subscribe',
      headers={
          'Authorization': 'Bearer macaly_abc123...',
      },
      stream=True,
  )

  if response.status_code == 204:
      print('No active stream')
  else:
      for line in response.iter_lines():
          if line:
              line = line.decode('utf-8')
              if line.startswith('0:'):
                  import json
                  text = json.loads(line[2:])
                  print(text, end='')
  ```
</CodeGroup>

## Válasz

Server-Sent Events (SSE) adatfolyamot ad vissza a munkafolyamat előrehaladásával és az AI válaszaival.

### Az adatfolyam formátuma

Az adatfolyam a [Vercel AI SDK v4](https://ai-sdk.dev/docs/ai-sdk-ui/stream-protocol#data-stream-protocol) adatfolyam-protokollját használja. Minden adatcsomag elején egy típusjelölő áll:

| Előtag | Leírás |
| - | - |
| `0:` | Szöveges tartalom |
| `2:` | Adatobjektumok (például `{ chatId }`) |
| `8:` | Annotációk és metaadatok |

### Példa adatfolyam

```
2:[{"chatId":"abc123"}]
0:"I'll create a landing page for you."
0:" Let me start by setting up the project structure."
8:{"type":"tool-call","toolName":"WriteFile",...}
0:" Done! Your landing page is ready."
```

## Állapotkódok

| Állapot | Leírás |
| - | - |
| 200 | Sikeres (adatfolyam-válasz) |
| 204 | Nincs aktív adatfolyam (a munkafolyamat befejeződött vagy még nem indult el) |
| 401 | Érvénytelen vagy hiányzó API-kulcs |
| 403 | A beszélgetés nem a munkaterülethez tartozik |
| 404 | A beszélgetés nem található |
| 429 | Túllépted a kérési korlátot |

## Megjegyzések

* Az adatfolyam a munkafolyamat befejezésekor véget ér
* Ha a munkafolyamat befejezése után hívod a végpontot, `204 No Content` választ kapsz
* Egyszerűbb megvalósításhoz érdemes inkább a [Get Status](/docs/hu/api/get-status) végpontot lekérdezni


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.