# Chat Felo ancré sur la recherche

POST /api/v1/data/chat

Envoyez une question et recevez en une seule réponse une réponse générée avec des sources web.

Tous les exemples utilisent `FELO_API_KEY` depuis l'[aperçu](https://openapi.felo.ai/fr/docs/data-api/guides/felo-overview.md). Les appels utilisent **le solde de plateforme**, et non les crédits Felo Pro. Les exemples de réponse sont illustratifs ; le contenu réel et les champs facultatifs varient.

## Point de terminaison

`POST /api/v1/data/chat`

Il s'agit du point de terminaison à solde de plateforme. L'[API de recherche Felo](https://openapi.felo.ai/fr/docs/api-reference/chat.md) sur `/v2/chat` utilise des crédits Pro et possède une enveloppe de réponse différente.

## Requête

| Champ | Type | Requis | Signification |
|---|---|---|---|
| `query` | string | Oui | Question, 1–2 000 caractères |
| `accept_language` | string | Non | Langue de réponse préférée, par exemple `en`, `ja` ou `zh-CN` ; 64 caractères max |
| `stream` | boolean | Non | Doit être `false` ; `false` par défaut |

Utilisez une balise de langue avec un code de langue de 2 à 8 lettres et des sous-balises facultatives séparées par des tirets, par exemple `zh-TW`. Le service ajoute cette préférence à la requête de génération. Si elle est omise, le service amont choisit la langue ; il n'existe pas de valeur par défaut fixe, et une question en anglais ne garantit pas une réponse en anglais. La préférence s'applique à la réponse générée ; les titres et extraits des sources conservent leur langue d'origine.

Ce point de terminaison renvoie du JSON non diffusé. Il ne prend pas en charge `stream: true`, SSE, un tableau `messages` ni la sélection de modèle.

```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}'
```

## Réponse

HTTP 200 renvoie `status: "ok"` et un objet `data` :

```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"]}
  }
}
```

| Champ | Signification |
|---|---|
| `data.answer` | Réponse générée |
| `data.resources` | Pages sources avec titres, liens et extraits |
| `data.query_analysis` | Analyse de requête facultative ; elle peut être nulle |
| `data.id`, `data.message_id` | Identifiants de réponse |

Vérifiez d'abord le statut HTTP, puis lisez la réponse et les sources. Ne testez pas `status: 200` comme un nombre, comme vous le feriez avec `/v2/chat`.

## Facturation

`chat` est facturé par requête, et non selon les jetons du modèle. Consultez les [prix actuels](https://openapi.felo.ai/api/v1/data/prices) et [Facturation et erreurs](https://openapi.felo.ai/fr/docs/data-api/guides/felo-billing.md).
