Una aplicación creada sin subdomain es privada: se ejecuta, pero nada la enruta desde internet. Estas dos rutas activan y desactivan
la publicación web en cualquier momento, sin recrear la aplicación.
Ambas rutas recrean el contenedor, así que la aplicación se reinicia. La configuración de enrutamiento y el puerto expuesto solo existen desde la creación
del contenedor, por lo que el estado de publicación no puede cambiar en caliente. Espera una breve interrupción en cada llamada.
Despublicar libera el subdominio. No queda reservado para ti: cualquiera puede registrarlo justo después, y puede que no lo recuperes. También se eliminan todos
los dominios personalizados de la aplicación, pero tus registros DNS no se tocan: borra el CNAME y el registro TXT de validación de cada dominio en tu proveedor de DNS,
o los nombres seguirán apuntando a Vertra Cloud y otro cliente podría reclamarlos. Para volver a usar un dominio, añádelo de nuevo y crea los registros que se muestran para él.
El subdominio con el que publicar, sin el sufijo .vertraweb.app (por ejemplo, myapp). Entre 3 y
50 caracteres, que cumpla ^[a-z0-9][a-z0-9-]*[a-z0-9]$.Es opcional. Si lo omites, la plataforma elige un subdominio por ti. Enviar un valor requiere un plan
con subdominios personalizados; que se elija uno al azar no.
Solo para una aplicación que ejecuta una imagen Docker personalizada: el puerto en el que escucha la imagen, de 1 a 65535. Se guarda como el puerto de la aplicación. Es obligatorio cuando la aplicación se creó sin web; de lo contrario, la llamada falla con IMAGE_APP_PORT_REQUIRED. Se ignora en cualquier otra aplicación.
No recibe cuerpo. Libera el subdominio, elimina cada dominio personalizado (sus registros DNS en tu proveedor se mantienen hasta que los borres) y vuelve a convertir la aplicación en privada; después recrea el contenedor. La respuesta tiene la misma forma, con subdomain
en null, domains vacío y type de nuevo en 1.
Una aplicación publicada necesita al menos 512 MB de RAM. Aquí nunca se sube la memoria por ti: si
la aplicación tiene menos, la petición falla con MEMORY_BELOW_MINIMUM y los valores actual y requerido
llegan en details. Súbela con
Actualizar la configuración de la aplicación y vuelve a intentarlo.
El código de error que indica el motivo del fallo. Valores posibles:
VALIDATION_ERROR: El parámetro de ruta o el cuerpo no superaron la validación (400). Es lo que devuelve un
subdomain mal formado: de 3 a 50 caracteres, ^[a-z0-9][a-z0-9-]*[a-z0-9]$. La respuesta
también incluye message y path.
AUTH_TOKEN_MISSING, API_KEY_INVALID, SESSION_REVOKED: Falta la cabecera Authorization, la clave de API no es válida o la sesión del panel fue revocada (401).
API_KEY_IP_DENIED, API_KEY_SCOPE_DENIED: La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta (403).
USER_NOT_FOUND: No se pudo resolver el usuario autenticado (401).
ACCESS_DENIED: El usuario no tiene permiso para actuar sobre la aplicación (403).
PLAN_REQUIRED: La cuenta propietaria de la aplicación no tiene un plan activo (403).
PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH: El plan del propietario no incluye la publicación web (403).
PLAN_DOES_NOT_SUPPORT_CUSTOM_SUBDOMAIN: Se envió un subdomain, pero el plan del propietario no permite elegir el nombre (403). Omite el campo para obtener uno aleatorio.
APP_NOT_FOUND: La aplicación indicada no existe (404).
IMAGE_APP_PORT_REQUIRED: La aplicación ejecuta una imagen Docker personalizada, todavía no tiene puerto y el cuerpo no tiene port (400).
APP_ALREADY_PUBLISHED: La aplicación ya tiene un subdominio o un dominio personalizado (400).
APP_NOT_PUBLISHED: DELETE sobre una aplicación que no está publicada (400).
MEMORY_BELOW_MINIMUM: La aplicación tiene menos RAM de la que requiere una aplicación publicada (400),
con details: { current_mb, minimum_mb }.
SUBDOMAIN_FORBIDDEN: El subdominio solicitado está en la lista de nombres reservados de la plataforma (400).
SUBDOMAIN_TAKEN: Otra aplicación ya usa ese subdominio (409).
OPERATION_IN_PROGRESS: Otra operación de ciclo de vida sobre la misma aplicación está en curso; el
contenedor no se tocó (409). Espera unos segundos y vuelve a intentarlo.
Un mensaje descriptivo con más detalles sobre el error.
{ "code": "PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH"}
{ "code": "APP_ALREADY_PUBLISHED"}
{ "code": "SUBDOMAIN_TAKEN"}
Se aplican dos límites, y son deliberadamente estrictos. Publicar y despublicar recrean el
contenedor, así que comparten el presupuesto de ciclo de vida por aplicación con start, stop, restart y las
instalaciones de dependencias: 10 peticiones por minuto entre todas ellas, por aplicación, no un presupuesto por ruta. Además, una publicación correcta inicia un enfriamiento de 5 minutos en la dirección pública de la aplicación, compartido con
Cambiar subdominio: publicar de nuevo dentro de esa
ventana devuelve 429 SUBDOMAIN_CHANGE_RATE_LIMITED. Despublicar y volver a publicar con un nombre nuevo es un cambio de dirección como cualquier otro y no se salta el límite. Los rechazos no consumen el enfriamiento:
solo lo consume una publicación que llegó a ocurrir. Consulta Límite de peticiones.
Última modificación el 28 de octubre de 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vertra Cloud","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension.","colors":{"primary":"#ff6100","light":"#ff7a24","dark":"#e65700"},"logo":{"light":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e","dark":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e"},"favicon":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/favicon.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=1bab95e4f8e35419e5901e69c7caa4b2","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python","go"]},"mdx":{"auth":{"method":"bearer"},"server":"https://api.vertracloud.app"}},"background":{"color":{"light":"#f7f7f6","dark":"#121212"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"footer":{"socials":{"github":"https://github.com/vertracloud","instagram":"https://instagram.com/vertracloud","x":"https://x.com/vertracloud","youtube":"https://www.youtube.com/@vertracloud","discord":"https://discord.gg/vertracloud"}},"seo":{"metatags":{"og:site_name":"Vertra Cloud Docs","og:type":"website","og:image":"https://docs.vertracloud.app/images/og.png","twitter:card":"summary_large_image","twitter:image":"https://docs.vertracloud.app/images/og.png","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension."},"indexing":"navigable"},"fonts":{"family":"Geist"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"pt-BR","navbar":{"links":[{"href":"mailto:[email protected]","label":"Suporte"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"href":"pt-br"},{"language":"es","navbar":{"links":[{"href":"mailto:[email protected]","label":"Soporte"}],"primary":{"type":"button","label":"Panel","href":"https://vertracloud.app/dashboard"}},"href":"es-es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vertracloud","hasAudioNarration":false,"actualSubdomain":"vertracloud","customDomains":["docs.vertracloud.app"],"gitSource":{"type":"github","owner":"vertracloud","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae51deb3bf34bcad38c5814","collectionId":"9f590012-0485-47b3-af80-9ffed670518c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae51deb3bf34bcad38c5814"},"entitlements":{},"buildId":"6ae51f8fceb92005b37aba26","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"en","tag":"API Reference","count":159},{"language":"es","tag":"Referencia de la API","count":159},{"language":"pt-BR","tag":"Referência da API","count":159},{"language":"en","tag":"Endpoints","count":156},{"language":"es","tag":"Endpoints","count":156},{"language":"pt-BR","tag":"Endpoints","count":156},{"language":"en","tag":"Templates","count":64},{"language":"es","tag":"Plantillas","count":64},{"language":"pt-BR","tag":"Templates","count":64},{"language":"es","tag":"Blob Storage","count":58},{"language":"pt-BR","tag":"Blob Storage","count":58},{"language":"en","tag":"Blob Storage","count":56},{"language":"en","tag":"Applications","count":46},{"language":"en","tag":"Changelog","count":46},{"language":"es","tag":"Aplicaciones","count":46},{"language":"es","tag":"Changelog","count":46},{"language":"pt-BR","tag":"Aplicações","count":46},{"language":"pt-BR","tag":"Changelog","count":46},{"language":"en","tag":"v26","count":35},{"language":"es","tag":"v26","count":35},{"language":"pt-BR","tag":"v26","count":35},{"language":"en","tag":"Blob API reference","count":30},{"language":"es","tag":"Referencia de la API de Blob","count":30},{"language":"pt-BR","tag":"Referência da API do Blob","count":30},{"language":"en","tag":"Workspaces","count":26},{"language":"en","tag":"Tutorials","count":26},{"language":"es","tag":"Workspaces","count":26},{"language":"es","tag":"Tutoriales","count":26},{"language":"pt-BR","tag":"Workspaces","count":26},{"language":"pt-BR","tag":"Tutoriais","count":26}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--gray-50:247 247 246;--gray-100:241 241 240;--gray-200:230 230 228;--gray-300:211 211 209;--gray-400:162 162 162;--gray-500:115 115 115;--gray-600:83 83 83;--gray-700:61 61 61;--gray-800:42 42 42;--gray-900:26 26 26;--gray-950:13 13 13}.vc-home{--vc-orange:#ff6100;--vc-orange-strong:#e65700;--vc-paper:#f7f7f6;--vc-surface:#ffffff;--vc-ink:#141414;--vc-ink-2:#3d3d3d;--vc-muted:#737373;--vc-line:#e6e6e4;color:var(--vc-ink)}.dark .vc-home{--vc-orange-strong:#ff7a24;--vc-paper:#121212;--vc-surface:#1a1a1a;--vc-ink:#f4f4f4;--vc-ink-2:#c6c6c6;--vc-muted:#8e8e8e;--vc-line:#2a2a2a}.vc-hero,.vc-hero-inner{display:flex;flex-direction:column;box-sizing:border-box;margin:0}.vc-hero{min-height:calc(100dvh - 120px);overflow:hidden;border-bottom:1px solid var(--vc-line);background-color:var(--vc-paper)}.vc-hero-inner{flex:0 0 auto;justify-content:center;max-width:40rem;padding:2.75rem 1.25rem 1.75rem;text-align:left}.vc-hero h1{margin:0;color:var(--vc-ink);font-size:clamp(2.15rem,.85rem + 1.9vw,3.15rem);font-weight:600;line-height:1.02;letter-spacing:-.045em;text-wrap:balance}.vc-hero-copy{max-width:36rem;margin:1.15rem 0 0;color:var(--vc-ink-2);font-size:1.05rem;line-height:1.55;text-wrap:pretty}.vc-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.75rem;margin-top:1.75rem}.vc-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:0 1.15rem;border-radius:.5rem;font-size:.92rem;font-weight:500;line-height:1;text-decoration:none!important;border:1px solid transparent;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1)}.vc-btn:focus-visible{outline:2px solid var(--vc-orange);outline-offset:2px}.vc-btn-primary{background:var(--vc-orange);color:#fff!important}.vc-btn-primary:hover{background:var(--vc-orange-strong)}.vc-btn-ghost{background:0 0;border-color:var(--vc-line);color:var(--vc-ink)!important}.vc-btn-ghost:hover{border-color:var(--vc-ink)}.vc-hero-art{flex:1 1 auto;min-height:240px;border-top:1px solid var(--vc-line);background:#f4efe4 url(/images/hero-pillar.webp) 70% 68%/cover no-repeat}@media (min-width:1024px){.vc-hero{flex-direction:row;align-items:stretch;min-height:calc(100dvh - 112px)}.vc-hero-inner{flex:.78 1 0;max-width:none;padding:4rem clamp(1.75rem,4vw,4.5rem)}.vc-hero-art{flex:1.22 1 0;min-height:0;border-top:0;border-left:1px solid var(--vc-line);background-position:72% 50%}}.vc-section{max-width:1040px;margin:0 auto;padding:4.5rem 1.5rem 0}.vc-section:last-of-type{padding-bottom:4.5rem}.vc-heading{max-width:620px;margin-bottom:1.75rem}.vc-kicker{color:var(--vc-orange);font:600 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}.vc-heading h2{margin:.5rem 0 .6rem;color:var(--vc-ink);font-size:clamp(1.55rem,3vw,2.05rem);font-weight:700;letter-spacing:-.03em;text-wrap:balance}.vc-heading p{margin:0;color:var(--vc-muted);line-height:1.65}.vc-home .card{border-radius:.85rem;transition:border-color .18s ease,transform .18s ease}.vc-home a.card:hover{border-color:rgba(255,97,0,.6)!important;transform:translateY(-2px)}.vc-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.vc-chip{display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;border:1px solid var(--vc-line);border-radius:.7rem;background:var(--vc-chip);color:var(--vc-ink)!important;font-size:.9rem;font-weight:500;text-decoration:none!important;transition:border-color .15s ease,transform .15s ease}.vc-chip:hover{border-color:rgba(255,97,0,.6);transform:translateY(-1px)}.vc-chip svg{flex-shrink:0}.vc-help{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.vc-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;max-width:1040px;margin:4.5rem auto 0;padding:1.5rem 1.5rem 3rem;border-top:1px solid var(--vc-line);color:var(--vc-muted);font:.72rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.vc-footer a{color:var(--vc-ink)!important;text-decoration:none!important}.vc-footer a:hover{color:var(--vc-orange)!important}@media (max-width:760px){.vc-section{padding:3.25rem 1rem 0}}[data-component-part=language-switcher] [data-language=en] a::before{content:'🇺🇸 '}[data-component-part=language-switcher] [data-language=pt-BR] a::before{content:'🇧🇷 '}[data-component-part=language-switcher] [data-language=es] a::before{content:'🇪🇸 '}"}],"page":{"pagePath":"es-es/api-reference/endpoint/apps/network/publish","slug":"/es-es/api-reference/endpoint/apps/network/publish","pageMetadata":{"title":"Publicar la aplicación en la web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","authMethod":"bearer","description":"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.","href":"/es-es/api-reference/endpoint/apps/network/publish"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,ResponseField,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Una aplicación creada sin `,_jsx(_components.code,{children:`subdomain`}),` es privada: se ejecuta, pero nada la enruta desde internet. Estas dos rutas activan y desactivan\nla publicación web en cualquier momento, sin recrear la aplicación.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Ambas rutas recrean el contenedor, así que la aplicación se reinicia.`}),` La configuración de enrutamiento y el puerto expuesto solo existen desde la creación\ndel contenedor, por lo que el estado de publicación no puede cambiar en caliente. Espera una breve interrupción en cada llamada.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Despublicar libera el subdominio.`}),` No queda reservado para ti: cualquiera puede registrarlo justo después, y puede que no lo recuperes. También se eliminan todos\nlos dominios personalizados de la aplicación, pero tus registros DNS no se tocan: borra el `,_jsx(_components.code,{children:`CNAME`}),` y el registro `,_jsx(_components.code,{children:`TXT`}),` de validación de cada dominio en tu proveedor de DNS,\no los nombres seguirán apuntando a Vertra Cloud y otro cliente podría reclamarlos. Para volver a usar un dominio, añádelo de nuevo y crea los registros que se muestran para él.`]})}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`El ID de la aplicación. Solo el propietario de la aplicación puede llamar a este endpoint; por ahora no se aceptan miembros del workspace.`})}),`\n`,_jsxs(ParamField,{body:`subdomain`,type:`string`,id:`param-subdomain`,children:[_jsxs(_components.p,{children:[`El subdominio con el que publicar, sin el sufijo `,_jsx(_components.code,{children:`.vertraweb.app`}),` (por ejemplo, `,_jsx(_components.code,{children:`myapp`}),`). Entre 3 y\n50 caracteres, que cumpla `,_jsx(_components.code,{children:`^[a-z0-9][a-z0-9-]*[a-z0-9]$`}),`.`]}),_jsxs(_components.p,{children:[`Es opcional. Si lo omites, la plataforma elige un subdominio por ti. `,_jsx(_components.strong,{children:`Enviar un valor requiere un plan\ncon subdominios personalizados`}),`; que se elija uno al azar no.`]})]}),`\n`,_jsx(ParamField,{body:`port`,type:`integer`,id:`param-port`,children:_jsxs(_components.p,{children:[`Solo para una aplicación que ejecuta una `,_jsx(_components.a,{href:`/es-es/guides/custom-docker-images`,children:`imagen Docker personalizada`}),`: el puerto en el que escucha la imagen, de 1 a 65535. Se guarda como el puerto de la aplicación. `,_jsx(_components.strong,{children:`Es obligatorio cuando la aplicación se creó sin web`}),`; de lo contrario, la llamada falla con `,_jsx(_components.code,{children:`IMAGE_APP_PORT_REQUIRED`}),`. Se ignora en cualquier otra aplicación.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`respuesta`,children:`Respuesta`}),`\n`,_jsx(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`subdomain`,type:`string | null`,id:`param-subdomain-1`,children:_jsxs(_components.p,{children:[`El subdominio completo que sirve ahora la aplicación, o `,_jsx(_components.code,{children:`null`}),` una vez desactivada la publicación.`]})}),_jsx(ResponseField,{name:`domains`,type:`string[]`,id:`param-domains`,children:_jsxs(_components.p,{children:[`Los nombres de host de los dominios personalizados. Siempre vacío tras publicar o despublicar: añade dominios con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/create`,children:`Añadir dominio de la aplicación`}),`.`]})}),_jsx(ResponseField,{name:`type`,type:`integer`,id:`param-type`,children:_jsxs(_components.p,{children:[`El tipo de aplicación tras el cambio: `,_jsx(_components.code,{children:`2`}),` (sitio web) cuando está publicada, `,_jsx(_components.code,{children:`1`}),` (bot) cuando no lo está.`]})})]})}),`\n`,`\n`,_jsx(Heading,{level:`2`,id:`despublicar`,children:`Despublicar`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`DELETE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` https://api.vertracloud.app/v1/apps/{id}/network/publish`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`No recibe cuerpo. Libera el subdominio, elimina cada dominio personalizado (sus registros DNS en tu proveedor se mantienen hasta que los borres) y vuelve a convertir la aplicación en privada; después recrea el contenedor. La respuesta tiene la misma forma, con `,_jsx(_components.code,{children:`subdomain`}),`\nen `,_jsx(_components.code,{children:`null`}),`, `,_jsx(_components.code,{children:`domains`}),` vacío y `,_jsx(_components.code,{children:`type`}),` de nuevo en `,_jsx(_components.code,{children:`1`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`mínimo-de-memoria`,children:`Mínimo de memoria`}),`\n`,_jsxs(_components.p,{children:[`Una aplicación publicada necesita al menos `,_jsx(_components.strong,{children:`512 MB`}),` de RAM. Aquí nunca se sube la memoria por ti: si\nla aplicación tiene menos, la petición falla con `,_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),` y los valores actual y requerido\nllegan en `,_jsx(_components.code,{children:`details`}),`. Súbela con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/updateconfig`,children:`Actualizar la configuración de la aplicación`}),` y vuelve a intentarlo.`]}),`\n`,_jsx(CodeBlock,{filename:`Error Response (400)`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MEMORY_BELOW_MINIMUM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current_mb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"minimum_mb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`512`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`respuestas-de-error`,children:`Respuestas de error`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`El código de error que indica el motivo del fallo. Valores posibles:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: El parámetro de ruta o el cuerpo no superaron la validación (`,_jsx(_components.code,{children:`400`}),`). Es lo que devuelve un\n`,_jsx(_components.code,{children:`subdomain`}),` mal formado: de 3 a 50 caracteres, `,_jsx(_components.code,{children:`^[a-z0-9][a-z0-9-]*[a-z0-9]$`}),`. La respuesta\ntambién incluye `,_jsx(_components.code,{children:`message`}),` y `,_jsx(_components.code,{children:`path`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`AUTH_TOKEN_MISSING`}),`, `,_jsx(_components.code,{children:`API_KEY_INVALID`}),`, `,_jsx(_components.code,{children:`SESSION_REVOKED`}),`: Falta la cabecera `,_jsx(_components.code,{children:`Authorization`}),`, la clave de API no es válida o la sesión del panel fue revocada (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_IP_DENIED`}),`, `,_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_NOT_FOUND`}),`: No se pudo resolver el usuario autenticado (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ACCESS_DENIED`}),`: El usuario no tiene permiso para actuar sobre la aplicación (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: La cuenta propietaria de la aplicación no tiene un plan activo (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH`}),`: El plan del propietario no incluye la publicación web (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_SUBDOMAIN`}),`: Se envió un `,_jsx(_components.code,{children:`subdomain`}),`, pero el plan del propietario no permite elegir el nombre (`,_jsx(_components.code,{children:`403`}),`). Omite el campo para obtener uno aleatorio.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_FOUND`}),`: La aplicación indicada no existe (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_APP_PORT_REQUIRED`}),`: La aplicación ejecuta una imagen Docker personalizada, todavía no tiene puerto y el cuerpo no tiene `,_jsx(_components.code,{children:`port`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_ALREADY_PUBLISHED`}),`: La aplicación ya tiene un subdominio o un dominio personalizado (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_PUBLISHED`}),`: `,_jsx(_components.code,{children:`DELETE`}),` sobre una aplicación que no está publicada (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),`: La aplicación tiene menos RAM de la que requiere una aplicación publicada (`,_jsx(_components.code,{children:`400`}),`),\ncon `,_jsx(_components.code,{children:`details: { current_mb, minimum_mb }`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_FORBIDDEN`}),`: El subdominio solicitado está en la lista de nombres reservados de la plataforma (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_TAKEN`}),`: Otra aplicación ya usa ese subdominio (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`OPERATION_IN_PROGRESS`}),`: Otra operación de ciclo de vida sobre la misma aplicación está en curso; el\ncontenedor no se tocó (`,_jsx(_components.code,{children:`409`}),`). Espera unos segundos y vuelve a intentarlo.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Fallo inesperado (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsx(_components.p,{children:`Un mensaje descriptivo con más detalles sobre el error.`})}),`\n`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Se aplican dos límites, y son deliberadamente estrictos.`}),` Publicar y despublicar recrean el\ncontenedor, así que comparten el presupuesto de ciclo de vida por aplicación con `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`stop`}),`, `,_jsx(_components.code,{children:`restart`}),` y las\ninstalaciones de dependencias: `,_jsx(_components.strong,{children:`10 peticiones por minuto entre todas ellas`}),`, por aplicación, no un presupuesto por ruta. Además, una publicación correcta inicia un `,_jsx(_components.strong,{children:`enfriamiento de 5 minutos en la dirección pública de la aplicación`}),`, compartido con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/network/subdomain`,children:`Cambiar subdominio`}),`: publicar de nuevo dentro de esa\nventana devuelve `,_jsx(_components.code,{children:`429 SUBDOMAIN_CHANGE_RATE_LIMITED`}),`. Despublicar y volver a publicar con un nombre nuevo es un cambio de dirección como cualquier otro y no se salta el límite. Los rechazos no consumen el enfriamiento:\nsolo lo consume una publicación que llegó a ocurrir. Consulta `,_jsx(_components.a,{href:`/es-es/api-reference/introduction#c%C3%B3mo-se-aplican-los-l%C3%ADmites-de-peticiones-a-la-api`,children:`Límite de peticiones`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publicar la aplicación en la web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","authMethod":"bearer","description":"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.","href":"/es-es/api-reference/endpoint/apps/network/publish"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,ResponseExample,ResponseField,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Una aplicación creada sin `,_jsx(_components.code,{children:`subdomain`}),` es privada: se ejecuta, pero nada la enruta desde internet. Estas dos rutas activan y desactivan\nla publicación web en cualquier momento, sin recrear la aplicación.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Ambas rutas recrean el contenedor, así que la aplicación se reinicia.`}),` La configuración de enrutamiento y el puerto expuesto solo existen desde la creación\ndel contenedor, por lo que el estado de publicación no puede cambiar en caliente. Espera una breve interrupción en cada llamada.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Despublicar libera el subdominio.`}),` No queda reservado para ti: cualquiera puede registrarlo justo después, y puede que no lo recuperes. También se eliminan todos\nlos dominios personalizados de la aplicación, pero tus registros DNS no se tocan: borra el `,_jsx(_components.code,{children:`CNAME`}),` y el registro `,_jsx(_components.code,{children:`TXT`}),` de validación de cada dominio en tu proveedor de DNS,\no los nombres seguirán apuntando a Vertra Cloud y otro cliente podría reclamarlos. Para volver a usar un dominio, añádelo de nuevo y crea los registros que se muestran para él.`]})}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`El ID de la aplicación. Solo el propietario de la aplicación puede llamar a este endpoint; por ahora no se aceptan miembros del workspace.`})}),`\n`,_jsxs(ParamField,{body:`subdomain`,type:`string`,id:`param-subdomain`,children:[_jsxs(_components.p,{children:[`El subdominio con el que publicar, sin el sufijo `,_jsx(_components.code,{children:`.vertraweb.app`}),` (por ejemplo, `,_jsx(_components.code,{children:`myapp`}),`). Entre 3 y\n50 caracteres, que cumpla `,_jsx(_components.code,{children:`^[a-z0-9][a-z0-9-]*[a-z0-9]$`}),`.`]}),_jsxs(_components.p,{children:[`Es opcional. Si lo omites, la plataforma elige un subdominio por ti. `,_jsx(_components.strong,{children:`Enviar un valor requiere un plan\ncon subdominios personalizados`}),`; que se elija uno al azar no.`]})]}),`\n`,_jsx(ParamField,{body:`port`,type:`integer`,id:`param-port`,children:_jsxs(_components.p,{children:[`Solo para una aplicación que ejecuta una `,_jsx(_components.a,{href:`/es-es/guides/custom-docker-images`,children:`imagen Docker personalizada`}),`: el puerto en el que escucha la imagen, de 1 a 65535. Se guarda como el puerto de la aplicación. `,_jsx(_components.strong,{children:`Es obligatorio cuando la aplicación se creó sin web`}),`; de lo contrario, la llamada falla con `,_jsx(_components.code,{children:`IMAGE_APP_PORT_REQUIRED`}),`. Se ignora en cualquier otra aplicación.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`respuesta`,children:`Respuesta`}),`\n`,_jsx(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`subdomain`,type:`string | null`,id:`param-subdomain-1`,children:_jsxs(_components.p,{children:[`El subdominio completo que sirve ahora la aplicación, o `,_jsx(_components.code,{children:`null`}),` una vez desactivada la publicación.`]})}),_jsx(ResponseField,{name:`domains`,type:`string[]`,id:`param-domains`,children:_jsxs(_components.p,{children:[`Los nombres de host de los dominios personalizados. Siempre vacío tras publicar o despublicar: añade dominios con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/create`,children:`Añadir dominio de la aplicación`}),`.`]})}),_jsx(ResponseField,{name:`type`,type:`integer`,id:`param-type`,children:_jsxs(_components.p,{children:[`El tipo de aplicación tras el cambio: `,_jsx(_components.code,{children:`2`}),` (sitio web) cuando está publicada, `,_jsx(_components.code,{children:`1`}),` (bot) cuando no lo está.`]})})]})}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Response (POST)`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"response\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subdomain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"myapp.vertraweb.app\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"domains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Response (DELETE)`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"response\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subdomain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"domains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`despublicar`,children:`Despublicar`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`DELETE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` https://api.vertracloud.app/v1/apps/{id}/network/publish`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`No recibe cuerpo. Libera el subdominio, elimina cada dominio personalizado (sus registros DNS en tu proveedor se mantienen hasta que los borres) y vuelve a convertir la aplicación en privada; después recrea el contenedor. La respuesta tiene la misma forma, con `,_jsx(_components.code,{children:`subdomain`}),`\nen `,_jsx(_components.code,{children:`null`}),`, `,_jsx(_components.code,{children:`domains`}),` vacío y `,_jsx(_components.code,{children:`type`}),` de nuevo en `,_jsx(_components.code,{children:`1`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`mínimo-de-memoria`,children:`Mínimo de memoria`}),`\n`,_jsxs(_components.p,{children:[`Una aplicación publicada necesita al menos `,_jsx(_components.strong,{children:`512 MB`}),` de RAM. Aquí nunca se sube la memoria por ti: si\nla aplicación tiene menos, la petición falla con `,_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),` y los valores actual y requerido\nllegan en `,_jsx(_components.code,{children:`details`}),`. Súbela con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/updateconfig`,children:`Actualizar la configuración de la aplicación`}),` y vuelve a intentarlo.`]}),`\n`,_jsx(CodeBlock,{filename:`Error Response (400)`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MEMORY_BELOW_MINIMUM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current_mb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"minimum_mb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`512`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`respuestas-de-error`,children:`Respuestas de error`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`El código de error que indica el motivo del fallo. Valores posibles:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: El parámetro de ruta o el cuerpo no superaron la validación (`,_jsx(_components.code,{children:`400`}),`). Es lo que devuelve un\n`,_jsx(_components.code,{children:`subdomain`}),` mal formado: de 3 a 50 caracteres, `,_jsx(_components.code,{children:`^[a-z0-9][a-z0-9-]*[a-z0-9]$`}),`. La respuesta\ntambién incluye `,_jsx(_components.code,{children:`message`}),` y `,_jsx(_components.code,{children:`path`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`AUTH_TOKEN_MISSING`}),`, `,_jsx(_components.code,{children:`API_KEY_INVALID`}),`, `,_jsx(_components.code,{children:`SESSION_REVOKED`}),`: Falta la cabecera `,_jsx(_components.code,{children:`Authorization`}),`, la clave de API no es válida o la sesión del panel fue revocada (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_IP_DENIED`}),`, `,_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_NOT_FOUND`}),`: No se pudo resolver el usuario autenticado (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ACCESS_DENIED`}),`: El usuario no tiene permiso para actuar sobre la aplicación (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: La cuenta propietaria de la aplicación no tiene un plan activo (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH`}),`: El plan del propietario no incluye la publicación web (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_SUBDOMAIN`}),`: Se envió un `,_jsx(_components.code,{children:`subdomain`}),`, pero el plan del propietario no permite elegir el nombre (`,_jsx(_components.code,{children:`403`}),`). Omite el campo para obtener uno aleatorio.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_FOUND`}),`: La aplicación indicada no existe (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_APP_PORT_REQUIRED`}),`: La aplicación ejecuta una imagen Docker personalizada, todavía no tiene puerto y el cuerpo no tiene `,_jsx(_components.code,{children:`port`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_ALREADY_PUBLISHED`}),`: La aplicación ya tiene un subdominio o un dominio personalizado (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_PUBLISHED`}),`: `,_jsx(_components.code,{children:`DELETE`}),` sobre una aplicación que no está publicada (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),`: La aplicación tiene menos RAM de la que requiere una aplicación publicada (`,_jsx(_components.code,{children:`400`}),`),\ncon `,_jsx(_components.code,{children:`details: { current_mb, minimum_mb }`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_FORBIDDEN`}),`: El subdominio solicitado está en la lista de nombres reservados de la plataforma (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_TAKEN`}),`: Otra aplicación ya usa ese subdominio (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`OPERATION_IN_PROGRESS`}),`: Otra operación de ciclo de vida sobre la misma aplicación está en curso; el\ncontenedor no se tocó (`,_jsx(_components.code,{children:`409`}),`). Espera unos segundos y vuelve a intentarlo.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Fallo inesperado (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsx(_components.p,{children:`Un mensaje descriptivo con más detalles sobre el error.`})}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Error Response (403)`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Error Response (400)`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"APP_ALREADY_PUBLISHED\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Error Response (409)`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SUBDOMAIN_TAKEN\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Se aplican dos límites, y son deliberadamente estrictos.`}),` Publicar y despublicar recrean el\ncontenedor, así que comparten el presupuesto de ciclo de vida por aplicación con `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`stop`}),`, `,_jsx(_components.code,{children:`restart`}),` y las\ninstalaciones de dependencias: `,_jsx(_components.strong,{children:`10 peticiones por minuto entre todas ellas`}),`, por aplicación, no un presupuesto por ruta. Además, una publicación correcta inicia un `,_jsx(_components.strong,{children:`enfriamiento de 5 minutos en la dirección pública de la aplicación`}),`, compartido con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/network/subdomain`,children:`Cambiar subdominio`}),`: publicar de nuevo dentro de esa\nventana devuelve `,_jsx(_components.code,{children:`429 SUBDOMAIN_CHANGE_RATE_LIMITED`}),`. Despublicar y volver a publicar con un nombre nuevo es un cambio de dirección como cualquier otro y no se salta el límite. Los rechazos no consumen el enfriamiento:\nsolo lo consume una publicación que llegó a ocurrir. Consulta `,_jsx(_components.a,{href:`/es-es/api-reference/introduction#c%C3%B3mo-se-aplican-los-l%C3%ADmites-de-peticiones-a-la-api`,children:`Límite de peticiones`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publicar la aplicación en la web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","authMethod":"bearer","description":"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.","href":"/es-es/api-reference/endpoint/apps/network/publish"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Respuesta","slug":"respuesta","depth":3,"children":[]},{"title":"Despublicar","slug":"despublicar","depth":2,"children":[{"title":"Mínimo de memoria","slug":"mínimo-de-memoria","depth":3,"children":[]},{"title":"Respuestas de error","slug":"respuestas-de-error","depth":3,"children":[]}]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"Response (POST)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"7\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"response\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"subdomain\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"myapp.vertraweb.app\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"domains\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Response (DELETE)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"7\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"response\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"subdomain\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"domains\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Publicar la aplicación en la web","path":"/v1/apps/{id}/network/publish","servers":[{"url":"https://api.vertracloud.app"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{"id":{"schema":[{"type":"string","description":"El ID de la aplicación. Solo el propietario de la aplicación puede llamar a este endpoint; por ahora no se aceptan miembros del workspace.","required":true}]}}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"subdomain":[{"type":"string","description":"El subdominio con el que publicar, sin el sufijo `.vertraweb.app` (por ejemplo, `myapp` ). Entre 3 y 50 caracteres, que cumpla `^[a-z0-9][a-z0-9-]*[a-z0-9]$` . Es opcional. Si lo omites, la plataforma elige un subdominio por ti. Enviar un valor requiere un plan con subdominios personalizados ; que se elija uno al azar no."}],"port":[{"type":"integer","description":"Solo para una aplicación que ejecuta una imagen Docker personalizada : el puerto en el que escucha la imagen, de 1 a 65535. Se guarda como el puerto de la aplicación. Es obligatorio cuando la aplicación se creó sin web ; de lo contrario, la llamada falla con `IMAGE_APP_PORT_REQUIRED` . Se ignora en cualquier otra aplicación."}]}}],"examples":{"example":{"value":{"subdomain":"\u003cstring>","port":123}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"response":[{"type":"object","properties":{"subdomain":[{"type":"object","properties":{},"description":"El subdominio completo que sirve ahora la aplicación, o `null` una vez desactivada la publicación."}],"domains":[{"type":"array","items":[{"type":"string"}],"description":"Los nombres de host de los dominios personalizados. Siempre vacío tras publicar o despublicar: añade dominios con Añadir dominio de la aplicación ."}],"type":[{"type":"integer","description":"El tipo de aplicación tras el cambio: `2` (sitio web) cuando está publicada, `1` (bot) cuando no lo está."}]}}],"code":[{"type":"string","description":"El código de error que indica el motivo del fallo. Valores posibles: `VALIDATION_ERROR` : El parámetro de ruta o el cuerpo no superaron la validación ( `400` ). Es lo que devuelve un `subdomain` mal formado: de 3 a 50 caracteres, `^[a-z0-9][a-z0-9-]*[a-z0-9]$` . La respuesta también incluye `message` y `path` . `AUTH_TOKEN_MISSING` , `API_KEY_INVALID` , `SESSION_REVOKED` : Falta la cabecera `Authorization` , la clave de API no es válida o la sesión del panel fue revocada ( `401` ). `API_KEY_IP_DENIED` , `API_KEY_SCOPE_DENIED` : La clave de API se usa desde una IP fuera de su lista de permitidas, o no tiene el scope que requiere la ruta ( `403` ). `USER_NOT_FOUND` : No se pudo resolver el usuario autenticado ( `401` ). `ACCESS_DENIED` : El usuario no tiene permiso para actuar sobre la aplicación ( `403` ). `PLAN_REQUIRED` : La cuenta propietaria de la aplicación no tiene un plan activo ( `403` ). `PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH` : El plan del propietario no incluye la publicación web ( `403` ). `PLAN_DOES_NOT_SUPPORT_CUSTOM_SUBDOMAIN` : Se envió un `subdomain` , pero el plan del propietario no permite elegir el nombre ( `403` ). Omite el campo para obtener uno aleatorio. `APP_NOT_FOUND` : La aplicación indicada no existe ( `404` ). `IMAGE_APP_PORT_REQUIRED` : La aplicación ejecuta una imagen Docker personalizada, todavía no tiene puerto y el cuerpo no tiene `port` ( `400` ). `APP_ALREADY_PUBLISHED` : La aplicación ya tiene un subdominio o un dominio personalizado ( `400` ). `APP_NOT_PUBLISHED` : `DELETE` sobre una aplicación que no está publicada ( `400` ). `MEMORY_BELOW_MINIMUM` : La aplicación tiene menos RAM de la que requiere una aplicación publicada ( `400` ), con `details: { current_mb, minimum_mb }` . `SUBDOMAIN_FORBIDDEN` : El subdominio solicitado está en la lista de nombres reservados de la plataforma ( `400` ). `SUBDOMAIN_TAKEN` : Otra aplicación ya usa ese subdominio ( `409` ). `OPERATION_IN_PROGRESS` : Otra operación de ciclo de vida sobre la misma aplicación está en curso; el contenedor no se tocó ( `409` ). Espera unos segundos y vuelve a intentarlo. `INTERNAL_SERVER_ERROR` : Fallo inesperado ( `500` )."}],"message":[{"type":"string","description":"Un mensaje descriptivo con más detalles sobre el error."}]}}],"examples":{"example":{"value":{"response":{"subdomain":{},"domains":["\u003cstring>"],"type":123},"code":"\u003cstring>","message":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"vertracloud","siteName":"Vertra Cloud","title":"Publicar la aplicación en la web - Vertra Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/","matchLevel":4},"pt-BR":{"href":"/pt-br","matchLevel":4},"es":{"href":"/es-es/api-reference/endpoint/apps/network/publish","matchLevel":0}}},"lastModified":"2026-10-30T22:45:18.671Z","gitLastModified":"2026-10-28T22:06:31.000Z","originalFileLocation":"es-es/api-reference/endpoint/apps/network/publish.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publicar la aplicación en la web - Vertra Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vertra Cloud Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.vertracloud.app/images/og.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Publicar la aplicación en la web - Vertra Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.vertracloud.app/images/og.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6100\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es-es/api-reference/endpoint/apps/network/publish.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vertracloud.app/#organization\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vertracloud.app#website\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish#webpage\",\"url\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish\",\"name\":\"Publicar la aplicación en la web\",\"description\":\"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\",\"dateModified\":\"2026-10-28T22:06:31.000Z\",\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/users/me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aplicaciones\",\"item\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/get\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Publicar la aplicación en la web\",\"item\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish#apireference\",\"headline\":\"Publicar la aplicación en la web\",\"name\":\"Publicar la aplicación en la web\",\"description\":\"Activa la publicación web de una aplicación creada sin ella, y la vuelve a desactivar.\",\"url\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/network/publish#webpage\"},\"image\":\"https://docs.vertracloud.app/images/og.png\",\"dateModified\":\"2026-10-28T22:06:31.000Z\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vertra Cloud\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vertra Cloud","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/"}]},{"language":"pt-BR","navbar":{"links":[{"href":"mailto:[email protected]","label":"Suporte"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"pages":[{"title":"pt-BR","href":"/pt-br"}]},{"language":"es","navbar":{"links":[{"href":"mailto:[email protected]","label":"Soporte"}],"primary":{"type":"button","label":"Panel","href":"https://vertracloud.app/dashboard"}},"tabs":[{"tab":"Primeros pasos","pages":[{"title":"Primeros pasos","href":"/es-es"}]},{"tab":"Recursos","pages":[{"title":"Recursos","href":"/es-es/applications"}]},{"tab":"Tutoriales","pages":[{"title":"Tutoriales","href":"/es-es/tutorials/introduction"}]},{"tab":"Guías","pages":[{"title":"Guías","href":"/es-es/guides/custom-domain"}]},{"tab":"Herramientas","pages":[{"title":"Herramientas","href":"/es-es/cli"}]},{"tab":"Blob Storage","pages":[{"title":"Blob Storage","href":"/es-es/blob/overview"}]},{"tab":"Plantillas","pages":[{"title":"Plantillas","href":"/es-es/templates/overview"}]},{"tab":"Referencia de la API","groups":[{"group":"Visión general","icon":"book","pages":[{"title":"Referencia de la API pública de Vertra Cloud","sidebarTitle":"API pública","href":"/es-es/api-reference/introduction"},{"title":"Límites y cuotas de la plataforma en Vertra Cloud","sidebarTitle":"Límites","href":"/es-es/api-reference/limitations"},{"title":"Códigos de error de la API de Vertra Cloud","sidebarTitle":"Códigos de error","href":"/es-es/api-reference/errors"}]},{"group":"Endpoints","icon":"plug","pages":[{"group":"Usuarios","icon":"user","pages":[{"title":"Información del usuario","sidebarTitle":"Info del usuario","api":"GET https://api.vertracloud.app/v1/users/me","href":"/es-es/api-reference/endpoint/users/me"},{"title":"Actualizar perfil de usuario","sidebarTitle":"Actualizar perfil","api":"PATCH https://api.vertracloud.app/v1/users/me","href":"/es-es/api-reference/endpoint/users/update-me"},{"title":"Listar todos los snapshots de la cuenta","sidebarTitle":"Todos los snapshots","api":"GET https://api.vertracloud.app/v1/users/snapshots","href":"/es-es/api-reference/endpoint/users/snapshots"},{"title":"Organización personal de recursos","sidebarTitle":"Carpetas y favoritos","href":"/es-es/api-reference/endpoint/users/resource-organization"},{"title":"Listar sesiones","sidebarTitle":"Sesiones","api":"GET https://api.vertracloud.app/v1/users/me/sessions","href":"/es-es/api-reference/endpoint/users/sessions"}]},{"group":"Estado","icon":"heart-pulse","pages":[{"title":"Comprobar el estado de la infraestructura","sidebarTitle":"Comprobar estado","api":"GET https://api.vertracloud.app/v1/status","href":"/es-es/api-reference/endpoint/services/status"}]},{"group":"Aplicaciones","icon":"rocket","pages":[{"title":"Detalles de la aplicación","sidebarTitle":"Obtener aplicación","api":"GET https://api.vertracloud.app/v1/apps/{id}","href":"/es-es/api-reference/endpoint/apps/get"},{"title":"Estado de la aplicación","sidebarTitle":"Obtener estado de la aplicación","api":"GET https://api.vertracloud.app/v1/apps/{id}/status","href":"/es-es/api-reference/endpoint/apps/status"},{"title":"Estado de todas las aplicaciones","sidebarTitle":"Estado de todas las aplicaciones","api":"GET https://api.vertracloud.app/v1/apps/status","href":"/es-es/api-reference/endpoint/apps/allstatus"},{"title":"Listar runtimes","sidebarTitle":"Runtimes","api":"GET https://api.vertracloud.app/v1/apps/runtimes","href":"/es-es/api-reference/endpoint/apps/runtimes"},{"title":"Métricas de la aplicación","sidebarTitle":"Métricas de la aplicación","api":"GET https://api.vertracloud.app/v1/apps/{id}/metrics","href":"/es-es/api-reference/endpoint/apps/metrics"},{"title":"Logs de la aplicación en tiempo real","sidebarTitle":"Logs en tiempo real","api":"GET https://api.vertracloud.app/v1/apps/{id}/realtime","href":"/es-es/api-reference/endpoint/apps/realtime"},{"title":"Descargar aplicación","sidebarTitle":"Descargar aplicación","api":"GET https://api.vertracloud.app/v1/apps/{id}/download","href":"/es-es/api-reference/endpoint/apps/download"},{"title":"Logs de la aplicación","sidebarTitle":"Logs de la aplicación","api":"GET https://api.vertracloud.app/v1/apps/{id}/logs","href":"/es-es/api-reference/endpoint/apps/logs"},{"title":"Crear aplicación","sidebarTitle":"Crear aplicación","api":"POST https://api.vertracloud.app/v1/apps","href":"/es-es/api-reference/endpoint/apps/create"},{"title":"Crear aplicación desde imagen","sidebarTitle":"Crear desde imagen","api":"POST https://api.vertracloud.app/v1/apps/image","href":"/es-es/api-reference/endpoint/apps/create-from-image"},{"title":"Iniciar la aplicación","sidebarTitle":"Iniciar aplicación","api":"POST https://api.vertracloud.app/v1/apps/{id}/start","href":"/es-es/api-reference/endpoint/apps/start"},{"title":"Reiniciar la aplicación","sidebarTitle":"Reiniciar aplicación","api":"POST https://api.vertracloud.app/v1/apps/{id}/restart","href":"/es-es/api-reference/endpoint/apps/restart"},{"title":"Detener la aplicación","sidebarTitle":"Detener aplicación","api":"POST https://api.vertracloud.app/v1/apps/{id}/stop","href":"/es-es/api-reference/endpoint/apps/stop"},{"title":"Actualizar la configuración de la aplicación","sidebarTitle":"Actualizar configuración","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/config","href":"/es-es/api-reference/endpoint/apps/updateconfig"},{"title":"Eliminar aplicación","sidebarTitle":"Eliminar aplicación","api":"DELETE https://api.vertracloud.app/v1/apps/{id}","description":"Elimina una aplicación por su ID. En Pro y superiores, antes se toma un snapshot de seguridad.","href":"/es-es/api-reference/endpoint/apps/delete"},{"group":"Red","icon":"globe","pages":[{"title":"Publicar la aplicación en la web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","href":"/es-es/api-reference/endpoint/apps/network/publish"},{"title":"Cambiar el subdominio de la aplicación","sidebarTitle":"Cambiar subdominio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/network/subdomain","description":"Renombra el subdominio vertraweb.app de una aplicación que ya está publicada en la web.","href":"/es-es/api-reference/endpoint/apps/network/subdomain"},{"title":"Purgar caché","sidebarTitle":"Purgar caché","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/purge-cache","href":"/es-es/api-reference/endpoint/apps/network/purgecache"}]},{"group":"Dominios","icon":"link","pages":[{"title":"Listar dominios de la aplicación","sidebarTitle":"Listar dominios","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains","href":"/es-es/api-reference/endpoint/apps/domains/list"},{"title":"Añadir dominio a la aplicación","sidebarTitle":"Añadir dominio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","href":"/es-es/api-reference/endpoint/apps/domains/create"},{"title":"Actualizar dominio de la aplicación","sidebarTitle":"Actualizar dominio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/es-es/api-reference/endpoint/apps/domains/update"},{"title":"Eliminar dominio de la aplicación","sidebarTitle":"Eliminar dominio","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/es-es/api-reference/endpoint/apps/domains/delete"},{"title":"Registros DNS del dominio","sidebarTitle":"Registros DNS del dominio","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/dns","href":"/es-es/api-reference/endpoint/apps/domains/dns"},{"title":"Configurar dominio automáticamente","sidebarTitle":"Configurar automáticamente","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/connect","href":"/es-es/api-reference/endpoint/apps/domains/connect"}]},{"group":"Gestor de archivos","icon":"folder-open","pages":[{"title":"Obtener contenido de un archivo de la aplicación","sidebarTitle":"Obtener contenido de archivo","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/content","href":"/es-es/api-reference/endpoint/apps/filemanager/content"},{"title":"Obtener archivos de la aplicación","sidebarTitle":"Obtener archivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files","href":"/es-es/api-reference/endpoint/apps/filemanager/files"},{"title":"Obtener árbol de archivos de la aplicación","sidebarTitle":"Obtener árbol de archivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/tree","href":"/es-es/api-reference/endpoint/apps/filemanager/tree"},{"title":"Subir archivos a la aplicación","sidebarTitle":"Subir archivos","api":"POST https://api.vertracloud.app/v1/apps/{id}/files/upload","href":"/es-es/api-reference/endpoint/apps/filemanager/upload"},{"title":"Eliminar archivo o carpeta de la aplicación","sidebarTitle":"Eliminar archivo o carpeta","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/files","href":"/es-es/api-reference/endpoint/apps/filemanager/delete"},{"title":"Mover archivo o carpeta de la aplicación","sidebarTitle":"Mover archivo o carpeta","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/files","href":"/es-es/api-reference/endpoint/apps/filemanager/move"},{"title":"Crear o actualizar archivo o carpeta de la aplicación","sidebarTitle":"Crear/actualizar archivo o carpeta","api":"PUT https://api.vertracloud.app/v1/apps/{id}/files","href":"/es-es/api-reference/endpoint/apps/filemanager/save"}]},{"group":"Variables de entorno","icon":"key","pages":[{"title":"Obtener variables de entorno de la aplicación","sidebarTitle":"Obtener variables de entorno","api":"GET https://api.vertracloud.app/v1/apps/{id}/envs","href":"/es-es/api-reference/endpoint/apps/enviroments/get"},{"title":"Eliminar una variable de entorno de la aplicación","sidebarTitle":"Eliminar variable de entorno","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/envs/{envId}","href":"/es-es/api-reference/endpoint/apps/enviroments/delete"},{"title":"Crear o editar variables de entorno de la aplicación","sidebarTitle":"Crear/editar variables de entorno","api":"POST https://api.vertracloud.app/v1/apps/{id}/envs","href":"/es-es/api-reference/endpoint/apps/enviroments/createOrEdit"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Obtener snapshots de la aplicación","sidebarTitle":"Obtener snapshots","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/es-es/api-reference/endpoint/apps/snapshots/getall"},{"title":"Crear snapshot de la aplicación","sidebarTitle":"Crear snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/es-es/api-reference/endpoint/apps/snapshots/create"},{"title":"Restaurar snapshot de la aplicación","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/restore","href":"/es-es/api-reference/endpoint/apps/snapshots/restore"},{"title":"Descargar snapshot de la aplicación","sidebarTitle":"Descargar snapshot","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/download","href":"/es-es/api-reference/endpoint/apps/snapshots/download"}]},{"group":"Despliegues","icon":"code-branch","pages":[{"title":"Obtener URL del webhook de despliegue","sidebarTitle":"Obtener URL del webhook","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/es-es/api-reference/endpoint/apps/deploys/webhookurl"},{"title":"Obtener despliegues recientes","sidebarTitle":"Despliegues recientes","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys","href":"/es-es/api-reference/endpoint/apps/deploys/recents"},{"title":"Eliminar webhook de despliegue","sidebarTitle":"Eliminar webhook","api":"DELETE https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/es-es/api-reference/endpoint/apps/deploys/delete"},{"title":"Crear webhook de despliegue","sidebarTitle":"Crear webhook","api":"POST https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/es-es/api-reference/endpoint/apps/deploys/create"}]},{"group":"Releases","icon":"clock-rotate-left","pages":[{"title":"Listar releases de la aplicación","sidebarTitle":"Listar releases","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases","href":"/es-es/api-reference/endpoint/apps/releases/list"},{"title":"Obtener el log de una release de la aplicación","sidebarTitle":"Obtener log de la release","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/log","href":"/es-es/api-reference/endpoint/apps/releases/log"},{"title":"Previsualizar el rollback de la aplicación","sidebarTitle":"Previsualizar rollback","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/es-es/api-reference/endpoint/apps/releases/rollback-preview"},{"title":"Hacer rollback de la aplicación a una release","sidebarTitle":"Hacer rollback","api":"POST https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/es-es/api-reference/endpoint/apps/releases/rollback"}]}]},{"group":"Imágenes Docker","icon":"docker","pages":[{"title":"Listar imágenes","sidebarTitle":"Listar imágenes","api":"GET https://api.vertracloud.app/v1/images","href":"/es-es/api-reference/endpoint/images/list"},{"title":"Obtener una imagen","sidebarTitle":"Obtener imagen","api":"GET https://api.vertracloud.app/v1/images/{image_id}","href":"/es-es/api-reference/endpoint/images/get"},{"title":"Comprobar un Dockerfile","sidebarTitle":"Comprobar Dockerfile","api":"POST https://api.vertracloud.app/v1/images/check","href":"/es-es/api-reference/endpoint/images/check"},{"title":"Crear una imagen","sidebarTitle":"Crear imagen","api":"POST https://api.vertracloud.app/v1/images","href":"/es-es/api-reference/endpoint/images/create"},{"title":"Actualizar imagen","sidebarTitle":"Actualizar imagen","api":"PATCH https://api.vertracloud.app/v1/images/{image_id}","href":"/es-es/api-reference/endpoint/images/update"},{"title":"Reconstruir imagen","sidebarTitle":"Reconstruir imagen","api":"PUT https://api.vertracloud.app/v1/images/{image_id}","href":"/es-es/api-reference/endpoint/images/rebuild"},{"title":"Listar versiones de la imagen","sidebarTitle":"Listar versiones","api":"GET https://api.vertracloud.app/v1/images/{image_id}/versions","href":"/es-es/api-reference/endpoint/images/versions"},{"title":"Logs de build de la imagen","sidebarTitle":"Logs de build","api":"GET https://api.vertracloud.app/v1/images/{image_id}/logs","href":"/es-es/api-reference/endpoint/images/logs"},{"title":"Descargar el contexto de una imagen","sidebarTitle":"Descargar contexto","api":"GET https://api.vertracloud.app/v1/images/{image_id}/context","href":"/es-es/api-reference/endpoint/images/context"},{"title":"Vincular imagen a GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/images/{image_id}/github","href":"/es-es/api-reference/endpoint/images/github-link"},{"title":"Desvincular imagen de GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}/github","href":"/es-es/api-reference/endpoint/images/github-unlink"},{"title":"Eliminar una imagen","sidebarTitle":"Eliminar imagen","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}","href":"/es-es/api-reference/endpoint/images/delete"}]},{"group":"Plantillas","icon":"shapes","pages":[{"title":"Listar plantillas","sidebarTitle":"Listar plantillas","api":"GET https://api.vertracloud.app/v1/templates","href":"/es-es/api-reference/endpoint/templates/list"},{"title":"Listar categorías de plantillas","sidebarTitle":"Listar categorías","api":"GET https://api.vertracloud.app/v1/templates/categories","href":"/es-es/api-reference/endpoint/templates/categories"},{"title":"Obtener plantilla","sidebarTitle":"Obtener plantilla","api":"GET https://api.vertracloud.app/v1/templates/{template_id}","href":"/es-es/api-reference/endpoint/templates/get"},{"title":"Listar versiones de la plantilla","sidebarTitle":"Listar versiones","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/es-es/api-reference/endpoint/templates/versions"},{"title":"Validar el manifiesto de una plantilla","sidebarTitle":"Validar manifiesto","api":"POST https://api.vertracloud.app/v1/templates/validate","href":"/es-es/api-reference/endpoint/templates/validate"},{"title":"Desplegar plantilla","sidebarTitle":"Desplegar plantilla","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/deploy","href":"/es-es/api-reference/endpoint/templates/deploy"},{"title":"Obtener trabajo de despliegue de plantilla","sidebarTitle":"Obtener trabajo de despliegue","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}","href":"/es-es/api-reference/endpoint/templates/deploy-status"},{"title":"Transmitir eventos de despliegue de plantilla","sidebarTitle":"Eventos de despliegue","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}/events","href":"/es-es/api-reference/endpoint/templates/deploy-events"},{"title":"Obtener información de actualización de la plantilla","sidebarTitle":"Información de actualización","api":"GET https://api.vertracloud.app/v1/apps/{id}/template/update","href":"/es-es/api-reference/endpoint/templates/update-info"},{"title":"Actualizar una plantilla o mover una aplicación a su última versión","sidebarTitle":"Actualizar plantilla","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/update","href":"/es-es/api-reference/endpoint/templates/update"},{"title":"Crear una plantilla privada","sidebarTitle":"Crear plantilla","api":"POST https://api.vertracloud.app/v1/templates","href":"/es-es/api-reference/endpoint/templates/create"},{"title":"Guardar una aplicación como plantilla","sidebarTitle":"Crear desde aplicación","api":"POST https://api.vertracloud.app/v1/templates/from-app/{app_id}","href":"/es-es/api-reference/endpoint/templates/create-from-app"},{"title":"Guardar un stack como plantilla","sidebarTitle":"Crear desde stack","api":"POST https://api.vertracloud.app/v1/templates/from-stack/{stack_id}","href":"/es-es/api-reference/endpoint/templates/create-from-stack"},{"title":"Revisar el borrador de una plantilla desde una aplicación o stack","sidebarTitle":"Revisar borrador","api":"GET https://api.vertracloud.app/v1/templates/from-app/{app_id}/draft","href":"/es-es/api-reference/endpoint/templates/draft"},{"title":"Publicar una nueva versión de una plantilla privada","sidebarTitle":"Nueva versión","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/es-es/api-reference/endpoint/templates/new-version"},{"title":"Eliminar una plantilla privada","sidebarTitle":"Eliminar plantilla","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}","href":"/es-es/api-reference/endpoint/templates/delete"},{"title":"Vincular una plantilla privada a GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/es-es/api-reference/endpoint/templates/github-link"},{"title":"Desvincular una plantilla privada de GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/es-es/api-reference/endpoint/templates/github-unlink"},{"title":"Desvincular una aplicación o stack de una plantilla","sidebarTitle":"Desvincular","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/detach","href":"/es-es/api-reference/endpoint/templates/detach"},{"group":"Enlaces para compartir","icon":"share-nodes","pages":[{"title":"Previsualizar un enlace para compartir plantilla","sidebarTitle":"Previsualizar enlace","api":"GET https://api.vertracloud.app/v1/share/templates/{token}","href":"/es-es/api-reference/endpoint/templates/share-links/preview"},{"title":"Usar un enlace para compartir plantilla para crear aplicaciones","sidebarTitle":"Usar enlace","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/deploy","href":"/es-es/api-reference/endpoint/templates/share-links/deploy"},{"title":"Copiar una plantilla desde un enlace para compartir de copia completa","sidebarTitle":"Copiar desde el enlace","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/copy","href":"/es-es/api-reference/endpoint/templates/share-links/copy"},{"title":"Reportar una plantilla","sidebarTitle":"Reportar plantilla","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/report","href":"/es-es/api-reference/endpoint/templates/share-links/report"},{"title":"Crear un enlace para compartir una plantilla","sidebarTitle":"Crear enlace","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/es-es/api-reference/endpoint/templates/share-links/create"},{"title":"Listar los enlaces para compartir de una plantilla","sidebarTitle":"Listar enlaces","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/es-es/api-reference/endpoint/templates/share-links/list"},{"title":"Revocar un enlace para compartir","sidebarTitle":"Revocar enlace","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/share-links/{link_id}","href":"/es-es/api-reference/endpoint/templates/share-links/revoke"}]}]},{"group":"Stacks","icon":"layer-group","pages":[{"title":"Listar stacks","sidebarTitle":"Listar stacks","api":"GET https://api.vertracloud.app/v1/stacks","href":"/es-es/api-reference/endpoint/stacks/list"},{"title":"Obtener stack","sidebarTitle":"Obtener stack","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/es-es/api-reference/endpoint/stacks/get"},{"title":"Crear stack","sidebarTitle":"Crear stack","api":"POST https://api.vertracloud.app/v1/stacks","href":"/es-es/api-reference/endpoint/stacks/create"},{"title":"Actualizar stack","sidebarTitle":"Actualizar stack","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/es-es/api-reference/endpoint/stacks/update"},{"title":"Eliminar stack","sidebarTitle":"Eliminar stack","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/es-es/api-reference/endpoint/stacks/delete"},{"title":"Convertir carpeta en stack","sidebarTitle":"Convertir en stack","api":"POST https://api.vertracloud.app/v1/stacks/transform","href":"/es-es/api-reference/endpoint/stacks/transform"},{"title":"Obtener código de conexión del stack","sidebarTitle":"Código de conexión","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/connection","href":"/es-es/api-reference/endpoint/stacks/connection"},{"title":"Definir modo de red del stack","sidebarTitle":"Modo de red","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/network-mode","href":"/es-es/api-reference/endpoint/stacks/network-mode"},{"group":"Miembros","icon":"user-group","pages":[{"title":"Añadir miembro al stack","sidebarTitle":"Añadir miembro","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/members","href":"/es-es/api-reference/endpoint/stacks/members/add"},{"title":"Quitar miembro del stack","sidebarTitle":"Quitar miembro","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/members/{resource_type}/{resource_id}","href":"/es-es/api-reference/endpoint/stacks/members/remove"}]},{"group":"Conexiones","icon":"arrows-left-right","pages":[{"title":"Crear conexión del stack","sidebarTitle":"Crear conexión","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/es-es/api-reference/endpoint/stacks/bindings/create"},{"title":"Eliminar conexión del stack","sidebarTitle":"Eliminar conexión","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/es-es/api-reference/endpoint/stacks/bindings/delete"},{"title":"Listar conexiones del stack","sidebarTitle":"Listar conexiones","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/es-es/api-reference/endpoint/stacks/bindings/list"},{"title":"Actualizar conexión del stack","sidebarTitle":"Actualizar conexión","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/es-es/api-reference/endpoint/stacks/bindings/update"}]},{"group":"Bases de datos","icon":"database","pages":[{"title":"Añadir base de datos al stack","sidebarTitle":"Añadir base de datos","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/databases","href":"/es-es/api-reference/endpoint/stacks/databases/create"}]},{"group":"Blob","icon":"box-archive","pages":[{"title":"Añadir carpeta de Blob al stack","sidebarTitle":"Añadir carpeta de Blob","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/blob","href":"/es-es/api-reference/endpoint/stacks/blob/create"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Crear snapshot del stack","sidebarTitle":"Crear snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/es-es/api-reference/endpoint/stacks/snapshots/create"},{"title":"Listar snapshots del stack","sidebarTitle":"Listar snapshots","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/es-es/api-reference/endpoint/stacks/snapshots/list"},{"title":"Restaurar snapshot del stack","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots/{snapshot_id}/restore","href":"/es-es/api-reference/endpoint/stacks/snapshots/restore"}]}]},{"group":"Bases de datos","icon":"database","pages":[{"title":"Crear una base de datos","sidebarTitle":"Crear base de datos","api":"POST https://api.vertracloud.app/v1/databases","href":"/es-es/api-reference/endpoint/databases/create"},{"title":"Obtener una base de datos por ID","sidebarTitle":"Obtener base de datos","api":"GET https://api.vertracloud.app/v1/databases/{id}","href":"/es-es/api-reference/endpoint/databases/get"},{"title":"Listar versiones de bases de datos","sidebarTitle":"Versiones","api":"GET https://api.vertracloud.app/v1/databases/versions","href":"/es-es/api-reference/endpoint/databases/versions"},{"title":"Obtener el estado de una base de datos por ID","sidebarTitle":"Obtener estado de base de datos","api":"GET https://api.vertracloud.app/v1/databases/{id}/status","href":"/es-es/api-reference/endpoint/databases/status"},{"title":"Obtener el estado de todas las bases de datos","sidebarTitle":"Estado de todas las bases de datos","api":"GET https://api.vertracloud.app/v1/databases/status","href":"/es-es/api-reference/endpoint/databases/allstatus"},{"title":"Obtener las métricas de una base de datos por ID","sidebarTitle":"Obtener métricas de base de datos","api":"GET https://api.vertracloud.app/v1/databases/{id}/metrics","href":"/es-es/api-reference/endpoint/databases/metrics"},{"title":"Restablecer una base de datos","sidebarTitle":"Restablecer base de datos","api":"POST https://api.vertracloud.app/v1/databases/{id}/reset","href":"/es-es/api-reference/endpoint/databases/reset"},{"title":"Iniciar una base de datos","sidebarTitle":"Iniciar base de datos","api":"POST https://api.vertracloud.app/v1/databases/{id}/start","href":"/es-es/api-reference/endpoint/databases/start"},{"title":"Detener una base de datos","sidebarTitle":"Detener base de datos","api":"POST https://api.vertracloud.app/v1/databases/{id}/stop","href":"/es-es/api-reference/endpoint/databases/stop"},{"title":"Actualizar una base de datos","sidebarTitle":"Actualizar base de datos","api":"PUT https://api.vertracloud.app/v1/databases/{id}","href":"/es-es/api-reference/endpoint/databases/update"},{"title":"Eliminar una base de datos","sidebarTitle":"Eliminar base de datos","api":"DELETE https://api.vertracloud.app/v1/databases/{id}","href":"/es-es/api-reference/endpoint/databases/delete"},{"group":"Credenciales","icon":"lock","pages":[{"title":"Obtener el certificado de una base de datos","sidebarTitle":"Obtener certificado","api":"GET https://api.vertracloud.app/v1/databases/{id}/credentials/certificate","href":"/es-es/api-reference/endpoint/databases/credentials/get"},{"title":"Restablecer los certificados de una base de datos","sidebarTitle":"Restablecer certificados","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/certificate/reset","href":"/es-es/api-reference/endpoint/databases/credentials/reset"},{"title":"Restablecer la contraseña de una base de datos","sidebarTitle":"Restablecer contraseña","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/reset","href":"/es-es/api-reference/endpoint/databases/credentials/resetpassword"}]}]},{"group":"Workspaces","icon":"users","pages":[{"title":"Listar workspaces","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces","href":"/es-es/api-reference/endpoint/workspaces/get-all"},{"title":"Obtener workspace","sidebarTitle":"Obtener","api":"GET https://api.vertracloud.app/v1/workspaces/{id}","href":"/es-es/api-reference/endpoint/workspaces/get"},{"title":"Crear workspace","sidebarTitle":"Crear","api":"POST https://api.vertracloud.app/v1/workspaces","href":"/es-es/api-reference/endpoint/workspaces/create"},{"title":"Actualizar workspace","sidebarTitle":"Actualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}","href":"/es-es/api-reference/endpoint/workspaces/update"},{"title":"Eliminar workspace","sidebarTitle":"Eliminar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}","href":"/es-es/api-reference/endpoint/workspaces/delete"},{"group":"Miembros","icon":"user-group","pages":[{"title":"Listar miembros","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/members","href":"/es-es/api-reference/endpoint/workspaces/members/list"},{"title":"Actualizar miembro","sidebarTitle":"Actualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/es-es/api-reference/endpoint/workspaces/members/update"},{"title":"Eliminar miembro","sidebarTitle":"Eliminar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/es-es/api-reference/endpoint/workspaces/members/remove"}]},{"group":"Roles","icon":"id-badge","pages":[{"title":"Listar roles","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/es-es/api-reference/endpoint/workspaces/roles/list"},{"title":"Crear rol","sidebarTitle":"Crear","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/es-es/api-reference/endpoint/workspaces/roles/create"},{"title":"Actualizar rol","sidebarTitle":"Actualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/es-es/api-reference/endpoint/workspaces/roles/update"},{"title":"Eliminar rol","sidebarTitle":"Eliminar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/es-es/api-reference/endpoint/workspaces/roles/delete"}]},{"group":"Invitaciones","icon":"envelope","pages":[{"title":"Listar invitaciones","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/invites","href":"/es-es/api-reference/endpoint/workspaces/invites/list"},{"title":"Revocar invitación","sidebarTitle":"Revocar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/invites/{invite_id}","href":"/es-es/api-reference/endpoint/workspaces/invites/revoke"},{"title":"Previsualizar invitación","sidebarTitle":"Previsualizar","api":"GET https://api.vertracloud.app/v1/workspaces/invites/{token}","href":"/es-es/api-reference/endpoint/workspaces/invites/preview"},{"title":"Aceptar invitación","sidebarTitle":"Aceptar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/accept","href":"/es-es/api-reference/endpoint/workspaces/invites/accept"},{"title":"Rechazar invitación","sidebarTitle":"Rechazar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/decline","href":"/es-es/api-reference/endpoint/workspaces/invites/decline"}]},{"group":"Aplicaciones y bases de datos","icon":"window-maximize","pages":[{"title":"Vincular aplicación","sidebarTitle":"Vincular app","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/es-es/api-reference/endpoint/workspaces/links/add-app"},{"title":"Desvincular aplicación","sidebarTitle":"Desvincular app","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/es-es/api-reference/endpoint/workspaces/links/remove-app"},{"title":"Vincular base de datos","sidebarTitle":"Vincular base de datos","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/es-es/api-reference/endpoint/workspaces/links/add-database"},{"title":"Desvincular base de datos","sidebarTitle":"Desvincular base de datos","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/es-es/api-reference/endpoint/workspaces/links/remove-database"},{"title":"Vincular plantilla o stack","sidebarTitle":"Vincular plantilla o stack","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/es-es/api-reference/endpoint/workspaces/links/add-template"},{"title":"Desvincular plantilla o stack","sidebarTitle":"Desvincular plantilla o stack","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/es-es/api-reference/endpoint/workspaces/links/remove-template"}]},{"group":"Organización de recursos","icon":"folder-tree","pages":[{"title":"Organización de recursos del workspace","sidebarTitle":"Carpetas y favoritos","href":"/es-es/api-reference/endpoint/workspaces/resource-organization"}]},{"group":"Solicitudes de acción","icon":"square-check","pages":[{"title":"Listar solicitudes de acción","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/es-es/api-reference/endpoint/workspaces/action-requests/list"},{"title":"Crear solicitud de acción","sidebarTitle":"Crear","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/es-es/api-reference/endpoint/workspaces/action-requests/create"}]}]},{"group":"Facturación","icon":"credit-card","pages":[{"title":"Listar pedidos","sidebarTitle":"Listar pedidos","api":"GET https://api.vertracloud.app/v1/orders","href":"/es-es/api-reference/endpoint/billing/list-orders"},{"title":"Obtener el estado de un pedido","sidebarTitle":"Estado del pedido","api":"GET https://api.vertracloud.app/v1/orders/{orderId}/status","href":"/es-es/api-reference/endpoint/billing/order-status"},{"title":"Crear pedido","sidebarTitle":"Crear pedido","api":"POST https://api.vertracloud.app/v1/orders","href":"/es-es/api-reference/endpoint/billing/create-order"},{"title":"Iniciar el pago por PIX","sidebarTitle":"Iniciar PIX","api":"POST https://api.vertracloud.app/v1/orders/{orderId}/initiate/pix","href":"/es-es/api-reference/endpoint/billing/initiate-pix"},{"title":"Obtener los datos de facturación","sidebarTitle":"Obtener datos de facturación","api":"GET https://api.vertracloud.app/v1/users/me/billing","href":"/es-es/api-reference/endpoint/billing/get-billing-details"},{"title":"Actualizar los datos de facturación","sidebarTitle":"Actualizar datos de facturación","api":"PUT https://api.vertracloud.app/v1/users/me/billing","href":"/es-es/api-reference/endpoint/billing/update-billing-details"}]},{"group":"Canje","icon":"ticket","pages":[{"title":"Canjear código","sidebarTitle":"Canjear código","api":"POST https://api.vertracloud.app/v1/redeem/{code}","href":"/es-es/api-reference/endpoint/redeem/redeem"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/es-es/changelog"}]}],"global":{"anchors":[{"anchor":"Documentación","icon":"book-open-cover","href":"https://docs.vertracloud.app/es-es"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/vertracloud"},{"anchor":"Estado","icon":"heart-pulse","href":"https://status.vertracloud.app"}]}}]},"basePath":"","title":"Publicar la aplicación en la web - Vertra Cloud","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js"]}