> ## Documentation Index
> Fetch the complete documentation index at: https://adminroletesting-justin-client-exports.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear mensaje de assistant

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

<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`
</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 theme={null}
    npm i ai@^6 @ai-sdk/react
    ```
  </Step>

  <Step title="Usar el hook">
    ```tsx theme={null}
    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
</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


## OpenAPI

````yaml es/discovery-openapi.json POST /v2/assistant/{domain}/message
openapi: 3.0.1
info:
  title: Mintlify Assistant API
  description: >-
    Una API para integrar las funciones de descubrimiento de Mintlify en tu
    producto.
  version: 1.0.0
servers:
  - url: https://api.mintlify.com/discovery
security:
  - bearerAuth: []
paths:
  /v2/assistant/{domain}/message:
    post:
      summary: Mensaje del assistant
      description: >-
        Genera un mensaje de respuesta del assistant para el domain indicado.
        Compatible con el SDK de IA v5 o superior.
      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.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        La cabecera Authorization espera un token de tipo Bearer. Usa una clave
        de API para assistant (con el prefijo `mint_dsc_`). Esta es una clave
        pública segura para utilizar en código del lado del cliente. Genérala
        desde la [página de claves de
        API](https://dashboard.mintlify.com/settings/organization/api-keys) de
        tu dashboard.

````