---
title: "Publicar borrador revisado de una página"
method: POST
path: "/ecommerce/pages/{pageId}/publish"
tags: ["Páginas HTML"]
---

# Publicar borrador revisado de una página

`POST /ecommerce/pages/{pageId}/publish`

## Request

- Base URL: `https://api.service.getjusto.com/v3`
- URL: `https://api.service.getjusto.com/v3/ecommerce/pages/{pageId}/publish`
- Auth: none declared

Operación limitada al sitio autorizado; requiere permiso admin en la API. En MCP se valida website.edit. Consulta creation-skill para el flujo completo. Las cargas y previews son temporales; Con el experimento website-page-editor/enabled, apply guarda un borrador compartido; publish publica explícitamente con revision, baseRevision y operationId estable entre reintentos. Sin el experimento, apply conserva su publicación directa. Ambos requieren confirmed: true. Preview acepta zipUploadId (ZIP de HTML e imágenes), htmlUploadId o html, exactamente uno. ZIP hasta 100 MB comprimidos/descomprimidos, 128 entradas, un HTML y hasta 30 imágenes. ZIP usa sus imágenes y no admite el parámetro assets; recompila Tailwind. Al editar, omitir assets/dynamicFields conserva sus mapas; enviarlos los reemplaza por completo. Solo páginas completas con un componente HTML. replace_page elimina todos los componentes anteriores. Si cambia cualquier componente desde su lectura, requiere otro preview.

## Path parameters

- `pageId` string, required

## Request body

- object
  - `revision` string, required
  - `baseRevision` string, required
  - `operationId` string, required
  - `confirmed` true, required

## Response `200`

Resultado de la operación. Los listados devuelven items y nextOffset; uploads devuelve uploads con uploadId, path, uploadUrl, method, headers y expiresAt; preview devuelve previewId, previewUrl, expiresAt, assets, replacesEntirePage, published=false y publishRequiresConfirmation=true; apply devuelve pageId, pageUrl y previewId. get devuelve page y content: format html incluye solo revision, sin HTML ni descargas; format unsupported incluye revision, canReplace y un aviso sin exponer componentes. Los listados incluyen content.format. content devuelve format, revision, downloadUrl, expiresAt y files para HTML; unsupported devuelve el aviso y un ZIP en blanco con isBlank=true, HTML/CSS compilado vacíos, mapas vacíos y el target para reemplazar la página. HTML compatible lleva isBlank=false. El ZIP incluye HTML, CSS compilado, assets gestionados, Tailwind y manifiesto; las dependencias externas se enumeran. La descarga vence en 10 minutos.

- object
  - `success` boolean
  - `data` object

## Other responses

- `400`: Parámetros, archivo, HTML o referencias inválidas; preview vencido, ruta duplicada o conflicto de edición.
- `401`: Token inválido.
- `403`: Sin permisos para este sitio.

## Changes

- **2026-10-31** `4ad06bd631ce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getjusto/apis/justo-api/changes/ecommerce/pages/:pageId/publish/post.md)

---

[API](https://skmtc.dev/getjusto/apis/justo-api.md) - [All operations](https://skmtc.dev/getjusto/apis/justo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getjusto/apis/justo-api/revisions/c810bd8246fd?raw)
