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

# Nachrichten-Events

> Streame Assistenten-Antworten und Tool-Aktivität eines Chats über Server-Sent Events.

Öffne einen Server-Sent-Events-Stream (SSE), um die Antwort des Assistenten und Tool-Aktivität eines Chats in Echtzeit zu empfangen. Verbinde dich mit diesem Stream, bevor oder direkt nachdem du [Nachricht hinzufügen](/de/api-reference/backend/messages/send-message) aufrufst, damit du jedes Event mitbekommst.

## Authentifizierung

Diese Anfrage benötigt deinen API-Key im `x-api-key`-Header.

<Info>
  Die Response nutzt den Content-Type `text/event-stream`. Halte die Verbindung offen und lies Events, sobald sie eintreffen, statt auf den Abschluss der Anfrage zu warten.
</Info>

## Request

<ParamField path="chatId" type="string" required>
  ID des Chats, dessen Events du streamen möchtest.
</ParamField>

## Event-Payload

Jedes SSE-Event transportiert ein `MessageEventDto`-JSON-Objekt.

<ResponseField name="chatId" type="string" required>
  ID des Chats, zu dem das Event gehört.
</ResponseField>

<ResponseField name="eventId" type="string" required>
  Eindeutige ID des Events.
</ResponseField>

<ResponseField name="status" type="string" required>
  Event-Status. Einer von `inProgress`, `completed` oder `failed`.
</ResponseField>

<ResponseField name="toolName" type="string">
  Name des verwendeten Tools, wenn das Event Tool-Aktivität darstellt.
</ResponseField>

<ResponseField name="content" type="string">
  Nachrichteninhalt oder eine Beschreibung des Events.
</ResponseField>

<ResponseField name="toolArgs" type="object">
  Argumente, die an das Tool übergeben wurden.
</ResponseField>

<ResponseField name="toolResponse" type="object">
  Antwort, die das Tool zurückgegeben hat.
</ResponseField>

## Beispiele

<CodeGroup>
  ```bash cURL theme={null}
  curl -N https://api.yourhomie.ai/v1/chats/ab12cd34-ef56-7890-ab12-cd34ef567890/messages/events \
    -H "x-api-key: homie_sk_live_8f3a..." \
    -H "Accept: text/event-stream"
  ```

  ```javascript JavaScript (fetch) theme={null}
  const chatId = "ab12cd34-ef56-7890-ab12-cd34ef567890";

  const res = await fetch(
    `https://api.yourhomie.ai/v1/chats/${chatId}/messages/events`,
    {
      headers: {
        "x-api-key": "homie_sk_live_8f3a...",
        Accept: "text/event-stream",
      },
    },
  );

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

  while (true) {
    const { value, done } = await reader.read();
    if (done) break;
    const chunk = decoder.decode(value);
    // Each chunk contains one or more "data: <json>" SSE lines.
    console.log(chunk);
  }
  ```
</CodeGroup>

### Stream-Ausgabe

```text theme={null}
data: {"chatId":"ab12cd34-ef56-7890-ab12-cd34ef567890","eventId":"e1","status":"inProgress","toolName":"search_catalog","toolArgs":{"query":"waterproof jacket blue"}}

data: {"chatId":"ab12cd34-ef56-7890-ab12-cd34ef567890","eventId":"e2","status":"completed","content":"Yes, here is a waterproof jacket available in blue."}
```

<Note>
  Ein Event mit `status` `failed` zeigt an, dass der Assistent die Antwort nicht abschließen konnte. Nutze das Feld `content` für die Fehlerbeschreibung.
</Note>


## OpenAPI

````yaml api-reference/openapi.json GET /v1/chats/{chatId}/messages/events
openapi: 3.0.0
info:
  title: homie AI API
  description: The homie AI API description
  version: 0.0.1
  contact: {}
servers:
  - url: https://api.yourhomie.ai
    description: Production server
security: []
tags:
  - name: Chat
    description: ''
  - name: Knowledge
    description: Public, CORS-enabled endpoints for PDP question sets
paths:
  /v1/chats/{chatId}/messages/events:
    get:
      tags:
        - Chat
      summary: Get Message Events
      operationId: ChatController_getEvents
      parameters:
        - name: chatId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Einzelnes MessageEventDto (wird als SSE-Event gesendet)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageEventDto'
      security:
        - bearer: []
components:
  schemas:
    MessageEventDto:
      type: object
      properties:
        chatId:
          type: string
          description: ID des Chats
        eventId:
          type: string
          description: ID des Events
        toolName:
          type: string
          description: Name des Tools, das verwendet wurde
        content:
          type: string
          description: Inhalt der Nachricht oder Eventbeschreibung
        toolArgs:
          type: object
          description: Optionales Objekt mit Parametern, die an das Tool übergeben wurden
        toolResponse:
          type: object
          description: Optionales Objekt mit der Antwort vom Tool
        status:
          type: string
          description: Status des Events
          enum:
            - inProgress
            - completed
            - failed
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````