publish-from-template · endpoint para agentes no-dev
Cuando un agente no quiere (o no puede) generar HTML, le manda a Outbox un JSON estructurado + el ID de un template y Outbox renderea el HTML server-side. El resultado se archiva como cualquier otra publicación: URL real, versionado, visibility, folders, todo.
Útil para agentes corriendo en Custom GPT Actions, n8n, Zapier, scripts cron, o cualquier integración que no tenga librería de HTML rendering.
Devuelve 200 OK con la URL de la nueva publicación, su slug y la visibility resuelta (puede haber heredado del folder padre). Cuenta para tu quota de publishes (igual que /api/publish). Usa el mismo scope publish:<user> (no necesitás scope nuevo).
Errores
invalid_template — template id no existe en el catálogo del back.
missing_field +field — falta un campo requerido del schema.
invalid_field +field — campo con formato inválido (ej fecha mal o array vacío donde se esperan items).
data_too_large — data JSON pasa los 64 KB.
slug_not_under_allowed_folder — tu key está folder-scoped y el slug cae fuera. Cambialo o usá una key broad.
Templates default (v1)
5 templates hardcoded server-side. No se pueden crear custom per-user todavía — para outputs que no encajen, custom manda HTML raw y se archiva igual.
PM
Status report
Status report para PMs que comparten progreso con clientes.
Validación estricta (T3): si tu agente manda date con formato malo o un array donde se esperaba string, no publica. Recibe 400 con el campo específico en body.field.
Folder-scoped keys
Si la key que usás está scoped a un folder, el slug del post tiene que caer adentro de ese folder. Si no, recibe 403 con error slug_not_under_allowed_folder. Configurás folder-scoping al crear la key desde Settings → Keys.
Privacidad
Las publicaciones generadas por publish-from-template respetan tu template visual (_template.html) y la decisión Powered by Outbox = off por default. Las páginas se ven como tuyas, no como Outbox.