> ## 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 del assistant (v1)

> Genera un mensaje de respuesta del assistant para el domain especificado. Compatible con AI SDK v4.

<Badge color="orange">En desuso</Badge>

<Info>
  El endpoint assistant message v1 es compatible con **AI SDK v4**. Si utilizas AI SDK v5 o posterior, usa en su lugar el [endpoint assistant message v2](/es/api/assistant/create-assistant-message-v2).
</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 API del assistant en tu aplicación.

<Steps>
  <Step title="Instalar el AI SDK v4">
    ```bash theme={null}
    npm i ai@^4.1.15
    ```
  </Step>

  <Step title="Usar el hook">
    ```tsx theme={null}
    import { useChat } from 'ai/react';

    function MyComponent({ domain }) {
      const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
        api: `https://api.mintlify.com/discovery/v1/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',
            },
          ],
        },
        streamProtocol: 'data',
        sendExtraMessageFields: true,
      });

      return (
        <div>
          {messages.map((message) => (
            <div key={message.id}>
              {message.role === 'user' ? 'Usuario: ' : 'Assistant: '}
              {message.content}
            </div>
          ))}
          <form onSubmit={handleSubmit}>
            <input value={input} onChange={handleInputChange} />
            <button type="submit">Enviar</button>
          </form>
        </div>
      );
    }
    ```

    **Configuración obligatoria para Mintlify:**

    * `streamProtocol: 'data'` - Obligatorio para respuestas en streaming.
    * `sendExtraMessageFields: true` - Obligatorio para enviar metadatos de los mensajes.
    * `body.fp` - Identificador de huella digital (usa 'anonymous' o un identificador 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 proporciona al assistant. Cada objeto de contexto incluye:
      * `type` - Puede ser `'code'` o `'textSelection'`.
      * `value` - El fragmento de código o el contenido de texto seleccionado.
      * `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 actualmente. 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) en la documentación del AI SDK para obtener más información.

<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 al día


## OpenAPI

````yaml es/discovery-openapi.json POST /v1/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:
  /v1/assistant/{domain}/message:
    post:
      summary: Mensaje del assistant v1
      description: >-
        Genera un mensaje de respuesta del assistant para el domain
        especificado. Compatible con AI SDK v4.
      parameters:
        - name: domain
          in: path
          required: true
          schema:
            type: string
          description: >-
            El identificador de domain de tu URL `domain.mintlify.site`. Se
            puede encontrar 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 para el seguimiento de 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 lo largo 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
                      content: how do i get started
                      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
                          - data
                          - user
                        description: El rol del remitente del mensaje.
                      createdAt:
                        type: string
                        format: date-time
                        description: Marca de tiempo en la que se creó el mensaje.
                      content:
                        type: string
                        description: El contenido del mensaje.
                      annotations:
                        type: array
                        items: {}
                        description: Array opcional de anotaciones asociadas al mensaje.
                      parts:
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - text
                                text:
                                  type: string
                              required:
                                - type
                                - text
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - reasoning
                                reasoning:
                                  type: string
                                details:
                                  type: array
                                  items:
                                    oneOf:
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - text
                                          text:
                                            type: string
                                          signature:
                                            type: string
                                        required:
                                          - type
                                          - text
                                      - type: object
                                        properties:
                                          type:
                                            type: string
                                            enum:
                                              - redacted
                                          data:
                                            type: string
                                        required:
                                          - type
                                          - data
                              required:
                                - type
                                - reasoning
                                - details
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - step-start
                              required:
                                - type
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - source
                                source:
                                  type: object
                                  properties:
                                    sourceType:
                                      type: string
                                      enum:
                                        - url
                                    id:
                                      type: string
                                    url:
                                      type: string
                                    title:
                                      type: string
                                  required:
                                    - sourceType
                                    - id
                                    - url
                              required:
                                - type
                                - source
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - tool-invocation
                                toolInvocation:
                                  oneOf:
                                    - type: object
                                      properties:
                                        state:
                                          type: string
                                          enum:
                                            - partial-call
                                        step:
                                          type: number
                                        toolCallId:
                                          type: string
                                        toolName:
                                          type: string
                                        args: {}
                                      required:
                                        - state
                                        - toolCallId
                                        - toolName
                                        - args
                                    - type: object
                                      properties:
                                        state:
                                          type: string
                                          enum:
                                            - call
                                        step:
                                          type: number
                                        toolCallId:
                                          type: string
                                        toolName:
                                          type: string
                                        args: {}
                                      required:
                                        - state
                                        - toolCallId
                                        - toolName
                                        - args
                                    - type: object
                                      properties:
                                        state:
                                          type: string
                                          enum:
                                            - result
                                        step:
                                          type: number
                                        toolCallId:
                                          type: string
                                        toolName:
                                          type: string
                                        args: {}
                                        result: {}
                                      required:
                                        - state
                                        - toolCallId
                                        - toolName
                                        - args
                                        - result
                              required:
                                - type
                                - toolInvocation
                        description: >-
                          Array de partes del mensaje con distintos tipos,
                          incluidos texto, razonamiento, fuentes e invocaciones
                          de herramientas.
                      experimental_attachments:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            contentType:
                              type: string
                            url:
                              type: string
                          required:
                            - url
                        description: >-
                          Array opcional de adjuntos experimentales para el
                          mensaje.
                    required:
                      - id
                      - role
                      - content
                      - parts
                  description: >-
                    Array de mensajes de la conversación. En el frontend,
                    probablemente quieras usar la función handleSubmit del hook
                    useChat del paquete @ai-sdk para añadir los mensajes del
                    usuario y gestionar las respuestas en streaming, en lugar de
                    definir manualmente los objetos de este array, ya que tienen
                    tantos parámetros.
                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 opcional de versión.
                    language:
                      type: string
                      description: Filtro opcional de idioma.
                  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 a la página de origen.
                      elementId:
                        type: string
                        description: >-
                          Identificador opcional del elemento de la interfaz de
                          usuario que contiene el contexto.
                    required:
                      - type
                      - value
                  description: >-
                    Matriz opcional de información contextual que se
                    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 correctamente.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Objeto de respuesta con segmentos de datos en flujo
                  formateados con el estado, los encabezados y el contenido
                  especificados. Para más información, consulta la documentación
                  de AI SDK en
                  [ai-sdk.dev/docs/ai-sdk-ui/streaming-data](https://ai-sdk.dev/docs/ai-sdk-ui/streaming-data).
                  Usa el [hook useChat de AI
                  SDK](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.

````