> ## Documentation Index
> Fetch the complete documentation index at: https://wondeya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Edita una página

> Nombre, dirección, agente, editorial (página de agente) o cuerpo (página de documento), y metadatos SEO. Todos los campos son opcionales; un campo ausente se deja intacto. Publicar es un acto aparte.



## OpenAPI

````yaml /openapi.es.json patch /v1/pages/{pageId}
openapi: 3.0.0
info:
  title: API para desarrolladores de wondeya
  description: >-
    La API REST pública para construir sobre wondeya: agentes, proyectos,
    páginas, conocimiento, recursos, marca, tema, uso, recuperación y chat,
    autenticada mediante una clave de API del espacio de trabajo
    (`Authorization: Bearer wdy_live_…`).
  version: 0.1.0
  contact:
    name: wondeya
    url: https://wondeya.com
    email: team@wondeya.com
  license:
    name: Proprietary
    url: https://wondeya.com/terms
servers:
  - url: https://api.wondeya.com
    description: Producción
  - url: http://localhost:8080
    description: Desarrollo
security: []
tags:
  - name: Identity
  - name: Agents
  - name: Projects
  - name: Pages
  - name: Knowledge
  - name: Assets
  - name: Brand
  - name: Usage
  - name: Chat
paths:
  /v1/pages/{pageId}:
    patch:
      tags:
        - Pages
      summary: Edita una página
      description: >-
        Nombre, dirección, agente, editorial (página de agente) o cuerpo (página
        de documento), y metadatos SEO. Todos los campos son opcionales; un
        campo ausente se deja intacto. Publicar es un acto aparte.
      operationId: PublicPagesController_update_v1
      parameters:
        - name: pageId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePageDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPageDto'
        '404':
          description: No existe esa página en este espacio de trabajo
      security:
        - api-key: []
components:
  schemas:
    UpdatePageDto:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 80
        path:
          type: string
          maxLength: 200
          description: >-
            La dirección bajo el host del espacio de trabajo. `/` es la página
            principal, y exactamente una página por espacio de trabajo la tiene.
            De lo contrario, hasta 4 segmentos de letras, dígitos y guiones
            simples (`/pymes`, `/enterprise/latam`). Sin distinción de
            mayúsculas y almacenado en minúsculas. Nunca codificado en
            porcentaje, nunca un segmento de punto. Reservados por la plataforma
            (y todo su subárbol): admin, api, app, cdn, console, docs, embed,
            mail, status, storage, well-known, widget, www.
        editorial:
          $ref: '#/components/schemas/PageEditorialDto'
        seo:
          description: >-
            Los metadatos SEO de la página (D-48): `<title>` y meta description,
            por idioma. Válido en ambos tipos; un campo vacío hereda el de la
            página principal del sitio.
          allOf:
            - $ref: '#/components/schemas/PageSeoDto'
        sitemap:
          description: >-
            Las sugerencias de sitemap de la página (D-49.d):
            priority/changefreq/exclude.
          allOf:
            - $ref: '#/components/schemas/PageSitemapDto'
        body:
          description: >-
            El markdown de una página `document` (D-47), por idioma. Solo válido
            en una página de documento; un idioma ausente se deja tal cual, `""`
            lo quita, y el idioma de origen no puede vaciarse.
          allOf:
            - $ref: '#/components/schemas/PageBodyDto'
        agentId:
          type: string
          description: >-
            Reapunta la página a otro agente del mismo espacio de trabajo. Todo
            lo que dice la página cambia con ello.
        defaultLocale:
          type: string
          enum:
            - es
            - en
          description: >-
            Regenera la fuente de la página: el idioma en el que escribe el
            propietario. Debe ser uno que el SITIO sirva; el conjunto en sí es
            del proyecto (D-44).
    PublicPageDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        kind:
          type: string
          enum:
            - agent
            - document
          description: '`agent` o `document` (D-47).'
        path:
          type: string
          description: La dirección bajo el host del sitio. `/` es la página principal.
        status:
          type: string
          description: '`draft` o `published`.'
        agentId:
          type: string
          description: El cerebro que responde aquí. Ausente para una página de documento.
        projectId:
          type: string
          description: El sitio (proyecto) en el que vive la página.
        defaultLocale:
          type: string
          enum:
            - es
            - en
        editorial:
          description: >-
            El encuadre escrito por el dueño (página de agente). Vacío para un
            documento.
          allOf:
            - $ref: '#/components/schemas/PublicPageEditorialDto'
        seo:
          $ref: '#/components/schemas/PublicPageSeoDto'
        sitemap:
          $ref: '#/components/schemas/PublicPageSitemapDto'
        body:
          description: >-
            El markdown de una página de documento. Vacío para una página de
            agente.
          allOf:
            - $ref: '#/components/schemas/PublicLocalizedTextDto'
        publishedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - name
        - kind
        - path
        - status
        - defaultLocale
        - editorial
        - seo
        - sitemap
        - body
        - createdAt
        - updatedAt
    PageEditorialDto:
      type: object
      properties:
        badge:
          description: >-
            La píldora sobre el titular, por idioma (a lo sumo 60 caracteres
            cada uno). Vacío no se renderiza.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
        title:
          description: >-
            El h1, por idioma (máximo 120 caracteres cada uno). Si está vacío,
            recurre al título de portada compuesto, de modo que una página
            siempre tiene un titular.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
        titleAccent:
          description: >-
            Una subcadena LITERAL del título de ese idioma, pintada en el color
            de acento (como máximo 120 caracteres). Un valor que no esté en el
            título simplemente no resalta nada.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
        description:
          description: >-
            Una o dos líneas debajo del titular, por idioma (como máximo 280
            caracteres cada una). Si está vacío, no se renderiza.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
    PageSeoDto:
      type: object
      properties:
        title:
          description: >-
            El `<title>` / `og:title`, por idioma (como máximo 60 caracteres
            cada uno). Vacío hereda el de la página principal.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
        description:
          description: >-
            El meta / `og:description`, por idioma (a lo sumo 160 caracteres
            cada uno). Vacío hereda el de la página principal.
          allOf:
            - $ref: '#/components/schemas/LocalizedTextDto'
    PageSitemapDto:
      type: object
      properties:
        priority:
          type: object
          minimum: 0
          maximum: 1
          nullable: true
          description: '`<priority>` cosmético. `null` lo borra.'
        changefreq:
          type: string
          enum:
            - always
            - hourly
            - daily
            - weekly
            - monthly
            - yearly
            - never
          nullable: true
          description: El `<changefreq>` cosmético. `null` lo borra.
        sitemapExclude:
          type: boolean
          description: Mantén esta página FUERA del sitemap (D-49.d).
    PageBodyDto:
      type: object
      properties:
        es:
          type: string
          description: Markdown en español.
        en:
          type: string
          description: Markdown en inglés.
    PublicPageEditorialDto:
      type: object
      properties:
        badge:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
        title:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
        titleAccent:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
        description:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
      required:
        - badge
        - title
        - titleAccent
        - description
    PublicPageSeoDto:
      type: object
      properties:
        title:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
        description:
          $ref: '#/components/schemas/PublicLocalizedTextDto'
      required:
        - title
        - description
    PublicPageSitemapDto:
      type: object
      properties:
        priority:
          type: number
          minimum: 0
          maximum: 1
        changefreq:
          type: string
          enum:
            - always
            - hourly
            - daily
            - weekly
            - monthly
            - yearly
            - never
        sitemapExclude:
          type: boolean
          description: Mantén la página FUERA del sitemap.
    PublicLocalizedTextDto:
      type: object
      properties:
        es:
          type: string
        en:
          type: string
    LocalizedTextDto:
      type: object
      properties:
        es:
          type: string
          maxLength: 200
        en:
          type: string
          maxLength: 200
  securitySchemes:
    api-key:
      scheme: bearer
      bearerFormat: opaque
      type: http
      description: >-
        Una clave de API del espacio de trabajo: wdy_live_… / wdy_test_…. Se
        crea en POST /workspaces/{tenantId}/keys y se muestra exactamente una
        vez.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.