Saltar al contenido principal
OpenAPI es una especificación para describir APIs. Mintlify es compatible con documentos OpenAPI 3.0+ para generar documentación de API interactiva y mantenerla actualizada.

Añade un archivo de especificación OpenAPI

Para documentar tus endpoints con OpenAPI, necesitas un documento OpenAPI válido en formato JSON o YAML que siga la especificación OpenAPI 3.0+. Puedes crear páginas de API a partir de uno o varios documentos OpenAPI.

Describir tu API

Recomendamos los siguientes recursos para aprender y elaborar tus documentos OpenAPI.
La Guía de OpenAPI de Swagger corresponde a OpenAPI v3.0, pero casi toda la información es aplicable a v3.1. Para obtener más información sobre las diferencias entre v3.0 y v3.1, consulta Migrating from OpenAPI 3.0 to 3.1.0 en el blog de OpenAPI.

Especificar la URL de tu API

Para habilitar funciones de Mintlify como el área de pruebas de la API, añade un campo servers a tu documento OpenAPI con la URL base de tu API.
{
  "servers": [
    {
      "url": "https://api.example.com/v1"
    }
  ]
}
En un documento OpenAPI, los distintos endpoints de la API se especifican por sus rutas, como /users/{id} o simplemente /. La URL base define dónde se deben anexar estas rutas. Para obtener más información sobre cómo configurar el campo servers, consulta API Server and Base Path en la documentación de OpenAPI. El área de pruebas de la API usa estas URLs de servidor para determinar a dónde enviar las solicitudes. Si especificas varios servidores, un menú desplegable permitirá a los usuarios cambiar entre ellos. Si no especificas un servidor, el área de pruebas de la API usará el modo simple, ya que no puede enviar solicitudes sin una URL base. Si tu API tiene endpoints que existen en diferentes URLs, puedes sobrescribir el campo de servidor para una ruta u operación específica.

Especificar la autenticación

Para habilitar la autenticación en tu documentación y en el área de pruebas de la API, configura los campos securitySchemes y security en tu documento OpenAPI. Las descripciones de la API y el área de pruebas de la API añadirán campos de autenticación según las configuraciones de seguridad de tu documento OpenAPI.
1

Define tu método de autenticación.

Añade un campo securitySchemes para definir cómo se autentican los usuarios.Este ejemplo muestra una configuración para autenticación Bearer.
{
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
2

Aplica la autenticación a tus endpoints.

Añade un campo security para requerir autenticación.
{
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
Los tipos de autenticación comunes incluyen:
  • API Keys: Para keys en encabezados, query o cookies.
  • Bearer: Para tokens JWT (JSON Web Token) u OAuth.
  • Basic: Para usuario y contraseña.
Si distintos endpoints de tu API requieren métodos de autenticación diferentes, puedes sobrescribir el campo de seguridad para una operación determinada. Para obtener más información sobre cómo definir y aplicar la autenticación, consulta Authentication en la documentación de OpenAPI.

Extensión x-mint

La extensión x-mint es una extensión personalizada de OpenAPI que ofrece control adicional sobre cómo se genera y se muestra la documentación de tu API.

Metadata

Anula la metadata predeterminada para las páginas de API generadas añadiendo x-mint: metadata a cualquier operación. Puedes usar cualquier campo de metadata que sea válido en el frontmatter de MDX, excepto openapi:
{
  "paths": {
    "/users": {
      "get": {
        "summary": "Obtener usuarios",
        "description": "Recuperar una lista de usuarios",
        "x-mint": {
          "metadata": {
            "title": "Listar todos los usuarios",
            "description": "Obtener datos de usuarios paginados con opciones de filtrado",
            "og:title": "Mostrar una lista de usuarios"
          }
        },
        "parameters": [
          {
            // Configuración de parámetros
          }
        ]
      }
    }
  }
}

Contenido

Añade contenido antes de la documentación de la API generada automáticamente usando x-mint: content:
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Crear usuario",
        "x-mint": {
          "content": "## Requisitos previos\n\nEste endpoint requiere privilegios de administrador y tiene limitación de velocidad.\n\n<Note>Los correos electrónicos de usuario deben ser únicos en todo el sistema.</Note>"
        },
        "parameters": [
          {
            // Configuración de parámetros
          }
        ]
      }
    }
  }
}
La extensión content es compatible con todos los componentes y el formato MDX de Mintlify.

Href

Cambia la URL de la página del endpoint en tu documentación usando x-mint: href:
{
  "paths": {
    "/legacy-endpoint": {
      "get": {
        "summary": "Endpoint heredado",
        "x-mint": {
          "href": "/deprecated-endpoints/legacy-endpoint"
        }
      }
    },
    "/documented-elsewhere": {
      "post": {
        "summary": "Endpoint especial",
        "x-mint": {
          "href": "/guides/special-endpoint-guide"
        }
      }
    }
  }
}
Cuando x-mint: href está presente, la entrada de navegación enlaza directamente a la URL especificada en lugar de generar una página de API.

MCP

Expón selectivamente endpoints como herramientas de Model Context Protocol (MCP) usando x-mint: mcp. Habilita únicamente los endpoints que sean seguros para el acceso público a través de herramientas de IA.
mcp
object
La configuración de MCP para el endpoint.
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Create user",
        "x-mint": {
          "mcp": {
            "enabled": true
          },
          // ...
        }
      }
    },
    "/users": {
      "delete": {
        "summary": "Delete user (admin only)",
        // No `x-mint: mcp` so this endpoint is not exposed as an MCP tool
        // ...
      }
    }
  }
}
Para obtener más información, consulta Model Context Protocol.

Rellenar automáticamente las páginas de la API

Agrega un campo openapi a cualquier elemento de navigation en tu docs.json para generar automáticamente páginas para endpoints de OpenAPI. Puedes controlar dónde aparecen estas páginas en tu estructura de navegación, ya sea como secciones de API dedicadas o junto con otras páginas. El campo openapi acepta una ruta de archivo en tu repositorio de documentación o una URL a un documento de OpenAPI hospedado. Las páginas de endpoints generadas tienen estos valores de metadata predeterminados:
  • title: El campo summary de la operación, si está presente. Si no hay summary, el título se genera a partir del método HTTP y el endpoint.
  • description: El campo description de la operación, si está presente.
  • version: El valor de version del ancla o Tab principal, si está presente.
  • deprecated: El campo deprecated de la operación. Si es true, aparecerá una etiqueta en desuso junto al título del endpoint en la navegación lateral y en la página del endpoint.
Para excluir endpoints específicos de tus páginas de API generadas automáticamente, agrega la x-hidden property a la operación en tu especificación de OpenAPI.
Hay dos enfoques para agregar páginas de endpoints a tu documentación:
  1. Secciones de API dedicadas: Haz referencia a especificaciones de OpenAPI en elementos de navigation para secciones de API dedicadas.
  2. Endpoints selectivos: Haz referencia a endpoints específicos en tu navigation junto con otras páginas.

Secciones de API dedicadas

Genera secciones de API dedicadas agregando un campo openapi a un elemento de navigation y sin otras páginas. Se incluirán todos los endpoints en la especificación:
"navigation": {
  "tabs": [
    {
        "tab": "Referencia de API",
        "openapi": "https://petstore3.swagger.io/api/v3/openapi.json"
    }
  ]
}
Puedes utilizar varias especificaciones de OpenAPI en diferentes secciones de navigation:
"navigation": {
  "tabs": [
    {
      "tab": "Referencia de API",
      "groups": [
        {
          "group": "Usuarios",
          "openapi": {
            "source": "/path/to/openapi-1.json",
            "directory": "api-reference"
          }
        },
        {
          "group": "Admin",
          "openapi": {
            "source": "/path/to/openapi-2.json",
            "directory": "api-reference"
          }
        }
      ]
    }
  ]
}
El campo directory es opcional y especifica dónde se guardan las páginas de API generadas en tu repositorio de documentación. Si no se especifica, se usará por defecto el directorio api-reference de tu repositorio.

Endpoints selectivos

Cuando quieras tener más control sobre dónde aparecen los endpoints en tu documentación, puedes hacer referencia a endpoints específicos en tu navigation. Este enfoque te permite generar páginas de endpoints de la API junto con otros contenidos.

Definir una especificación OpenAPI predeterminada

Configura una especificación OpenAPI predeterminada para un elemento de navigation. Luego, haz referencia a endpoints específicos en el campo pages:
"navigation": {
  "tabs": [
    {
      "tab": "Primeros pasos",
      "pages": [
        "quickstart",
        "installation"
      ]
    },
    {
      "tab": "Referencia de API",
      "openapi": "/path/to/openapi.json",
      "pages": [
        "api-overview",
        "GET /users",
        "POST /users",
        "guides/authentication"
      ]
    }
  ]
}
Cualquier entrada de página que coincida con el formato METHOD /path generará una página de API para ese endpoint usando la especificación de OpenAPI predeterminada.

Herencia de la especificación de OpenAPI

Las especificaciones de OpenAPI se heredan a lo largo de la jerarquía de navigation. Los elementos de navigation secundarios heredan la especificación de OpenAPI de su elemento principal, a menos que definan la suya propia:
{
  "group": "Referencia de API",
  "openapi": "/path/to/openapi-v1.json",
  "pages": [
    "overview",
    "authentication",
    "GET /users",
    "POST /users",
    {
      "group": "Pedidos",
      "openapi": "/path/to/openapi-v2.json",
      "pages": [
        "GET /orders",
        "POST /orders"
      ]
    }
  ]
}

Endpoints individuales

Haz referencia a endpoints específicos sin establecer una especificación de OpenAPI predeterminada, incluyendo la ruta del archivo:
"navigation": {
  "pages": [
    "introduccion",
    "guias-de-usuario",
    "/path/to/openapi-v1.json POST /users",
    "/path/to/openapi-v2.json GET /orders"
  ]
}
Este enfoque es útil cuando necesitas endpoints individuales de distintas especificaciones o solo quieres incluir algunos endpoints seleccionados.

Crear archivos MDX para páginas de la API

Para controlar páginas de endpoints individuales, crea páginas MDX para cada operación. Esto te permite personalizar la metadata de la página, agregar contenido, omitir ciertas operaciones o reordenar páginas en tu navigation a nivel de página. Consulta un ejemplo de página MDX de OpenAPI de MindsDB y cómo aparece en su documentación en vivo.

Especificar archivos manualmente

Crea una página MDX para cada endpoint y especifica qué operación de OpenAPI mostrar usando el campo openapi en el frontmatter. Cuando haces referencia a una operación de OpenAPI de esta manera, el nombre, la descripción, los parámetros, las respuestas y el área de pruebas de la API se generan automáticamente a partir de tu documento de OpenAPI. Si tienes varios archivos de OpenAPI, incluye la ruta del archivo en tu referencia para asegurarte de que Mintlify encuentre el documento de OpenAPI correcto. Si solo tienes un archivo de OpenAPI, Mintlify lo detectará automáticamente.
Este enfoque funciona independientemente de si configuraste una especificación de OpenAPI predeterminada en tu navigation. Puedes referenciar cualquier endpoint de cualquier especificación de OpenAPI incluyendo la ruta del archivo en el frontmatter.
Si deseas referenciar un archivo de OpenAPI externo, agrega la URL del archivo a tu docs.json.
---
title: "Get users"
description: "Returns all plants from the system that the user has access to"
openapi: "/path/to/openapi-1.json GET /users"
deprecated: true
version: "1.0"
---
El método y la ruta deben coincidir exactamente con la definición en tu especificación de OpenAPI. Si el endpoint no existe en el archivo de OpenAPI, la página quedará vacía.

Generar archivos MDX automáticamente

Usa nuestro scraper de Mintlify para generar automáticamente páginas MDX para documentos extensos de OpenAPI.
Tu documento de OpenAPI debe ser válido o los archivos no se generarán automáticamente.
El scraper genera:
  • Una página MDX por cada operación en el campo paths de tu documento de OpenAPI.
  • Si tu documento de OpenAPI es versión 3.1+, una página MDX por cada operación en el campo webhooks de tu documento de OpenAPI.
  • Un arreglo de entradas de navigation que puedes agregar a tu docs.json.
1

Generate `MDX` files.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file>
2

Specify an output folder.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file> -o api-reference
Agrega la bandera -o para especificar una carpeta en la que generar los archivos. Si no se especifica una carpeta, los archivos se generarán en el directorio de trabajo.

Crear archivos MDX para esquemas de OpenAPI

Puedes crear páginas individuales para cualquier esquema de OpenAPI definido en el campo components.schema de un documento de OpenAPI:
---
openapi-schema: OrderItem
---

Webhooks

Los webhooks son callbacks HTTP que tu API envía para notificar a sistemas externos cuando se producen eventos. Los webhooks son compatibles en documentos de OpenAPI 3.1+.

Define webhooks en tu especificación de OpenAPI

Agrega un campo webhooks a tu documento de OpenAPI junto con el campo paths. Para obtener más información sobre cómo definir webhooks, consulta Webhooks en la documentación de OpenAPI.

Referencia webhooks en archivos MDX

Al crear páginas MDX para webhooks, usa webhook en lugar de métodos HTTP como GET o POST:
---
title: "Webhook de ejemplo"
description: "Se activa cuando ocurre un evento"
openapi: "path/to/openapi-file webhook example-webhook-name"
---
El nombre del webhook debe coincidir exactamente con la key definida en el campo webhooks de tu especificación de OpenAPI.
I