Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.
Añade el dominio personalizado a la aplicación y responde 201 Created con el nuevo dominio. La aplicación no se reinicia ni se vuelve a
desplegar. El dominio empieza como pending hasta que se resuelvan sus registros DNS; consúltalos con
Registros DNS del dominio. Requiere el scope apps:write cuando se llama con una clave de API.De forma predeterminada, la llamada también crea el complemento automático: www.example.com cuando añades example.com, o
example.com cuando añades www.example.com. El complemento redirige al dominio que añadiste con un 308, y no cuenta para el límite
de dominios de tu plan. Para cualquier otro subdominio (app.example.com) no hay complemento.
Si la aplicación pertenece a un workspace, el ID de ese workspace. Obligatorio para los miembros del workspace que actúan sobre una aplicación que no les pertenece.
El dominio que se añade (por ejemplo, example.com o api.example.com), de entre 1 y 253 caracteres. Se guarda en minúsculas. Envía solo el nombre de host: un esquema, una ruta o un puerto se rechazan con INVALID_CUSTOM_DOMAIN_FORMAT.
Los dominios que pertenecen a Vertra Cloud se rechazan con FORBIDDEN_DOMAIN.
Si se crea el complemento automático www (o el raíz). Envía false para añadir solo el nombre de host que enviaste. No tiene efecto en subdominios distintos de www, y se ignora cuando se envía redirect_to.
El puerto de la aplicación que sirve este dominio, un entero de 1 a 65535. Una aplicación puede servir sus dominios en hasta 5 puertos distintos además del 80; un sexto responde DOMAIN_PORT_LIMIT_REACHED. Un dominio que solo redirige no usa ningún puerto.
Una ruta literal que se antepone a cada petición que el dominio reenvía a la aplicación: con /api, una petición a https://api.example.com/users llega a la aplicación como /api/users. Debe empezar por /, no debe terminar en /, tiene hasta 128 caracteres y solo puede contener letras, dígitos, ., _, ~ y - entre barras (por ejemplo, /api o /v1/api). Recomendado para APIs: un sitio tiene que estar construido para funcionar bajo esa ruta, incluidos sus recursos y sus propias redirecciones.
El ID de otro dominio de la misma aplicación. El nuevo dominio redirige entonces todas las peticiones a ese dominio, manteniendo la ruta y la cadena de consulta, en lugar de servir la aplicación. El destino no debe redirigirse a sí mismo.
El estado HTTP de la redirección: 301, 302, 307 o 308. Solo se usa junto con redirect_to. 301 y 308 son permanentes; 302 y 307 son temporales. 307 y 308 mantienen el método de la petición; 301 y 302 pueden convertir un POST en un GET.
El dominio que añadiste primero, seguido de su complemento si se creó uno. Cada elemento tiene los campos descritos en
Listar dominios de la aplicación.
Los dominios personalizados empiezan en el plan Intermediary (1 dominio por aplicación) y crecen hasta el nivel Enterprise. El complemento
automático nunca cuenta. Los límites por plan están en Planes y límites.
Al dejar de publicar la aplicación se eliminan todos sus dominios. Eliminar un dominio, a mano, al dejar de publicar o por la limpieza automática,
nunca cambia tu DNS: borra tú mismo sus registros CNAME y TXT, como se explica en
Eliminar dominio de la aplicación.
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, por ejemplo un campo desconocido o un tipo incorrecto (400). La respuesta incluye también message y path.
INVALID_CUSTOM_DOMAIN_FORMAT: hostname no es un nombre de host público válido (400).
FORBIDDEN_DOMAIN: El dominio está reservado y no se puede añadir (400).
INVALID_DOMAIN_PORT: port no es un entero de 1 a 65535 (400).
INVALID_PATH_PREFIX: path_prefix no sigue el formato indicado arriba (400).
INVALID_REDIRECT_TARGET: redirect_to no es un dominio de esta aplicación, no está active, o el destino se redirige a sí mismo (400).
APP_NOT_PUBLISHED: La aplicación no está publicada en la web; publícala primero con Publicar aplicación en la web (400).
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: La clave de API se usa desde una IP fuera de su lista de permitidas (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).
API_KEY_SCOPE_DENIED: La clave de API no tiene el scope apps:write (403).
PLAN_REQUIRED: El propietario de la aplicación no tiene un plan activo (403).
PLAN_DOES_NOT_SUPPORT_CUSTOM_DOMAIN: El plan del propietario no incluye dominios personalizados (403).
DOMAIN_LIMIT_REACHED: La aplicación ya tiene tantos dominios como permite el plan (403). details.limit indica el límite.
DOMAIN_PORT_LIMIT_REACHED: La aplicación ya sirve dominios en 5 puertos además del 80 (403). details.limit indica el límite.
APP_NOT_FOUND: La aplicación indicada no existe (404).
DOMAIN_ALREADY_IN_USE: El nombre de host ya está asociado a una aplicación (409).
RATE_LIMIT_EXCEEDED: Se alcanzó el presupuesto de la ruta (429).
CUSTOM_DOMAIN_REGISTRATION_FAILED: No se pudo registrar el dominio en este momento; vuelve a intentarlo más tarde (502).
Esta ruta tiene su propio presupuesto de 10 peticiones por minuto. Consulta Límites 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/domains/create","slug":"/es-es/api-reference/endpoint/apps/domains/create","pageMetadata":{"title":"Añadir dominio a la aplicación","sidebarTitle":"Añadir dominio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","authMethod":"bearer","description":"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.","href":"/es-es/api-reference/endpoint/apps/domains/create"},"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: \"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\"\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`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,ParamField,ResponseField}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Añade el dominio personalizado a la aplicación y responde `,_jsx(_components.code,{children:`201 Created`}),` con el nuevo dominio. La aplicación no se reinicia ni se vuelve a\ndesplegar. El dominio empieza como `,_jsx(_components.code,{children:`pending`}),` hasta que se resuelvan sus registros DNS; consúltalos con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/dns`,children:`Registros DNS del dominio`}),`. Requiere el scope `,_jsx(_components.code,{children:`apps:write`}),` cuando se llama con una clave de API.`]}),`\n`,_jsxs(_components.p,{children:[`De forma predeterminada, la llamada también crea el complemento automático: `,_jsx(_components.code,{children:`www.example.com`}),` cuando añades `,_jsx(_components.code,{children:`example.com`}),`, o\n`,_jsx(_components.code,{children:`example.com`}),` cuando añades `,_jsx(_components.code,{children:`www.example.com`}),`. El complemento redirige al dominio que añadiste con un `,_jsx(_components.code,{children:`308`}),`, y `,_jsx(_components.strong,{children:`no cuenta`}),` para el límite\nde dominios de tu plan. Para cualquier otro subdominio (`,_jsx(_components.code,{children:`app.example.com`}),`) no hay complemento.`]}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsxs(_components.p,{children:[`El ID de la aplicación. La aplicación debe estar publicada en la web (necesita un subdominio `,_jsx(_components.code,{children:`*.vertraweb.app`}),`).`]})}),`\n`,_jsx(ParamField,{query:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`Si la aplicación pertenece a un workspace, el ID de ese workspace. Obligatorio para los miembros del workspace que actúan sobre una aplicación que no les pertenece.`})}),`\n`,_jsx(ParamField,{body:`hostname`,type:`string`,required:true,id:`param-hostname`,children:_jsxs(_components.p,{children:[`El dominio que se añade (por ejemplo, `,_jsx(_components.code,{children:`example.com`}),` o `,_jsx(_components.code,{children:`api.example.com`}),`), de entre 1 y 253 caracteres. Se guarda en minúsculas. Envía solo el nombre de host: un esquema, una ruta o un puerto se rechazan con `,_jsx(_components.code,{children:`INVALID_CUSTOM_DOMAIN_FORMAT`}),`.\nLos dominios que pertenecen a Vertra Cloud se rechazan con `,_jsx(_components.code,{children:`FORBIDDEN_DOMAIN`}),`.`]})}),`\n`,_jsx(ParamField,{body:`www`,type:`boolean`,default:`true`,id:`param-www`,children:_jsxs(_components.p,{children:[`Si se crea el complemento automático `,_jsx(_components.code,{children:`www`}),` (o el raíz). Envía `,_jsx(_components.code,{children:`false`}),` para añadir solo el nombre de host que enviaste. No tiene efecto en subdominios distintos de `,_jsx(_components.code,{children:`www`}),`, y se ignora cuando se envía `,_jsx(_components.code,{children:`redirect_to`}),`.`]})}),`\n`,_jsx(ParamField,{body:`port`,type:`integer`,default:`80`,id:`param-port`,children:_jsxs(_components.p,{children:[`El puerto de la aplicación que sirve este dominio, un entero de `,_jsx(_components.code,{children:`1`}),` a `,_jsx(_components.code,{children:`65535`}),`. Una aplicación puede servir sus dominios en hasta `,_jsxs(_components.strong,{children:[`5 puertos distintos además del `,_jsx(_components.code,{children:`80`})]}),`; un sexto responde `,_jsx(_components.code,{children:`DOMAIN_PORT_LIMIT_REACHED`}),`. Un dominio que solo redirige no usa ningún puerto.`]})}),`\n`,_jsx(ParamField,{body:`path_prefix`,type:`string`,id:`param-path-prefix`,children:_jsxs(_components.p,{children:[`Una ruta literal que se antepone a cada petición que el dominio reenvía a la aplicación: con `,_jsx(_components.code,{children:`/api`}),`, una petición a `,_jsx(_components.code,{children:`https://api.example.com/users`}),` llega a la aplicación como `,_jsx(_components.code,{children:`/api/users`}),`. Debe empezar por `,_jsx(_components.code,{children:`/`}),`, no debe terminar en `,_jsx(_components.code,{children:`/`}),`, tiene hasta 128 caracteres y solo puede contener letras, dígitos, `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`_`}),`, `,_jsx(_components.code,{children:`~`}),` y `,_jsx(_components.code,{children:`-`}),` entre barras (por ejemplo, `,_jsx(_components.code,{children:`/api`}),` o `,_jsx(_components.code,{children:`/v1/api`}),`). Recomendado para APIs: un sitio tiene que estar construido para funcionar bajo esa ruta, incluidos sus recursos y sus propias redirecciones.`]})}),`\n`,_jsx(ParamField,{body:`redirect_to`,type:`string`,id:`param-redirect-to`,children:_jsx(_components.p,{children:`El ID de otro dominio de la misma aplicación. El nuevo dominio redirige entonces todas las peticiones a ese dominio, manteniendo la ruta y la cadena de consulta, en lugar de servir la aplicación. El destino no debe redirigirse a sí mismo.`})}),`\n`,_jsx(ParamField,{body:`redirect_status`,type:`integer`,default:`308`,id:`param-redirect-status`,children:_jsxs(_components.p,{children:[`El estado HTTP de la redirección: `,_jsx(_components.code,{children:`301`}),`, `,_jsx(_components.code,{children:`302`}),`, `,_jsx(_components.code,{children:`307`}),` o `,_jsx(_components.code,{children:`308`}),`. Solo se usa junto con `,_jsx(_components.code,{children:`redirect_to`}),`. `,_jsx(_components.code,{children:`301`}),` y `,_jsx(_components.code,{children:`308`}),` son permanentes; `,_jsx(_components.code,{children:`302`}),` y `,_jsx(_components.code,{children:`307`}),` son temporales. `,_jsx(_components.code,{children:`307`}),` y `,_jsx(_components.code,{children:`308`}),` mantienen el método de la petición; `,_jsx(_components.code,{children:`301`}),` y `,_jsx(_components.code,{children:`302`}),` pueden convertir un `,_jsx(_components.code,{children:`POST`}),` en un `,_jsx(_components.code,{children:`GET`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`respuesta`,children:`Respuesta`}),`\n`,_jsx(ResponseField,{name:`response`,type:`APIApplicationDomain[]`,id:`param-response`,children:_jsxs(_components.p,{children:[`El dominio que añadiste primero, seguido de su complemento si se creó uno. Cada elemento tiene los campos descritos en\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/list#respuesta`,children:`Listar dominios de la aplicación`}),`.`]})}),`\n`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Los dominios personalizados empiezan en el plan `,_jsx(_components.strong,{children:`Intermediary`}),` (1 dominio por aplicación) y crecen hasta el nivel Enterprise. El complemento\nautomático nunca cuenta. Los límites por plan están en `,_jsx(_components.a,{href:`/es-es/plans-and-limits#cu%C3%A1ntos-dominios-personalizados-y-puertos-permite-cada-plan`,children:`Planes y límites`}),`.\nAl dejar de publicar la aplicación se eliminan todos sus dominios. Eliminar un dominio, a mano, al dejar de publicar o por la limpieza automática,\nnunca cambia tu DNS: borra tú mismo sus registros `,_jsx(_components.code,{children:`CNAME`}),` y `,_jsx(_components.code,{children:`TXT`}),`, como se explica en\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/delete`,children:`Eliminar dominio de la aplicació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, por ejemplo un campo desconocido o un tipo incorrecto (`,_jsx(_components.code,{children:`400`}),`). La respuesta incluye también `,_jsx(_components.code,{children:`message`}),` y `,_jsx(_components.code,{children:`path`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_CUSTOM_DOMAIN_FORMAT`}),`: `,_jsx(_components.code,{children:`hostname`}),` no es un nombre de host público válido (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FORBIDDEN_DOMAIN`}),`: El dominio está reservado y no se puede añadir (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_DOMAIN_PORT`}),`: `,_jsx(_components.code,{children:`port`}),` no es un entero de 1 a 65535 (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_PATH_PREFIX`}),`: `,_jsx(_components.code,{children:`path_prefix`}),` no sigue el formato indicado arriba (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_REDIRECT_TARGET`}),`: `,_jsx(_components.code,{children:`redirect_to`}),` no es un dominio de esta aplicación, no está `,_jsx(_components.code,{children:`active`}),`, o el destino se redirige a sí mismo (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_PUBLISHED`}),`: La aplicación no está publicada en la web; publícala primero con `,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicación en la web`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\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`}),`: La clave de API se usa desde una IP fuera de su lista de permitidas (`,_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:`API_KEY_SCOPE_DENIED`}),`: La clave de API no tiene el scope `,_jsx(_components.code,{children:`apps:write`}),` (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: El propietario 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_CUSTOM_DOMAIN`}),`: El plan del propietario no incluye dominios personalizados (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOMAIN_LIMIT_REACHED`}),`: La aplicación ya tiene tantos dominios como permite el plan (`,_jsx(_components.code,{children:`403`}),`). `,_jsx(_components.code,{children:`details.limit`}),` indica el límite.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOMAIN_PORT_LIMIT_REACHED`}),`: La aplicación ya sirve dominios en 5 puertos además del `,_jsx(_components.code,{children:`80`}),` (`,_jsx(_components.code,{children:`403`}),`). `,_jsx(_components.code,{children:`details.limit`}),` indica el límite.`]}),`\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:`DOMAIN_ALREADY_IN_USE`}),`: El nombre de host ya está asociado a una aplicación (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`RATE_LIMIT_EXCEEDED`}),`: Se alcanzó el presupuesto de la ruta (`,_jsx(_components.code,{children:`429`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CUSTOM_DOMAIN_REGISTRATION_FAILED`}),`: No se pudo registrar el dominio en este momento; vuelve a intentarlo más tarde (`,_jsx(_components.code,{children:`502`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Error inesperado (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Esta ruta tiene su propio presupuesto de 10 peticiones por minuto. 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ímites 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":"Añadir dominio a la aplicación","sidebarTitle":"Añadir dominio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","authMethod":"bearer","description":"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.","href":"/es-es/api-reference/endpoint/apps/domains/create"}}},"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,Heading,Note,ParamField,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,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);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Añade el dominio personalizado a la aplicación y responde `,_jsx(_components.code,{children:`201 Created`}),` con el nuevo dominio. La aplicación no se reinicia ni se vuelve a\ndesplegar. El dominio empieza como `,_jsx(_components.code,{children:`pending`}),` hasta que se resuelvan sus registros DNS; consúltalos con\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/dns`,children:`Registros DNS del dominio`}),`. Requiere el scope `,_jsx(_components.code,{children:`apps:write`}),` cuando se llama con una clave de API.`]}),`\n`,_jsxs(_components.p,{children:[`De forma predeterminada, la llamada también crea el complemento automático: `,_jsx(_components.code,{children:`www.example.com`}),` cuando añades `,_jsx(_components.code,{children:`example.com`}),`, o\n`,_jsx(_components.code,{children:`example.com`}),` cuando añades `,_jsx(_components.code,{children:`www.example.com`}),`. El complemento redirige al dominio que añadiste con un `,_jsx(_components.code,{children:`308`}),`, y `,_jsx(_components.strong,{children:`no cuenta`}),` para el límite\nde dominios de tu plan. Para cualquier otro subdominio (`,_jsx(_components.code,{children:`app.example.com`}),`) no hay complemento.`]}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsxs(_components.p,{children:[`El ID de la aplicación. La aplicación debe estar publicada en la web (necesita un subdominio `,_jsx(_components.code,{children:`*.vertraweb.app`}),`).`]})}),`\n`,_jsx(ParamField,{query:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`Si la aplicación pertenece a un workspace, el ID de ese workspace. Obligatorio para los miembros del workspace que actúan sobre una aplicación que no les pertenece.`})}),`\n`,_jsx(ParamField,{body:`hostname`,type:`string`,required:true,id:`param-hostname`,children:_jsxs(_components.p,{children:[`El dominio que se añade (por ejemplo, `,_jsx(_components.code,{children:`example.com`}),` o `,_jsx(_components.code,{children:`api.example.com`}),`), de entre 1 y 253 caracteres. Se guarda en minúsculas. Envía solo el nombre de host: un esquema, una ruta o un puerto se rechazan con `,_jsx(_components.code,{children:`INVALID_CUSTOM_DOMAIN_FORMAT`}),`.\nLos dominios que pertenecen a Vertra Cloud se rechazan con `,_jsx(_components.code,{children:`FORBIDDEN_DOMAIN`}),`.`]})}),`\n`,_jsx(ParamField,{body:`www`,type:`boolean`,default:`true`,id:`param-www`,children:_jsxs(_components.p,{children:[`Si se crea el complemento automático `,_jsx(_components.code,{children:`www`}),` (o el raíz). Envía `,_jsx(_components.code,{children:`false`}),` para añadir solo el nombre de host que enviaste. No tiene efecto en subdominios distintos de `,_jsx(_components.code,{children:`www`}),`, y se ignora cuando se envía `,_jsx(_components.code,{children:`redirect_to`}),`.`]})}),`\n`,_jsx(ParamField,{body:`port`,type:`integer`,default:`80`,id:`param-port`,children:_jsxs(_components.p,{children:[`El puerto de la aplicación que sirve este dominio, un entero de `,_jsx(_components.code,{children:`1`}),` a `,_jsx(_components.code,{children:`65535`}),`. Una aplicación puede servir sus dominios en hasta `,_jsxs(_components.strong,{children:[`5 puertos distintos además del `,_jsx(_components.code,{children:`80`})]}),`; un sexto responde `,_jsx(_components.code,{children:`DOMAIN_PORT_LIMIT_REACHED`}),`. Un dominio que solo redirige no usa ningún puerto.`]})}),`\n`,_jsx(ParamField,{body:`path_prefix`,type:`string`,id:`param-path-prefix`,children:_jsxs(_components.p,{children:[`Una ruta literal que se antepone a cada petición que el dominio reenvía a la aplicación: con `,_jsx(_components.code,{children:`/api`}),`, una petición a `,_jsx(_components.code,{children:`https://api.example.com/users`}),` llega a la aplicación como `,_jsx(_components.code,{children:`/api/users`}),`. Debe empezar por `,_jsx(_components.code,{children:`/`}),`, no debe terminar en `,_jsx(_components.code,{children:`/`}),`, tiene hasta 128 caracteres y solo puede contener letras, dígitos, `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`_`}),`, `,_jsx(_components.code,{children:`~`}),` y `,_jsx(_components.code,{children:`-`}),` entre barras (por ejemplo, `,_jsx(_components.code,{children:`/api`}),` o `,_jsx(_components.code,{children:`/v1/api`}),`). Recomendado para APIs: un sitio tiene que estar construido para funcionar bajo esa ruta, incluidos sus recursos y sus propias redirecciones.`]})}),`\n`,_jsx(ParamField,{body:`redirect_to`,type:`string`,id:`param-redirect-to`,children:_jsx(_components.p,{children:`El ID de otro dominio de la misma aplicación. El nuevo dominio redirige entonces todas las peticiones a ese dominio, manteniendo la ruta y la cadena de consulta, en lugar de servir la aplicación. El destino no debe redirigirse a sí mismo.`})}),`\n`,_jsx(ParamField,{body:`redirect_status`,type:`integer`,default:`308`,id:`param-redirect-status`,children:_jsxs(_components.p,{children:[`El estado HTTP de la redirección: `,_jsx(_components.code,{children:`301`}),`, `,_jsx(_components.code,{children:`302`}),`, `,_jsx(_components.code,{children:`307`}),` o `,_jsx(_components.code,{children:`308`}),`. Solo se usa junto con `,_jsx(_components.code,{children:`redirect_to`}),`. `,_jsx(_components.code,{children:`301`}),` y `,_jsx(_components.code,{children:`308`}),` son permanentes; `,_jsx(_components.code,{children:`302`}),` y `,_jsx(_components.code,{children:`307`}),` son temporales. `,_jsx(_components.code,{children:`307`}),` y `,_jsx(_components.code,{children:`308`}),` mantienen el método de la petición; `,_jsx(_components.code,{children:`301`}),` y `,_jsx(_components.code,{children:`302`}),` pueden convertir un `,_jsx(_components.code,{children:`POST`}),` en un `,_jsx(_components.code,{children:`GET`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`respuesta`,children:`Respuesta`}),`\n`,_jsx(ResponseField,{name:`response`,type:`APIApplicationDomain[]`,id:`param-response`,children:_jsxs(_components.p,{children:[`El dominio que añadiste primero, seguido de su complemento si se creó uno. Cada elemento tiene los campos descritos en\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/list#respuesta`,children:`Listar dominios de la aplicación`}),`.`]})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Response (201)`,numberOfLines:`30`,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:`30`,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`,_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:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"`}),_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:` \"hostname\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"example.com\"`}),_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:` \"apex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_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:` \"companion_of\"`}),_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:` \"redirect_to\"`}),_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:` \"redirect_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`308`}),_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:` \"path_prefix\"`}),_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:` \"port\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`80`}),_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:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pending\"`}),_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:` \"ssl_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pending\"`}),_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:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-21T14:02:11.000Z\"`})]}),`\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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"c2a9d4f1-86b0-4a37-b5e8-1f3d7a9c0e62\"`}),_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:` \"hostname\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"www.example.com\"`}),_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:` \"apex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:` \"companion_of\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"`}),_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:` \"redirect_to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"`}),_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:` \"redirect_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`308`}),_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:` \"path_prefix\"`}),_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:` \"port\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`80`}),_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:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pending\"`}),_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:` \"ssl_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pending\"`}),_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:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-21T14:02:11.000Z\"`})]}),`\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(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Los dominios personalizados empiezan en el plan `,_jsx(_components.strong,{children:`Intermediary`}),` (1 dominio por aplicación) y crecen hasta el nivel Enterprise. El complemento\nautomático nunca cuenta. Los límites por plan están en `,_jsx(_components.a,{href:`/es-es/plans-and-limits#cu%C3%A1ntos-dominios-personalizados-y-puertos-permite-cada-plan`,children:`Planes y límites`}),`.\nAl dejar de publicar la aplicación se eliminan todos sus dominios. Eliminar un dominio, a mano, al dejar de publicar o por la limpieza automática,\nnunca cambia tu DNS: borra tú mismo sus registros `,_jsx(_components.code,{children:`CNAME`}),` y `,_jsx(_components.code,{children:`TXT`}),`, como se explica en\n`,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/domains/delete`,children:`Eliminar dominio de la aplicació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, por ejemplo un campo desconocido o un tipo incorrecto (`,_jsx(_components.code,{children:`400`}),`). La respuesta incluye también `,_jsx(_components.code,{children:`message`}),` y `,_jsx(_components.code,{children:`path`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_CUSTOM_DOMAIN_FORMAT`}),`: `,_jsx(_components.code,{children:`hostname`}),` no es un nombre de host público válido (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FORBIDDEN_DOMAIN`}),`: El dominio está reservado y no se puede añadir (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_DOMAIN_PORT`}),`: `,_jsx(_components.code,{children:`port`}),` no es un entero de 1 a 65535 (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_PATH_PREFIX`}),`: `,_jsx(_components.code,{children:`path_prefix`}),` no sigue el formato indicado arriba (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_REDIRECT_TARGET`}),`: `,_jsx(_components.code,{children:`redirect_to`}),` no es un dominio de esta aplicación, no está `,_jsx(_components.code,{children:`active`}),`, o el destino se redirige a sí mismo (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APP_NOT_PUBLISHED`}),`: La aplicación no está publicada en la web; publícala primero con `,_jsx(_components.a,{href:`/es-es/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicación en la web`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\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`}),`: La clave de API se usa desde una IP fuera de su lista de permitidas (`,_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:`API_KEY_SCOPE_DENIED`}),`: La clave de API no tiene el scope `,_jsx(_components.code,{children:`apps:write`}),` (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: El propietario 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_CUSTOM_DOMAIN`}),`: El plan del propietario no incluye dominios personalizados (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOMAIN_LIMIT_REACHED`}),`: La aplicación ya tiene tantos dominios como permite el plan (`,_jsx(_components.code,{children:`403`}),`). `,_jsx(_components.code,{children:`details.limit`}),` indica el límite.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOMAIN_PORT_LIMIT_REACHED`}),`: La aplicación ya sirve dominios en 5 puertos además del `,_jsx(_components.code,{children:`80`}),` (`,_jsx(_components.code,{children:`403`}),`). `,_jsx(_components.code,{children:`details.limit`}),` indica el límite.`]}),`\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:`DOMAIN_ALREADY_IN_USE`}),`: El nombre de host ya está asociado a una aplicación (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`RATE_LIMIT_EXCEEDED`}),`: Se alcanzó el presupuesto de la ruta (`,_jsx(_components.code,{children:`429`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CUSTOM_DOMAIN_REGISTRATION_FAILED`}),`: No se pudo registrar el dominio en este momento; vuelve a intentarlo más tarde (`,_jsx(_components.code,{children:`502`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Error inesperado (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Error Response (403)`,numberOfLines:`4`,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:`4`,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:`\"DOMAIN_LIMIT_REACHED\"`}),_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:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"limit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_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:`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:`\"DOMAIN_ALREADY_IN_USE\"`})]}),`\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:[`Esta ruta tiene su propio presupuesto de 10 peticiones por minuto. 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ímites 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":"Añadir dominio a la aplicación","sidebarTitle":"Añadir dominio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","authMethod":"bearer","description":"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.","href":"/es-es/api-reference/endpoint/apps/domains/create"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Respuesta","slug":"respuesta","depth":3,"children":[]},{"title":"Respuestas de error","slug":"respuestas-de-error","depth":3,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"Response (201)","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=\"30\">\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:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hostname\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"example.com\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"apex\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"companion_of\"\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\"> \"redirect_to\"\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\"> \"redirect_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">308\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"path_prefix\"\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\"> \"port\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">80\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pending\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ssl_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pending\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-21T14:02:11.000Z\"\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\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"c2a9d4f1-86b0-4a37-b5e8-1f3d7a9c0e62\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hostname\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"www.example.com\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"apex\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"companion_of\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"redirect_to\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"redirect_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">308\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"path_prefix\"\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\"> \"port\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">80\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pending\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ssl_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pending\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-21T14:02:11.000Z\"\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\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Añadir dominio a la aplicación","path":"/v1/apps/{id}/domains","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":{"workspace_id":{"schema":[{"type":"string","description":"Si la aplicación pertenece a un workspace, el ID de ese workspace. Obligatorio para los miembros del workspace que actúan sobre una aplicación que no les pertenece."}]}},"header":{},"cookie":{},"path":{"id":{"schema":[{"type":"string","description":"El ID de la aplicación. La aplicación debe estar publicada en la web (necesita un subdominio `*.vertraweb.app` ).","required":true}]}}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"hostname":[{"type":"string","description":"El dominio que se añade (por ejemplo, `example.com` o `api.example.com` ), de entre 1 y 253 caracteres. Se guarda en minúsculas. Envía solo el nombre de host: un esquema, una ruta o un puerto se rechazan con `INVALID_CUSTOM_DOMAIN_FORMAT` . Los dominios que pertenecen a Vertra Cloud se rechazan con `FORBIDDEN_DOMAIN` .","required":true}],"www":[{"type":"boolean","description":"Si se crea el complemento automático `www` (o el raíz). Envía `false` para añadir solo el nombre de host que enviaste. No tiene efecto en subdominios distintos de `www` , y se ignora cuando se envía `redirect_to` ."}],"port":[{"type":"integer","description":"El puerto de la aplicación que sirve este dominio, un entero de `1` a `65535` . Una aplicación puede servir sus dominios en hasta 5 puertos distintos además del `80` ; un sexto responde `DOMAIN_PORT_LIMIT_REACHED` . Un dominio que solo redirige no usa ningún puerto."}],"path_prefix":[{"type":"string","description":"Una ruta literal que se antepone a cada petición que el dominio reenvía a la aplicación: con `/api` , una petición a `https://api.example.com/users` llega a la aplicación como `/api/users` . Debe empezar por `/` , no debe terminar en `/` , tiene hasta 128 caracteres y solo puede contener letras, dígitos, `.` , `_` , `~` y `-` entre barras (por ejemplo, `/api` o `/v1/api` ). Recomendado para APIs: un sitio tiene que estar construido para funcionar bajo esa ruta, incluidos sus recursos y sus propias redirecciones."}],"redirect_to":[{"type":"string","description":"El ID de otro dominio de la misma aplicación. El nuevo dominio redirige entonces todas las peticiones a ese dominio, manteniendo la ruta y la cadena de consulta, en lugar de servir la aplicación. El destino no debe redirigirse a sí mismo."}],"redirect_status":[{"type":"integer","description":"El estado HTTP de la redirección: `301` , `302` , `307` o `308` . Solo se usa junto con `redirect_to` . `301` y `308` son permanentes; `302` y `307` son temporales. `307` y `308` mantienen el método de la petición; `301` y `302` pueden convertir un `POST` en un `GET` ."}]}}],"examples":{"example":{"value":{"hostname":"\u003cstring>","www":true,"port":123,"path_prefix":"\u003cstring>","redirect_to":"\u003cstring>","redirect_status":123}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"response":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"El dominio que añadiste primero, seguido de su complemento si se creó uno. Cada elemento tiene los campos descritos en Listar dominios de la aplicación ."}],"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, por ejemplo un campo desconocido o un tipo incorrecto ( `400` ). La respuesta incluye también `message` y `path` . `INVALID_CUSTOM_DOMAIN_FORMAT` : `hostname` no es un nombre de host público válido ( `400` ). `FORBIDDEN_DOMAIN` : El dominio está reservado y no se puede añadir ( `400` ). `INVALID_DOMAIN_PORT` : `port` no es un entero de 1 a 65535 ( `400` ). `INVALID_PATH_PREFIX` : `path_prefix` no sigue el formato indicado arriba ( `400` ). `INVALID_REDIRECT_TARGET` : `redirect_to` no es un dominio de esta aplicación, no está `active` , o el destino se redirige a sí mismo ( `400` ). `APP_NOT_PUBLISHED` : La aplicación no está publicada en la web; publícala primero con Publicar aplicación en la web ( `400` ). `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` : La clave de API se usa desde una IP fuera de su lista de permitidas ( `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` ). `API_KEY_SCOPE_DENIED` : La clave de API no tiene el scope `apps:write` ( `403` ). `PLAN_REQUIRED` : El propietario de la aplicación no tiene un plan activo ( `403` ). `PLAN_DOES_NOT_SUPPORT_CUSTOM_DOMAIN` : El plan del propietario no incluye dominios personalizados ( `403` ). `DOMAIN_LIMIT_REACHED` : La aplicación ya tiene tantos dominios como permite el plan ( `403` ). `details.limit` indica el límite. `DOMAIN_PORT_LIMIT_REACHED` : La aplicación ya sirve dominios en 5 puertos además del `80` ( `403` ). `details.limit` indica el límite. `APP_NOT_FOUND` : La aplicación indicada no existe ( `404` ). `DOMAIN_ALREADY_IN_USE` : El nombre de host ya está asociado a una aplicación ( `409` ). `RATE_LIMIT_EXCEEDED` : Se alcanzó el presupuesto de la ruta ( `429` ). `CUSTOM_DOMAIN_REGISTRATION_FAILED` : No se pudo registrar el dominio en este momento; vuelve a intentarlo más tarde ( `502` ). `INTERNAL_SERVER_ERROR` : Error inesperado ( `500` )."}]}}],"examples":{"example":{"value":{"response":[{}],"code":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"vertracloud","siteName":"Vertra Cloud","title":"Añadir dominio a la aplicación - Vertra Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/","matchLevel":4},"pt-BR":{"href":"/pt-br","matchLevel":4},"es":{"href":"/es-es/api-reference/endpoint/apps/domains/create","matchLevel":0}}},"lastModified":"2026-10-30T22:45:18.681Z","gitLastModified":"2026-10-28T22:06:31.000Z","originalFileLocation":"es-es/api-reference/endpoint/apps/domains/create.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=\"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\">\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=\"Añadir dominio a la aplicación - Vertra Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\">\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/domains/create\">\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=\"Añadir dominio a la aplicación - Vertra Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\">\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/domains/create\">\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/domains/create.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/domains/create#webpage\",\"url\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create\",\"name\":\"Añadir dominio a la aplicación\",\"description\":\"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\",\"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/domains/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create#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\":\"Dominios\",\"item\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/list\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Añadir dominio a la aplicación\",\"item\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create#apireference\",\"headline\":\"Añadir dominio a la aplicación\",\"name\":\"Añadir dominio a la aplicación\",\"description\":\"Añade un dominio personalizado a una aplicación publicada en la web, sin volver a desplegarla, con www, puerto, prefijo de ruta y redirección opcionales.\",\"url\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create#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}","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","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","description":"Lista los dominios personalizados de una aplicación con su estado, el estado del certificado, el puerto, el prefijo de ruta y la redirección.","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}","description":"Cambia el puerto, el prefijo de ruta o la redirección de un dominio personalizado, o lo convierte en el dominio principal, sin reiniciar la aplicación.","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":"Añadir dominio a la aplicación - 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"]}