Files
mintlify__docs/es/discovery-openapi.json
mintlify[bot] 3b821703e8 docs: document caller-passed groups on discovery search and page endpoints (#6712)
Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
2026-07-23 14:29:25 -07:00

943 lines
42 KiB
JSON

{
"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.\n\nAutentícate con una clave de API del assistant.",
"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."
}
}
}
}
}
}
},
"/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.\n\nAutentícate con una clave de API del assistant.",
"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."
}
}
}
}
}
}
},
"/v1/page/{domain}": {
"post": {
"summary": "Obtener contenido de la página",
"description": "Recupera el contenido de texto completo de una página de documentación específica por su ruta. Úsalo después de una búsqueda para obtener el contenido completo de una página coincidente.\n\nAutentícate con una clave de API del assistant. Las solicitudes de contenido de página no consumen créditos.",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "El identificador domain de tu URL `domain.mintlify.site`. Se encuentra al final de la URL de tu dashboard. Por ejemplo, `dashboard.mintlify.com/organization/domain` tiene un identificador domain de `domain`."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "El slug o ruta de la página cuyo contenido se desea recuperar. Corresponde al campo `path` devuelto por el endpoint [Search documentation](/es/api/assistant/search)."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Grupos de documentación opcionales a los que el llamador está autorizado a acceder. Cuando la implementación usa `auth` o `userAuth`, el contenido de la página solo se devuelve si los grupos especificados pueden ver la página. Si se omite o está vacío en una implementación protegida, solo se devuelven las páginas públicas."
}
}
}
}
}
},
"responses": {
"200": {
"description": "Contenido de la página recuperado exitosamente",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "La ruta de la página solicitada."
},
"content": {
"type": "string",
"description": "El contenido de texto completo de la página."
}
}
}
}
}
},
"404": {
"description": "Página no encontrada o índice de búsqueda no disponible",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Mensaje de error que describe por qué no se pudo encontrar la página."
}
}
}
}
}
}
}
}
},
"/v1/search/{domain}": {
"post": {
"x-mint": {
"mcp": {
"enabled": true
}
},
"summary": "Buscar en la documentación",
"description": "Realiza búsquedas semánticas y por palabras clave en tu documentación, con filtrado y paginación configurables.\n\nAutentícate con una clave de API del assistant. Las solicitudes de búsqueda no consumen créditos.",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "El identificador domain de tu URL `domain.mintlify.site`. Lo puedes encontrar al final de la URL de tu dashboard. Por ejemplo, `dashboard.mintlify.com/organization/domain` tiene un identificador domain de `domain`."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "La búsqueda que se ejecutará en el contenido de tu documentación."
},
"pageSize": {
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 50,
"description": "Número de resultados de búsqueda que se mostrarán. Debe estar entre 1 y 50. De forma predeterminada es 10 si no se especifica."
},
"scoreThreshold": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Puntuación mínima de relevancia para los resultados. Solo se devuelven los resultados con una puntuación igual o superior a este umbral. Debe estar entre 0 y 1."
},
"filter": {
"type": "object",
"description": "Parámetros de filtrado opcionales para restringir los resultados de la búsqueda.",
"properties": {
"version": {
"type": "string",
"description": "Filtra los resultados por versión de la documentación."
},
"language": {
"type": "string",
"description": "Filtra los resultados por idioma del contenido."
},
"tag": {
"type": "string",
"description": "Filtrar resultados por etiqueta."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Grupos de documentación opcionales a los que el llamador está autorizado a acceder. Cuando la implementación usa `auth` o `userAuth`, los resultados se limitan a las páginas que los grupos especificados pueden ver. Si se omite o está vacío en una implementación protegida, los resultados se limitan a las páginas públicas."
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Resultados de la búsqueda",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "El contenido de tu documentación que coincide con la búsqueda."
},
"path": {
"type": "string",
"description": "La ruta o URL del documento de origen."
},
"metadata": {
"type": "object",
"description": "Metadata adicional sobre el resultado de la búsqueda."
}
}
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"description": "El encabezado Authorization requiere un token de tipo Bearer. Usa una clave de API del assistant. Genérala desde la [página de claves de API](https://dashboard.mintlify.com/settings/organization/api-keys) de tu dashboard. En producción, envía las solicitudes a través de tu backend en lugar de incrustar la clave en el código del lado del cliente."
}
}
}
}