# Crear mensaje del assistant (v1) (/es/api/assistant/create-assistant-message)

<!-- agent-signals: reading_time_min: 7 · est_tokens: 5316 · updated: 2026-07-30 -->

<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` [#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
    npm i ai@^4.1.15
    ```
  </Step>

  <Step title="Usar el hook">
    ```tsx
    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 [#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

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

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

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