# Felo Chat mit Websuche

POST /api/v1/data/chat

Sende eine Frage und erhalte in einer Antwort eine generierte Antwort mit Webquellen.

Alle Beispiele verwenden `FELO_API_KEY` aus der [Übersicht](https://openapi.felo.ai/de/docs/data-api/guides/felo-overview.md). Aufrufe verwenden **Plattform-Guthaben**, nicht Felo-Pro-Guthaben. Antwortbeispiele sind illustrativ; Live-Inhalte und optionale Felder variieren.

## Endpunkt

`POST /api/v1/data/chat`

Dies ist der Endpunkt mit Plattform-Guthaben. Die [Felo Search API](https://openapi.felo.ai/de/docs/api-reference/chat.md) unter `/v2/chat` verwendet Pro-Guthaben und hat einen anderen Antwortumschlag.

## Anfrage

| Feld | Typ | Erforderlich | Bedeutung |
|---|---|---|---|
| `query` | string | Ja | Frage, 1–2.000 Zeichen |
| `accept_language` | string | Nein | Bevorzugte Antwortsprache, etwa `en`, `ja` oder `zh-CN`; max. 64 Zeichen |
| `stream` | boolean | Nein | Muss `false` sein; Standard `false` |

Verwende ein Sprach-Tag mit einem 2–8-buchstabigen Sprachcode und optional durch Bindestriche getrennten Untertags, etwa `zh-TW`. Der Dienst fügt diese Präferenz zur Generierungsanfrage hinzu. Wenn sie weggelassen wird, wählt der Upstream-Dienst die Sprache; es gibt keine feste Vorgabe, und eine englische Frage garantiert keine englische Antwort. Die Präferenz gilt für die generierte Antwort; Quellentitel und Auszüge behalten ihre ursprüngliche Sprache.

Dieser Endpunkt gibt nicht-streamendes JSON zurück. Er unterstützt weder `stream: true`, SSE, ein `messages`-Array noch eine Modellauswahl.

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/chat" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Explain retrieval augmented generation and cite sources.","accept_language":"en","stream":false}'
```

## Antwort

HTTP 200 gibt `status: "ok"` und ein `data`-Objekt zurück:

```json
{
  "status": "ok",
  "data": {
    "id": "example-chat-id",
    "message_id": "example-message-id",
    "answer": "Retrieval augmented generation adds retrieved context to a model request...",
    "resources": [
      {"title":"Example reference","link":"https://example.com/guide","snippet":"An overview of retrieval augmented generation."}
    ],
    "query_analysis": {"queries":["retrieval augmented generation"]}
  }
}
```

| Feld | Bedeutung |
|---|---|
| `data.answer` | Generierte Antwort |
| `data.resources` | Quellseiten mit Titeln, Links und Snippets |
| `data.query_analysis` | Optionale Analyse der Anfrage; sie kann null sein |
| `data.id`, `data.message_id` | Antwortkennungen |

Prüfe zuerst den HTTP-Status und lies dann Antwort und Quellen. Teste nicht auf einen numerischen `status: 200`, wie du es bei `/v2/chat` tun würdest.

## Abrechnung

`chat` wird pro Anfrage und nicht nach Modell-Tokens berechnet. Siehe [aktuelle Preise](https://openapi.felo.ai/api/v1/data/prices) und [Abrechnung und Fehler](https://openapi.felo.ai/de/docs/data-api/guides/felo-billing.md).
