# Crear mensaje de assistant (/es/api/assistant/create-assistant-message-v2)

<!-- agent-signals: reading_time_min: 6 · est_tokens: 3770 · updated: 2026-07-30 -->
Related: [Buscar en la documentación](/es/api/assistant/search.md), [Obtener contenido de la página](/es/api/assistant/get-page-content.md), [Detectar prosa que suena a IA](/es/api/admin/deslop.md)

<Info>
  El endpoint de mensaje de assistant v2 es compatible con **AI SDK v5 o superior**. Si usas AI SDK v4, utiliza en su lugar el [endpoint de mensaje de assistant v1](/es/api/assistant/create-assistant-message).
</Info>

<div id="integration-with-usechat">
  ## Integración con `useChat` [#integración-con-usechat]
</div>

El hook `useChat` del AI SDK de Vercel es la forma recomendada de integrar la assistant API en tu aplicación.

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

  <Step title="Usar el 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>
      );
    }
    ```

    **Configuración obligatoria:**

    * `transport` - Usa `DefaultChatTransport` para configurar la conexión con la API.
    * `body.fp` - Identificador de huella digital (usa `'anonymous'` o un identificador único de usuario).
    * `body.retrievalPageSize` - Número de resultados de búsqueda que se usarán (recomendado: 5).

    **Configuración opcional:**

    * `body.context` - Array de información contextual que se le proporciona al assistant. Cada objeto de contexto contiene:
      * `type` - Puede ser `'code'` o `'textSelection'`.
      * `value` - El fragmento de código o el contenido de texto seleccionado.
      * `path` (opcional) - Ruta al archivo o a la página de origen.
      * `elementId` (opcional) - Identificador del elemento de la interfaz de usuario que contiene el contexto.
    * `body.currentPath` - La ruta de la página que el usuario está viendo en ese momento. Cuando se proporciona, el assistant utiliza este contexto para ofrecer respuestas más relevantes. Longitud máxima: 200 caracteres.
  </Step>
</Steps>

Consulta [useChat](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) y [Transport](https://ai-sdk.dev/docs/ai-sdk-ui/transport) en la documentación del AI SDK para más detalles.

<div id="rate-limits">
  ## Límites de uso [#límites-de-uso]
</div>

La API del assistant tiene los siguientes límites:

* 10.000 solicitudes por organización de Mintlify por hora
* 10.000 solicitudes por IP por día

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

Genera un mensaje de respuesta del assistant para el domain indicado. Compatible con el SDK de IA v5 o superior.

Autentícate con una clave de API del assistant.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "El identificador de domain de tu URL, por ejemplo `domain.mintlify.site`. Puedes encontrarlo al final de la URL de tu dashboard. Por ejemplo, en `dashboard.mintlify.com/organization/domain`, el identificador de domain es `domain`."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "fp",
            "messages"
          ],
          "properties": {
            "fp": {
              "type": "string",
              "description": "Identificador de huella (fingerprint) para realizar el seguimiento de las sesiones de conversación. Usa `anonymous` para usuarios anónimos o proporciona un identificador de usuario único."
            },
            "threadId": {
              "default": null,
              "type": "string",
              "description": "Un identificador opcional que se utiliza para mantener la continuidad de la conversación a través de varios mensajes. Cuando se incluye, permite que el sistema asocie los mensajes posteriores con el mismo hilo de conversación. El `threadId` se devuelve en la respuesta como `event.threadId` cuando `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": "Identificador único del mensaje."
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "system",
                      "assistant",
                      "user"
                    ],
                    "description": "El rol del emisor del mensaje."
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Marca de tiempo en la que se creó el mensaje."
                  },
                  "parts": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "description": "Segmento de contenido de texto.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "text"
                              ]
                            },
                            "text": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "text"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segmento de contenido de razonamiento con metadata opcional del proveedor.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "reasoning"
                              ]
                            },
                            "text": {
                              "type": "string"
                            },
                            "providerMetadata": {
                              "type": "object",
                              "description": "Metadata opcional específica del proveedor."
                            }
                          },
                          "required": [
                            "type",
                            "text"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segmento que hace referencia a la URL de origen.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "source-url"
                              ]
                            },
                            "sourceId": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "providerMetadata": {
                              "type": "object",
                              "description": "Metadata opcional específica del proveedor."
                            }
                          },
                          "required": [
                            "type",
                            "sourceId",
                            "url"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Segmento de archivo adjunto.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "file"
                              ]
                            },
                            "mediaType": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            },
                            "filename": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "mediaType",
                            "url"
                          ]
                        },
                        {
                          "type": "object",
                          "description": "Marca el inicio de un nuevo paso.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "step-start"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    },
                    "description": "Array de partes del mensaje. Cada parte tiene un tipo y campos específicos de ese tipo."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Metadata opcional asociada con el mensaje."
                  }
                },
                "required": [
                  "id",
                  "role",
                  "parts"
                ]
              },
              "description": "Array de mensajes de la conversación. Usa la función handleSubmit del hook useChat del paquete @ai-sdk/react para gestionar los mensajes y las respuestas en streaming."
            },
            "retrievalPageSize": {
              "type": "number",
              "default": 5,
              "description": "Número de resultados de búsqueda en la documentación que se utilizarán para generar la respuesta. Valores más altos proporcionan más contexto, pero pueden aumentar el tiempo de respuesta. Recomendado: 5."
            },
            "filter": {
              "type": "object",
              "default": null,
              "properties": {
                "version": {
                  "type": "string",
                  "description": "Filtro de versión opcional."
                },
                "language": {
                  "type": "string",
                  "description": "Filtro de idioma opcional."
                },
                "groups": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Array opcional de identificadores de grupo para filtrar los resultados."
                }
              },
              "description": "Criterios de filtrado opcionales para la búsqueda."
            },
            "context": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "code",
                      "textSelection"
                    ],
                    "description": "El tipo de contexto que se está proporcionando."
                  },
                  "value": {
                    "type": "string",
                    "description": "El fragmento de código o el contenido de texto seleccionado."
                  },
                  "path": {
                    "type": "string",
                    "description": "Ruta opcional al archivo o página de origen."
                  },
                  "elementId": {
                    "type": "string",
                    "description": "Identificador opcional para el elemento de la interfaz de usuario que contiene el contexto."
                  }
                },
                "required": [
                  "type",
                  "value"
                ]
              },
              "description": "Array opcional de información contextual para proporcionar al assistant."
            },
            "currentPath": {
              "type": "string",
              "description": "La ruta de la página que el usuario está viendo actualmente. Cuando se proporciona, el assistant usa este contexto para ofrecer respuestas más relevantes. Longitud máxima: 200 caracteres."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Mensaje generado con éxito",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "description": "Streaming de respuestas compatible con AI SDK v5. Usa el [hook useChat de @ai-sdk/react](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat#usechat) para gestionar el flujo de la respuesta."
          }
        }
      }
    }
  }
}
```
