# Gestionar la visibilidad de páginas (/es/api-playground/managing-page-visibility)

<!-- agent-signals: reading_time_min: 2 · est_tokens: 704 · updated: 2026-07-30 -->
Related: [Playground](/es/api-playground/overview.md), [Configuración de OpenAPI](/es/api-playground/openapi-setup.md), [Tipos de datos complejos](/es/api-playground/complex-data-types.md), [Agregar ejemplos de SDK](/es/api-playground/adding-sdk-examples.md), [Respuestas múltiples](/es/api-playground/multiple-responses.md), [Crear páginas de API manuales](/es/api-playground/mdx-setup.md)

Para endpoints solo internos, operaciones en desuso, funciones beta o endpoints que deberían ser accesibles mediante una URL directa pero no visibles en la navegación del sitio, puedes controlar qué operaciones de OpenAPI se publican como páginas de documentación y su visibilidad en la navegación.

Si tus páginas se generan automáticamente a partir de un documento OpenAPI, gestiona la visibilidad de las páginas con las extensiones `x-hidden` y `x-excluded`.

<div id="x-hidden">
  ## `x-hidden` [#x-hidden]
</div>

La extensión `x-hidden` crea una página para un endpoint, pero la oculta de la navigation. La página solo es accesible accediendo directamente a su URL.

Los casos de uso comunes de `x-hidden` son:

* Endpoints que quieres documentar, pero no destacar.
* Páginas a las que enlazas desde otro contenido.
* Endpoints para usuarios específicos.

<div id="x-excluded">
  ## `x-excluded` [#x-excluded]
</div>

La extensión `x-excluded` excluye por completo un endpoint de tu documentación.

Algunos casos de uso comunes de `x-excluded` son:

* Endpoints de uso interno.
* Endpoints en desuso que no deseas documentar.
* Funciones beta que aún no están listas para la documentación pública.

<div id="implementation">
  ## Implementación [#implementación]
</div>

Añade la extensión `x-hidden` o `x-excluded` debajo del método HTTP en tu especificación de OpenAPI.

A continuación se muestran ejemplos de cómo usar cada propiedad en un documento de esquema de OpenAPI para un endpoint y una ruta de webhook.

```json title="Endpoint example {11, 19}"
"paths": {
  "/plants": {
    "get": {
      "description": "Devuelve todas las plantas de la tienda",
      "parameters": { /*...*/ },
      "responses": { /*...*/ }
    }
  },
  "/hidden_plants": {
    "get": {
      "x-hidden": true,
      "description": "Devuelve todas las plantas semisecretas de la tienda",
      "parameters": { /*...*/ },
      "responses": { /*...*/ }
    }
  },
  "/secret_plants": {
    "get": {
      "x-excluded": true,
      "description": "Devuelve todas las plantas ultrassecretas de la tienda (¡no publicar este endpoint!)",
      "parameters": { /*...*/ },
      "responses": { /*...*/ }
    }
  }
},
```

```json title="Webhook example {9, 15}"
"webhooks": {
  "/plants_hook": {
    "post": {
      "description": "Webhook para información sobre una nueva planta añadida a la tienda",
    }
  },
  "/hidden_plants_hook": {
    "post": {
      "x-hidden": true,
      "description": "Webhook para información parcialmente confidencial sobre una nueva planta añadida a la tienda"
    }
  },
  "/secret_plants_hook": {
    "post": {
      "x-excluded": true,
      "description": "Webhook para información altamente confidencial sobre una nueva planta añadida a la tienda (¡no publicar este endpoint!)"
    }
  }
}
```
