# Créer un message de l'Assistant (/fr/api/assistant/create-assistant-message-v2)

<!-- agent-signals: reading_time_min: 6 · est_tokens: 3764 · updated: 2026-07-30 -->
Related: [Rechercher dans la documentation](/fr/api/assistant/search.md), [Obtenir le contenu de la page](/fr/api/assistant/get-page-content.md), [Détecter la prose qui sonne comme de l'IA](/fr/api/admin/deslop.md)

<Info>
  L'endpoint assistant message v2 est compatible avec &#x2A;*AI SDK v5+**. Si vous utilisez l'AI SDK v4, utilisez plutôt l'[endpoint assistant message v1](/fr/api/assistant/create-assistant-message).
</Info>

<div id="integration-with-usechat">
  ## Intégration avec `useChat` [#intégration-avec-usechat]
</div>

Le hook `useChat` de l'AI SDK de Vercel est la méthode recommandée pour intégrer l'API Assistant dans votre application.

<Steps>
  <Step title="Installer l'AI SDK">
    ```bash
    npm i ai@^6 @ai-sdk/react
    ```
  </Step>

  <Step title="Utiliser le hook">
    ```tsx
    import { useState } from "react";
    import { useChat } from "@ai-sdk/react";
    import { DefaultChatTransport } from "ai";

    function MyComponent({ domain }) {
      const [input, setInput] = useState("");

      const { messages, sendMessage } = useChat({
        transport: new DefaultChatTransport({
          api: `https://api.mintlify.com/discovery/v2/assistant/${domain}/message`,
          headers: {
            Authorization: `Bearer ${process.env.PUBLIC_MINTLIFY_ASSISTANT_KEY}`,
          },
          body: {
            fp: "anonymous",
            retrievalPageSize: 5,
            context: [
              {
                type: "code",
                value: 'const example = "code snippet";',
                elementId: "code-block-1",
              },
            ],
          },
        }),
      });

      return (
        <div>
          {messages.map((message) => (
            <div key={message.id}>
              {message.role === "user" ? "User: " : "Assistant: "}
              {message.parts
                .filter((part) => part.type === "text")
                .map((part) => part.text)
                .join("")}
            </div>
          ))}
          <form
            onSubmit={(e) => {
              e.preventDefault();
              if (input.trim()) {
                sendMessage({ text: input });
                setInput("");
              }
            }}
          >
            <input value={input} onChange={(e) => setInput(e.target.value)} />
            <button type="submit">Send</button>
          </form>
        </div>
      );
    }
    ```

    **Configuration requise :**

    * `transport` - Utilisez `DefaultChatTransport` pour configurer la connexion à l'API.
    * `body.fp` - Identifiant d’empreinte (utilisez `'anonymous'` ou un identifiant utilisateur unique).
    * `body.retrievalPageSize` - Nombre de résultats de recherche à utiliser (recommandé : 5).

    **Configuration optionnelle :**

    * `body.context` - Tableau d’informations contextuelles à fournir à l’Assistant. Chaque objet de contexte contient :
      * `type` - Soit `'code'` soit `'textSelection'`.
      * `value` - Le morceau de code ou le contenu textuel sélectionné.
      * `path` (optionnel) - Chemin vers le fichier source ou la page.
      * `elementId` (optionnel) - Identifiant de l’élément d’interface contenant le contexte.
    * `body.currentPath` - Chemin de la page que l’utilisateur est en train de consulter. Lorsqu’il est fourni, l’Assistant utilise ce contexte pour fournir des réponses plus pertinentes. Longueur maximale : 200 caractères.
  </Step>
</Steps>

Voir [useChat](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) et [Transport](https://ai-sdk.dev/docs/ai-sdk-ui/transport) dans la documentation de l'AI SDK pour plus de détails.

<div id="rate-limits">
  ## Limites de débit [#limites-de-débit]
</div>

L'API Assistant est soumise aux limites suivantes :

* 10 000 requêtes par organisation Mintlify et par heure
* 10 000 requêtes par IP et par jour

`POST /v2/assistant/{domain}/message`

Génère un message de réponse de l’Assistant pour le domaine spécifié. Compatible avec le SDK d’IA v5+.

Authentifiez-vous avec une clé d'API assistant.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "L’identifiant de domaine provenant de votre URL `domain.mintlify.site`. Il se trouve à la fin de l’URL de votre Dashboard. Par exemple, `dashboard.mintlify.com/organization/domain` a un identifiant de domaine égal à `domain`."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "fp",
            "messages"
          ],
          "properties": {
            "fp": {
              "type": "string",
              "description": "Identifiant d’empreinte pour le suivi des sessions de conversation. Utilisez `anonymous` pour les utilisateurs non authentifiés ou fournissez un identifiant utilisateur unique."
            },
            "threadId": {
              "default": null,
              "type": "string",
              "description": "Identifiant optionnel utilisé pour maintenir la continuité de la conversation sur plusieurs messages. Lorsqu’il est fourni, il permet au système de rattacher les messages suivants au même fil de conversation. Le `threadId` est renvoyé dans la réponse sous la forme `event.threadId` lorsque `event.type === 'finish'`."
            },
            "messages": {
              "type": "array",
              "default": [
                {
                  "id": "foobar",
                  "role": "user",
                  "parts": [
                    {
                      "type": "text",
                      "text": "How do I get started"
                    }
                  ]
                }
              ],
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Identifiant unique du message."
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "system",
                      "assistant",
                      "user"
                    ],
                    "description": "Rôle de l’expéditeur du message."
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Horodatage indiquant la création du message."
                  },
                  "parts": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "description": "Segment de contenu textuel.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "text"
                              ]
                            },
                            "text": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "text"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segment de contenu de raisonnement, avec des metadata de fournisseur facultatives.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "reasoning"
                              ]
                            },
                            "text": {
                              "type": "string"
                            },
                            "providerMetadata": {
                              "type": "object",
                              "description": "Metadata spécifiques au fournisseur, facultatives."
                            }
                          },
                          "required": [
                            "type",
                            "text"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segment faisant référence à une URL source.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "source-url"
                              ]
                            },
                            "sourceId": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "providerMetadata": {
                              "type": "object",
                              "description": "Metadata spécifiques au fournisseur, facultatives."
                            }
                          },
                          "required": [
                            "type",
                            "sourceId",
                            "url"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segment représentant un fichier joint.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "file"
                              ]
                            },
                            "mediaType": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "filename": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "mediaType",
                            "url"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Marque le début d’une nouvelle étape.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "step-start"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    },
                    "description": "Tableau de segments du message. Chaque segment a un type et des champs spécifiques à ce type."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Metadata facultatives associées au message."
                  }
                },
                "required": [
                  "id",
                  "role",
                  "parts"
                ]
              },
              "description": "Tableau des messages de la conversation. Utilisez la fonction `handleSubmit` du hook `useChat` du package `@ai-sdk/react` pour gérer les messages et les réponses en streaming."
            },
            "retrievalPageSize": {
              "type": "number",
              "default": 5,
              "description": "Nombre de résultats de recherche dans la documentation à utiliser pour générer la réponse. Des valeurs plus élevées fournissent davantage de contexte, mais peuvent augmenter le temps de réponse. Valeur recommandéea0: 5."
            },
            "filter": {
              "type": "object",
              "default": null,
              "properties": {
                "version": {
                  "type": "string",
                  "description": "Filtre facultatif par version."
                },
                "language": {
                  "type": "string",
                  "description": "Filtre facultatif par langue."
                },
                "groups": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Tableau facultatif d’identifiants de groupes pour filtrer les résultats."
                }
              },
              "description": "Critères de filtrage facultatifs pour la recherche."
            },
            "context": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "code",
                      "textSelection"
                    ],
                    "description": "Type de contexte fourni."
                  },
                  "value": {
                    "type": "string",
                    "description": "Extrait de code ou contenu textuel sélectionné."
                  },
                  "path": {
                    "type": "string",
                    "description": "Chemin facultatif vers le fichier ou la page source."
                  },
                  "elementId": {
                    "type": "string",
                    "description": "Identifiant facultatif de l’élément d’interface contenant le contexte."
                  }
                },
                "required": [
                  "type",
                  "value"
                ]
              },
              "description": "Tableau facultatif d’informations contextuelles à fournir à l’Assistant."
            },
            "currentPath": {
              "type": "string",
              "description": "Chemin de la page que l’utilisateur consulte actuellement. Lorsqu’il est fourni, l’Assistant utilise ce contexte pour donner des réponses plus pertinentes. Longueur maximale : 200 caractères."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Message généré avec succès",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "description": "Réponse en streaming compatible avec AI SDK v5. Utilisez le [hook useChat de @ai-sdk/react](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat#usechat) pour gérer le streaming de la réponse."
          }
        }
      }
    }
  }
}
```
