A aplicação tem duas fontes mutuamente exclusivas — envie exatamente uma entre file e snapshot_id. Nenhuma → SOURCE_REQUIRED; as duas → SOURCE_CONFLICT.
Fonte alternativa a file: o ID de um snapshot de aplicação a partir do qual criar a aplicação. A plataforma baixa
o snapshot (que já traz o vertracloud.config) e constrói a aplicação a partir dele. Enviado como campo de texto do
corpo multipart — mesmo limite de tamanho de file (100 MB).
A quantidade de RAM a alocar para a aplicação, em MB. Mínimo de 100 MB. Obrigatório com file; com snapshot_id é
opcional e usa como padrão o vertracloud.config do snapshot. Quando um subdomain é solicitado, o valor é elevado
automaticamente para pelo menos 512 MB — aplicações web têm o seu próprio piso de memória.
Um comando de build opcional, de até 512 caracteres (por exemplo npm run build). É executado após a instalação das
dependências e antes de a aplicação iniciar, em um ambiente de build isolado — 2× a RAM da aplicação (mínimo de 1.024 MB,
máximo de 4.096 MB), com timeout de 10 minutos. As devDependencies são instaladas quando um comando de build está
definido. Disponível em todos os planos. Veja Atualizar configuração da aplicação para alterá-lo depois.
Opcional. Força a linguagem de runtime em vez de detectá-la a partir do projeto: uma de javascript, typescript, bun, python, static, php, go, ruby, java, rust, deno, dotnet, elixir. Precedência: este campo, depois LANGUAGE= no vertracloud.config, depois a detecção. Qualquer outro valor é recusado com INVALID_LANGUAGE.
Obrigatório com file; com snapshot_id usa como padrão o vertracloud.config do snapshot. A versão do runtime da
aplicação: recommended, latest ou uma versão específica suportada pelo runtime detectado (por exemplo 22).
O subdomínio da aplicação (por exemplo myapp). Espaços são trocados por - e o valor é convertido para minúsculas
antes da validação; o formato aceito é ^[a-z0-9-]+$. Envie random para que a plataforma escolha um para você.
Omita o campo para criar uma aplicação privada, sem publicação na web — você pode ativá-la depois com
Publicar aplicação na web.Requer suporte do plano à publicação na web.
Uma string JSON com um array de variáveis de ambiente, cada uma com key, value e um note opcional. Tamanho máximo
da chave: 255. Tamanho máximo do valor: 3072. Tamanho máximo da nota: 50.
A criação é assíncrona: a resposta é 202 Accepted com a aplicação em status: "building". Acompanhe com Detalhes da aplicação ou com os logs em tempo real até que status seja up ou down. Enquanto estiver building, iniciar, parar, reiniciar, deploys de arquivos, rollback, snapshots, restaurações e alterações de configuração respondem 409 APP_BUILDING; excluir a aplicação é permitido. Se o build for interrompido, a aplicação permanece down e BUILD_INTERRUPTED aparece no log dela; se a plataforma cancelar a criação (por exemplo, porque a fila está cheia), a aplicação deixa de existir e os Detalhes da aplicação respondem 404.
O status da aplicação. A criação responde 202 Accepted com building; a instalação e o build continuam em segundo
plano. Quando terminam, o status passa a up, ou down se a instalação das dependências ou o comando build
falhar (a saída fica nos logs, então você pode corrigir os arquivos e iniciar de novo sem reenviar o upload).
O código da última falha de build ou de instalação, ou null após um build bem-sucedido. Um de BUILD_FAILED,
BUILD_TIMEOUT, BUILD_INTERRUPTED, INSTALL_FAILED, INSTALL_OUT_OF_MEMORY, INSTALL_TIMEOUT ou
INSTALL_SHIELD_BLOCKED. O detalhe está nos logs da aplicação; veja Erros
para saber o que fazer com cada código.
Presente enquanto o Vertra Shield pausou a aplicação. Inclui until (o fim da pausa), reason (burst ou
rate_limit) e direction (in ou out); null quando nenhuma pausa está ativa.
Repositório do GitHub vinculado (repo_owner, repo_name) quando o deploy automático está conectado; null quando
a aplicação foi criada a partir de um zip ou de um snapshot. A URL do webhook não está incluída — use
GET /v1/apps/{id}/deploys/webhook para obtê-la.
A imagem Docker personalizada a partir da qual a aplicação roda; null para uma aplicação comum. Com uma imagem,
language, version, main_file, start_command e build_command não se aplicam: eles vêm da imagem. Veja
Imagens Docker personalizadas.
true quando a imagem tem uma versão mais nova do que a que a aplicação roda. Ela passa para essa versão no próximo reinício ou deploy que você solicitar.
Somente quando você cria a partir do snapshot de uma aplicação que roda uma imagem Docker personalizada e a versão da imagem registrada no snapshot não existe mais: IMAGE_VERSION_NOT_FOUND. A aplicação é criada na versão atual da imagem.
Uma mensagem descritiva com detalhes adicionais sobre o erro. Presente em VALIDATION_ERROR.
{ "code": "VALIDATION_ERROR", "message": "Main file is required", "path": "main"}
{ "code": "MAIN_FILE_NOT_FOUND"}
{ "code": "PLAN_REQUIRED"}
Uma aplicação criada sem subdomain continua privada. Você pode ativar a publicação na web depois com
Publicar aplicação na web, e desativá-la de novo na mesma rota.
Última modificação em 28 de outubro 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":"pt-br/api-reference/endpoint/apps/create","slug":"/pt-br/api-reference/endpoint/apps/create","pageMetadata":{"title":"Criar aplicação","sidebarTitle":"Criar aplicação","api":"POST https://api.vertracloud.app/v1/apps","authMethod":"bearer","description":"Cria uma nova aplicação com a configuração e os arquivos informados.","href":"/pt-br/api-reference/endpoint/apps/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: \"Cria uma nova aplicação com a configuração e os arquivos informados.\"\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},{Expandable,Heading,Note,ParamField,ResponseField}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A aplicação tem `,_jsx(_components.strong,{children:`duas fontes mutuamente exclusivas`}),` — envie exatamente uma entre `,_jsx(_components.code,{children:`file`}),` e `,_jsx(_components.code,{children:`snapshot_id`}),`. Nenhuma → `,_jsx(_components.code,{children:`SOURCE_REQUIRED`}),`; as duas → `,_jsx(_components.code,{children:`SOURCE_CONFLICT`}),`.`]}),`\n`,_jsx(ParamField,{body:`file`,type:`file`,id:`param-file`,children:_jsxs(_components.p,{children:[`O arquivo ZIP com o código da aplicação (tamanho máximo: 100 MB). Ausente quando a fonte é `,_jsx(_components.code,{children:`snapshot_id`}),`.`]})}),`\n`,_jsx(ParamField,{body:`snapshot_id`,type:`string`,id:`param-snapshot-id`,children:_jsxs(_components.p,{children:[`Fonte alternativa a `,_jsx(_components.code,{children:`file`}),`: o ID de um snapshot de `,_jsx(_components.strong,{children:`aplicação`}),` a partir do qual criar a aplicação. A plataforma baixa\no snapshot (que já traz o `,_jsx(_components.code,{children:`vertracloud.config`}),`) e constrói a aplicação a partir dele. Enviado como campo de texto do\ncorpo multipart — mesmo limite de tamanho de `,_jsx(_components.code,{children:`file`}),` (100 MB).`]})}),`\n`,_jsx(ParamField,{body:`memory`,type:`string`,id:`param-memory`,children:_jsxs(_components.p,{children:[`A quantidade de RAM a alocar para a aplicação, em MB. Mínimo de 100 MB. Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` é\nopcional e usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot. Quando um `,_jsx(_components.code,{children:`subdomain`}),` é solicitado, o valor é elevado\nautomaticamente para pelo menos 512 MB — aplicações web têm o seu próprio piso de memória.`]})}),`\n`,_jsx(ParamField,{body:`start`,type:`string`,id:`param-start`,children:_jsx(_components.p,{children:`O comando de inicialização da aplicação.`})}),`\n`,_jsx(ParamField,{body:`build`,type:`string`,id:`param-build`,children:_jsxs(_components.p,{children:[`Um comando de build opcional, de até 512 caracteres (por exemplo `,_jsx(_components.code,{children:`npm run build`}),`). É executado após a instalação das\ndependências e antes de a aplicação iniciar, em um ambiente de build isolado — 2× a RAM da aplicação (mínimo de 1.024 MB,\nmáximo de 4.096 MB), com timeout de 10 minutos. As `,_jsx(_components.code,{children:`devDependencies`}),` são instaladas quando um comando de build está\ndefinido. Disponível em todos os planos. Veja `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/updateconfig`,children:`Atualizar configuração da aplicação`}),` para alterá-lo depois.`]})}),`\n`,_jsx(ParamField,{body:`main`,type:`string`,id:`param-main`,children:_jsxs(_components.p,{children:[`O arquivo principal da aplicação. Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` é opcional e usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot.`]})}),`\n`,_jsx(ParamField,{body:`language`,type:`string`,id:`param-language`,children:_jsxs(_components.p,{children:[`Opcional. Força a linguagem de runtime em vez de detectá-la a partir do projeto: uma de `,_jsx(_components.code,{children:`javascript`}),`, `,_jsx(_components.code,{children:`typescript`}),`, `,_jsx(_components.code,{children:`bun`}),`, `,_jsx(_components.code,{children:`python`}),`, `,_jsx(_components.code,{children:`static`}),`, `,_jsx(_components.code,{children:`php`}),`, `,_jsx(_components.code,{children:`go`}),`, `,_jsx(_components.code,{children:`ruby`}),`, `,_jsx(_components.code,{children:`java`}),`, `,_jsx(_components.code,{children:`rust`}),`, `,_jsx(_components.code,{children:`deno`}),`, `,_jsx(_components.code,{children:`dotnet`}),`, `,_jsx(_components.code,{children:`elixir`}),`. Precedência: este campo, depois `,_jsx(_components.code,{children:`LANGUAGE=`}),` no `,_jsx(_components.code,{children:`vertracloud.config`}),`, depois a detecção. Qualquer outro valor é recusado com `,_jsx(_components.code,{children:`INVALID_LANGUAGE`}),`.`]})}),`\n`,_jsx(ParamField,{body:`version`,type:`string`,id:`param-version`,children:_jsxs(_components.p,{children:[`Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot. A versão do runtime da\naplicação: `,_jsx(_components.code,{children:`recommended`}),`, `,_jsx(_components.code,{children:`latest`}),` ou uma versão específica suportada pelo runtime detectado (por exemplo `,_jsx(_components.code,{children:`22`}),`).`]})}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`O nome de exibição da aplicação. Máximo de 50 caracteres.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`Uma descrição da aplicação.`})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`O ID do workspace a associar à aplicação, se aplicável.`})}),`\n`,_jsxs(ParamField,{body:`subdomain`,type:`string`,id:`param-subdomain`,children:[_jsxs(_components.p,{children:[`O subdomínio da aplicação (por exemplo `,_jsx(_components.code,{children:`myapp`}),`). Espaços são trocados por `,_jsx(_components.code,{children:`-`}),` e o valor é convertido para minúsculas\nantes da validação; o formato aceito é `,_jsx(_components.code,{children:`^[a-z0-9-]+$`}),`. Envie `,_jsx(_components.code,{children:`random`}),` para que a plataforma escolha um para você.\nOmita o campo para criar uma aplicação privada, sem publicação na web — você pode ativá-la depois com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicação na web`}),`.`]}),_jsx(_components.p,{children:`Requer suporte do plano à publicação na web.`})]}),`\n`,_jsx(ParamField,{body:`envs`,type:`string`,id:`param-envs`,children:_jsxs(_components.p,{children:[`Uma string JSON com um array de variáveis de ambiente, cada uma com `,_jsx(_components.code,{children:`key`}),`, `,_jsx(_components.code,{children:`value`}),` e um `,_jsx(_components.code,{children:`note`}),` opcional. Tamanho máximo\nda chave: 255. Tamanho máximo do valor: 3072. Tamanho máximo da nota: 50.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`resposta`,children:`Resposta`}),`\n`,_jsxs(_components.p,{children:[`A criação é assíncrona: a resposta é `,_jsx(_components.code,{children:`202 Accepted`}),` com a aplicação em `,_jsx(_components.code,{children:`status: \"building\"`}),`. Acompanhe com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/get`,children:`Detalhes da aplicação`}),` ou com os `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/realtime`,children:`logs em tempo real`}),` até que `,_jsx(_components.code,{children:`status`}),` seja `,_jsx(_components.code,{children:`up`}),` ou `,_jsx(_components.code,{children:`down`}),`. Enquanto estiver `,_jsx(_components.code,{children:`building`}),`, iniciar, parar, reiniciar, deploys de arquivos, rollback, snapshots, restaurações e alterações de configuração respondem `,_jsx(_components.code,{children:`409 APP_BUILDING`}),`; excluir a aplicação é permitido. Se o build for interrompido, a aplicação permanece `,_jsx(_components.code,{children:`down`}),` e `,_jsx(_components.code,{children:`BUILD_INTERRUPTED`}),` aparece no log dela; se a plataforma cancelar a criação (por exemplo, porque a fila está cheia), a aplicação deixa de existir e os Detalhes da aplicação respondem `,_jsx(_components.code,{children:`404`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsx(_components.p,{children:`Os detalhes da aplicação criada.`}),_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`O ID da aplicação.`})}),_jsx(ResponseField,{name:`owner_id`,type:`string`,id:`param-owner-id`,children:_jsx(_components.p,{children:`O ID do dono da aplicação.`})}),_jsx(ResponseField,{name:`owner_plan`,type:`string | null`,id:`param-owner-plan`,children:_jsxs(_components.p,{children:[`O nome do plano do dono (por exemplo, `,_jsx(_components.code,{children:`pro`}),` ou `,_jsx(_components.code,{children:`enterprise-8`}),`), ou `,_jsx(_components.code,{children:`null`}),` quando o dono não tem plano.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsx(_components.p,{children:`O nome da aplicação.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-1`,children:_jsx(_components.p,{children:`A descrição da aplicação.`})}),_jsx(ResponseField,{name:`cluster`,type:`integer`,id:`param-cluster`,children:_jsx(_components.p,{children:`O ID do cluster da aplicação.`})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`O status da aplicação. A criação responde `,_jsx(_components.code,{children:`202 Accepted`}),` com `,_jsx(_components.code,{children:`building`}),`; a instalação e o build continuam em segundo\nplano. Quando terminam, o status passa a `,_jsx(_components.code,{children:`up`}),`, ou `,_jsx(_components.code,{children:`down`}),` se a instalação das dependências ou o comando `,_jsx(_components.code,{children:`build`}),`\nfalhar (a saída fica nos logs, então você pode corrigir os arquivos e iniciar de novo sem reenviar o upload).`]})}),_jsx(ResponseField,{name:`last_build_error`,type:`string | null`,id:`param-last-build-error`,children:_jsxs(_components.p,{children:[`O código da última falha de build ou de instalação, ou `,_jsx(_components.code,{children:`null`}),` após um build bem-sucedido. Um de `,_jsx(_components.code,{children:`BUILD_FAILED`}),`,\n`,_jsx(_components.code,{children:`BUILD_TIMEOUT`}),`, `,_jsx(_components.code,{children:`BUILD_INTERRUPTED`}),`, `,_jsx(_components.code,{children:`INSTALL_FAILED`}),`, `,_jsx(_components.code,{children:`INSTALL_OUT_OF_MEMORY`}),`, `,_jsx(_components.code,{children:`INSTALL_TIMEOUT`}),` ou\n`,_jsx(_components.code,{children:`INSTALL_SHIELD_BLOCKED`}),`. O detalhe está nos logs da aplicação; veja `,_jsx(_components.a,{href:`/pt-br/api-reference/errors#c%C3%B3digos-de-falha-de-build`,children:`Erros`}),`\npara saber o que fazer com cada código.`]})}),_jsx(ResponseField,{name:`ram`,type:`integer`,id:`param-ram`,children:_jsx(_components.p,{children:`A RAM da aplicação em MB.`})}),_jsx(ResponseField,{name:`type`,type:`integer`,id:`param-type`,children:_jsx(_components.p,{children:`O tipo da aplicação.`})}),_jsx(ResponseField,{name:`language`,type:`string`,id:`param-language-1`,children:_jsxs(_components.p,{children:[`A linguagem de programação da aplicação (por exemplo, `,_jsx(_components.code,{children:`javascript`}),`, `,_jsx(_components.code,{children:`deno`}),`, `,_jsx(_components.code,{children:`dotnet`}),`, `,_jsx(_components.code,{children:`elixir`}),`).`]})}),_jsx(ResponseField,{name:`subdomain`,type:`string | null`,id:`param-subdomain-1`,children:_jsx(_components.p,{children:`O subdomínio da aplicação, se aplicável.`})}),_jsx(ResponseField,{name:`domains`,type:`APIApplicationDomain[]`,id:`param-domains`,children:_jsxs(_components.p,{children:[`Os domínios personalizados da aplicação. Sempre vazio logo após a criação; adicione-os com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/domains/create`,children:`Adicionar domínio à aplicação`}),`.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`O timestamp de quando a aplicação foi criada.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`O timestamp de quando a aplicação foi atualizada pela última vez.`})}),_jsx(ResponseField,{name:`last_snapshot`,type:`string | null`,format:`date-time`,id:`param-last-snapshot`,children:_jsx(_components.p,{children:`O timestamp do último snapshot da aplicação.`})}),_jsx(ResponseField,{name:`main_file`,type:`string`,id:`param-main-file`,children:_jsx(_components.p,{children:`O arquivo principal da aplicação.`})}),_jsx(ResponseField,{name:`version`,type:`string`,id:`param-version-1`,children:_jsxs(_components.p,{children:[`A versão do runtime (por exemplo `,_jsx(_components.code,{children:`recommended`}),` ou `,_jsx(_components.code,{children:`latest`}),`).`]})}),_jsx(ResponseField,{name:`start_command`,type:`string | null`,id:`param-start-command`,children:_jsx(_components.p,{children:`O comando de inicialização da aplicação, se especificado.`})}),_jsx(ResponseField,{name:`build_command`,type:`string | null`,id:`param-build-command`,children:_jsx(_components.p,{children:`O comando de build, se especificado. É executado após a instalação das dependências e antes de a aplicação iniciar.`})}),_jsx(ResponseField,{name:`offline_since`,type:`string | null`,format:`date-time`,id:`param-offline-since`,children:_jsx(_components.p,{children:`O timestamp desde quando a aplicação ficou offline, se aplicável.`})}),_jsx(ResponseField,{name:`shield_cooldown`,type:`object | null`,id:`param-shield-cooldown`,children:_jsxs(_components.p,{children:[`Presente enquanto o Vertra Shield pausou a aplicação. Inclui `,_jsx(_components.code,{children:`until`}),` (o fim da pausa), `,_jsx(_components.code,{children:`reason`}),` (`,_jsx(_components.code,{children:`burst`}),` ou\n`,_jsx(_components.code,{children:`rate_limit`}),`) e `,_jsx(_components.code,{children:`direction`}),` (`,_jsx(_components.code,{children:`in`}),` ou `,_jsx(_components.code,{children:`out`}),`); `,_jsx(_components.code,{children:`null`}),` quando nenhuma pausa está ativa.`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`Repositório do GitHub vinculado (`,_jsx(_components.code,{children:`repo_owner`}),`, `,_jsx(_components.code,{children:`repo_name`}),`) quando o deploy automático está conectado; `,_jsx(_components.code,{children:`null`}),` quando\na aplicação foi criada a partir de um zip ou de um snapshot. A URL do webhook não está incluída — use\n`,_jsx(_components.code,{children:`GET /v1/apps/{id}/deploys/webhook`}),` para obtê-la.`]})}),_jsxs(ResponseField,{name:`custom_image`,type:`object | null`,id:`param-custom-image`,children:[_jsxs(_components.p,{children:[`A imagem Docker personalizada a partir da qual a aplicação roda; `,_jsx(_components.code,{children:`null`}),` para uma aplicação comum. Com uma imagem,\n`,_jsx(_components.code,{children:`language`}),`, `,_jsx(_components.code,{children:`version`}),`, `,_jsx(_components.code,{children:`main_file`}),`, `,_jsx(_components.code,{children:`start_command`}),` e `,_jsx(_components.code,{children:`build_command`}),` não se aplicam: eles vêm da imagem. Veja\n`,_jsx(_components.a,{href:`/pt-br/guides/custom-docker-images`,children:`Imagens Docker personalizadas`}),`.`]}),_jsxs(Expandable,{title:`Propriedades de custom_image`,children:[_jsx(ResponseField,{name:`image_id`,type:`string`,id:`param-image-id`,children:_jsxs(_components.p,{children:[`O ID da imagem. `,_jsx(_components.code,{children:`id`}),` e `,_jsx(_components.code,{children:`name`}),` deste objeto são os da aplicação, não os da imagem.`]})}),_jsx(ResponseField,{name:`port`,type:`integer | null`,id:`param-port`,children:_jsxs(_components.p,{children:[`A porta em que a aplicação escuta e para a qual a plataforma roteia; `,_jsx(_components.code,{children:`null`}),` para uma aplicação sem tráfego web.`]})}),_jsx(ResponseField,{name:`version_id`,type:`string | null`,id:`param-version-id`,children:_jsxs(_components.p,{children:[`A versão da imagem que a aplicação roda, ou `,_jsx(_components.code,{children:`null`}),` quando ela ainda não iniciou em nenhuma versão.`]})}),_jsx(ResponseField,{name:`outdated`,type:`boolean`,id:`param-outdated`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando a imagem tem uma versão mais nova do que a que a aplicação roda. Ela passa para essa versão no próximo reinício ou deploy que você solicitar.`]})})]})]}),_jsxs(ResponseField,{name:`deploy`,type:`object`,id:`param-deploy`,children:[_jsx(_components.p,{children:`Como um deploy substitui a versão em execução e o que acontece se ele falhar.`}),_jsxs(Expandable,{title:`Propriedades de deploy`,children:[_jsx(ResponseField,{name:`zero_downtime`,type:`string`,id:`param-zero-downtime`,children:_jsxs(_components.p,{children:[`A escolha salva: `,_jsx(_components.code,{children:`off`}),` (o padrão), `,_jsx(_components.code,{children:`auto`}),` ou `,_jsx(_components.code,{children:`on`}),`. Altere com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/updateconfig`,children:`Atualizar configuração da aplicação`}),`.`]})}),_jsx(ResponseField,{name:`zero_downtime_active`,type:`boolean`,id:`param-zero-downtime-active`,children:_jsxs(_components.p,{children:[`O que vale para o próximo reinício ou deploy: `,_jsx(_components.code,{children:`true`}),` no Enterprise quando `,_jsx(_components.code,{children:`zero_downtime`}),` é `,_jsx(_components.code,{children:`on`}),`, ou quando é `,_jsx(_components.code,{children:`auto`}),` e a aplicação recebe tráfego web.`]})}),_jsx(ResponseField,{name:`auto_rollback`,type:`boolean`,id:`param-auto-rollback`,children:_jsxs(_components.p,{children:[`A escolha salva, `,_jsx(_components.code,{children:`false`}),` por padrão. Devolve o valor salvo em qualquer plano, mas só passa a valer a partir do Intermediary.`]})}),_jsx(ResponseField,{name:`health_check_path`,type:`string | null`,id:`param-health-check-path`,children:_jsxs(_components.p,{children:[`O caminho HTTP chamado em uma nova versão para verificar se ela está saudável. `,_jsx(_components.code,{children:`null`}),` significa `,_jsx(_components.code,{children:`/`}),`.`]})})]})]}),_jsx(ResponseField,{name:`warning`,type:`string`,id:`param-warning`,children:_jsxs(_components.p,{children:[`Somente quando você cria a partir do snapshot de uma aplicação que roda uma imagem Docker personalizada e a versão da imagem registrada no snapshot não existe mais: `,_jsx(_components.code,{children:`IMAGE_VERSION_NOT_FOUND`}),`. A aplicação é criada na versão atual da imagem.`]})})]})]}),`\n`,`\n`,_jsx(Heading,{level:`3`,id:`respostas-de-erro`,children:`Respostas de erro`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`O código de erro que indica o motivo da falha. Valores possíveis:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: o corpo multipart falhou na validação (`,_jsx(_components.code,{children:`400`}),`). A resposta também traz `,_jsx(_components.code,{children:`message`}),` e `,_jsx(_components.code,{children:`path`}),` apontando para o campo com problema.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_NOT_FOUND`}),`: não foi possível identificar o usuário autenticado (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAX_APPS_REACHED`}),`: foi atingido o limite de aplicações do plano (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_ZIP`}),`: o arquivo enviado não é um ZIP legível (truncado ou corrompido) (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAIN_FILE_NOT_FOUND`}),`: o arquivo indicado em `,_jsx(_components.code,{children:`main`}),` não existe dentro do ZIP (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ZIP_TOO_SMALL`}),`: o arquivo enviado tem menos de 100 bytes (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FILE_TOO_LARGE`}),`: o arquivo enviado ultrapassa o limite de 100 MB (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SOURCE_REQUIRED`}),`: nem `,_jsx(_components.code,{children:`file`}),` nem `,_jsx(_components.code,{children:`snapshot_id`}),` foram enviados (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SOURCE_CONFLICT`}),`: `,_jsx(_components.code,{children:`file`}),` e `,_jsx(_components.code,{children:`snapshot_id`}),` foram enviados juntos (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_NOT_FOUND`}),`: o `,_jsx(_components.code,{children:`snapshot_id`}),` não existe ou não pertence a quem fez a chamada (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_TYPE_MISMATCH`}),`: o snapshot é de banco de dados, não de aplicação (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_TOO_LARGE`}),`: o snapshot ultrapassa o mesmo limite de criação de 100 MB de `,_jsx(_components.code,{children:`file`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_REQUIRED`}),`: `,_jsx(_components.code,{children:`memory`}),` foi omitido e o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot não tem um `,_jsx(_components.code,{children:`MEMORY`}),` utilizável (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: o dono não tem um plano ativo, então uma nova aplicação não pode ser criada, ou um `,_jsx(_components.code,{children:`subdomain`}),` foi solicitado sem um (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH`}),`: um `,_jsx(_components.code,{children:`subdomain`}),` foi solicitado, mas o plano do dono não inclui publicação na web (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_MEMORY_FORMAT`}),`: `,_jsx(_components.code,{children:`memory`}),` não é um número (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_MUST_BE_INTEGER`}),`: `,_jsx(_components.code,{children:`memory`}),` não é um inteiro (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),`: `,_jsx(_components.code,{children:`memory`}),` está abaixo do mínimo para o tipo da aplicação (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_LIMIT_EXCEEDED`}),`: a memória solicitada excede a memória ainda disponível no plano (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_TAKEN`}),`: outra aplicação já usa esse subdomínio (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_FORBIDDEN`}),`: o subdomínio solicitado está na lista de nomes reservados da plataforma (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_LIMITS_NOT_FOUND`}),`: o registro de limites do dono não pôde ser carregado (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_LANGUAGE`}),`: a linguagem não é suportada ou não pôde ser determinada (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DEPLOY_RATE_LIMITED`}),`: foi atingido o orçamento horário de deploys da conta para o seu plano (`,_jsx(_components.code,{children:`429`}),`). Veja `,_jsx(_components.a,{href:`/pt-br/api-reference/introduction`,children:`Introdução à referência da API`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: falha inesperada, incluindo uma aplicação que foi criada mas não pôde ser lida de volta (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsxs(_components.p,{children:[`Uma mensagem descritiva com detalhes adicionais sobre o erro. Presente em `,_jsx(_components.code,{children:`VALIDATION_ERROR`}),`.`]})}),`\n`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Uma aplicação criada sem `,_jsx(_components.code,{children:`subdomain`}),` continua privada. Você pode ativar a publicação na web depois com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicação na web`}),`, e desativá-la de novo na mesma rota.`]})})]})}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":"Criar aplicação","sidebarTitle":"Criar aplicação","api":"POST https://api.vertracloud.app/v1/apps","authMethod":"bearer","description":"Cria uma nova aplicação com a configuração e os arquivos informados.","href":"/pt-br/api-reference/endpoint/apps/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,Expandable,Heading,Note,ParamField,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A aplicação tem `,_jsx(_components.strong,{children:`duas fontes mutuamente exclusivas`}),` — envie exatamente uma entre `,_jsx(_components.code,{children:`file`}),` e `,_jsx(_components.code,{children:`snapshot_id`}),`. Nenhuma → `,_jsx(_components.code,{children:`SOURCE_REQUIRED`}),`; as duas → `,_jsx(_components.code,{children:`SOURCE_CONFLICT`}),`.`]}),`\n`,_jsx(ParamField,{body:`file`,type:`file`,id:`param-file`,children:_jsxs(_components.p,{children:[`O arquivo ZIP com o código da aplicação (tamanho máximo: 100 MB). Ausente quando a fonte é `,_jsx(_components.code,{children:`snapshot_id`}),`.`]})}),`\n`,_jsx(ParamField,{body:`snapshot_id`,type:`string`,id:`param-snapshot-id`,children:_jsxs(_components.p,{children:[`Fonte alternativa a `,_jsx(_components.code,{children:`file`}),`: o ID de um snapshot de `,_jsx(_components.strong,{children:`aplicação`}),` a partir do qual criar a aplicação. A plataforma baixa\no snapshot (que já traz o `,_jsx(_components.code,{children:`vertracloud.config`}),`) e constrói a aplicação a partir dele. Enviado como campo de texto do\ncorpo multipart — mesmo limite de tamanho de `,_jsx(_components.code,{children:`file`}),` (100 MB).`]})}),`\n`,_jsx(ParamField,{body:`memory`,type:`string`,id:`param-memory`,children:_jsxs(_components.p,{children:[`A quantidade de RAM a alocar para a aplicação, em MB. Mínimo de 100 MB. Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` é\nopcional e usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot. Quando um `,_jsx(_components.code,{children:`subdomain`}),` é solicitado, o valor é elevado\nautomaticamente para pelo menos 512 MB — aplicações web têm o seu próprio piso de memória.`]})}),`\n`,_jsx(ParamField,{body:`start`,type:`string`,id:`param-start`,children:_jsx(_components.p,{children:`O comando de inicialização da aplicação.`})}),`\n`,_jsx(ParamField,{body:`build`,type:`string`,id:`param-build`,children:_jsxs(_components.p,{children:[`Um comando de build opcional, de até 512 caracteres (por exemplo `,_jsx(_components.code,{children:`npm run build`}),`). É executado após a instalação das\ndependências e antes de a aplicação iniciar, em um ambiente de build isolado — 2× a RAM da aplicação (mínimo de 1.024 MB,\nmáximo de 4.096 MB), com timeout de 10 minutos. As `,_jsx(_components.code,{children:`devDependencies`}),` são instaladas quando um comando de build está\ndefinido. Disponível em todos os planos. Veja `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/updateconfig`,children:`Atualizar configuração da aplicação`}),` para alterá-lo depois.`]})}),`\n`,_jsx(ParamField,{body:`main`,type:`string`,id:`param-main`,children:_jsxs(_components.p,{children:[`O arquivo principal da aplicação. Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` é opcional e usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot.`]})}),`\n`,_jsx(ParamField,{body:`language`,type:`string`,id:`param-language`,children:_jsxs(_components.p,{children:[`Opcional. Força a linguagem de runtime em vez de detectá-la a partir do projeto: uma de `,_jsx(_components.code,{children:`javascript`}),`, `,_jsx(_components.code,{children:`typescript`}),`, `,_jsx(_components.code,{children:`bun`}),`, `,_jsx(_components.code,{children:`python`}),`, `,_jsx(_components.code,{children:`static`}),`, `,_jsx(_components.code,{children:`php`}),`, `,_jsx(_components.code,{children:`go`}),`, `,_jsx(_components.code,{children:`ruby`}),`, `,_jsx(_components.code,{children:`java`}),`, `,_jsx(_components.code,{children:`rust`}),`, `,_jsx(_components.code,{children:`deno`}),`, `,_jsx(_components.code,{children:`dotnet`}),`, `,_jsx(_components.code,{children:`elixir`}),`. Precedência: este campo, depois `,_jsx(_components.code,{children:`LANGUAGE=`}),` no `,_jsx(_components.code,{children:`vertracloud.config`}),`, depois a detecção. Qualquer outro valor é recusado com `,_jsx(_components.code,{children:`INVALID_LANGUAGE`}),`.`]})}),`\n`,_jsx(ParamField,{body:`version`,type:`string`,id:`param-version`,children:_jsxs(_components.p,{children:[`Obrigatório com `,_jsx(_components.code,{children:`file`}),`; com `,_jsx(_components.code,{children:`snapshot_id`}),` usa como padrão o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot. A versão do runtime da\naplicação: `,_jsx(_components.code,{children:`recommended`}),`, `,_jsx(_components.code,{children:`latest`}),` ou uma versão específica suportada pelo runtime detectado (por exemplo `,_jsx(_components.code,{children:`22`}),`).`]})}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`O nome de exibição da aplicação. Máximo de 50 caracteres.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`Uma descrição da aplicação.`})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`O ID do workspace a associar à aplicação, se aplicável.`})}),`\n`,_jsxs(ParamField,{body:`subdomain`,type:`string`,id:`param-subdomain`,children:[_jsxs(_components.p,{children:[`O subdomínio da aplicação (por exemplo `,_jsx(_components.code,{children:`myapp`}),`). Espaços são trocados por `,_jsx(_components.code,{children:`-`}),` e o valor é convertido para minúsculas\nantes da validação; o formato aceito é `,_jsx(_components.code,{children:`^[a-z0-9-]+$`}),`. Envie `,_jsx(_components.code,{children:`random`}),` para que a plataforma escolha um para você.\nOmita o campo para criar uma aplicação privada, sem publicação na web — você pode ativá-la depois com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicação na web`}),`.`]}),_jsx(_components.p,{children:`Requer suporte do plano à publicação na web.`})]}),`\n`,_jsx(ParamField,{body:`envs`,type:`string`,id:`param-envs`,children:_jsxs(_components.p,{children:[`Uma string JSON com um array de variáveis de ambiente, cada uma com `,_jsx(_components.code,{children:`key`}),`, `,_jsx(_components.code,{children:`value`}),` e um `,_jsx(_components.code,{children:`note`}),` opcional. Tamanho máximo\nda chave: 255. Tamanho máximo do valor: 3072. Tamanho máximo da nota: 50.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`resposta`,children:`Resposta`}),`\n`,_jsxs(_components.p,{children:[`A criação é assíncrona: a resposta é `,_jsx(_components.code,{children:`202 Accepted`}),` com a aplicação em `,_jsx(_components.code,{children:`status: \"building\"`}),`. Acompanhe com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/get`,children:`Detalhes da aplicação`}),` ou com os `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/realtime`,children:`logs em tempo real`}),` até que `,_jsx(_components.code,{children:`status`}),` seja `,_jsx(_components.code,{children:`up`}),` ou `,_jsx(_components.code,{children:`down`}),`. Enquanto estiver `,_jsx(_components.code,{children:`building`}),`, iniciar, parar, reiniciar, deploys de arquivos, rollback, snapshots, restaurações e alterações de configuração respondem `,_jsx(_components.code,{children:`409 APP_BUILDING`}),`; excluir a aplicação é permitido. Se o build for interrompido, a aplicação permanece `,_jsx(_components.code,{children:`down`}),` e `,_jsx(_components.code,{children:`BUILD_INTERRUPTED`}),` aparece no log dela; se a plataforma cancelar a criação (por exemplo, porque a fila está cheia), a aplicação deixa de existir e os Detalhes da aplicação respondem `,_jsx(_components.code,{children:`404`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsx(_components.p,{children:`Os detalhes da aplicação criada.`}),_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`O ID da aplicação.`})}),_jsx(ResponseField,{name:`owner_id`,type:`string`,id:`param-owner-id`,children:_jsx(_components.p,{children:`O ID do dono da aplicação.`})}),_jsx(ResponseField,{name:`owner_plan`,type:`string | null`,id:`param-owner-plan`,children:_jsxs(_components.p,{children:[`O nome do plano do dono (por exemplo, `,_jsx(_components.code,{children:`pro`}),` ou `,_jsx(_components.code,{children:`enterprise-8`}),`), ou `,_jsx(_components.code,{children:`null`}),` quando o dono não tem plano.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsx(_components.p,{children:`O nome da aplicação.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-1`,children:_jsx(_components.p,{children:`A descrição da aplicação.`})}),_jsx(ResponseField,{name:`cluster`,type:`integer`,id:`param-cluster`,children:_jsx(_components.p,{children:`O ID do cluster da aplicação.`})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`O status da aplicação. A criação responde `,_jsx(_components.code,{children:`202 Accepted`}),` com `,_jsx(_components.code,{children:`building`}),`; a instalação e o build continuam em segundo\nplano. Quando terminam, o status passa a `,_jsx(_components.code,{children:`up`}),`, ou `,_jsx(_components.code,{children:`down`}),` se a instalação das dependências ou o comando `,_jsx(_components.code,{children:`build`}),`\nfalhar (a saída fica nos logs, então você pode corrigir os arquivos e iniciar de novo sem reenviar o upload).`]})}),_jsx(ResponseField,{name:`last_build_error`,type:`string | null`,id:`param-last-build-error`,children:_jsxs(_components.p,{children:[`O código da última falha de build ou de instalação, ou `,_jsx(_components.code,{children:`null`}),` após um build bem-sucedido. Um de `,_jsx(_components.code,{children:`BUILD_FAILED`}),`,\n`,_jsx(_components.code,{children:`BUILD_TIMEOUT`}),`, `,_jsx(_components.code,{children:`BUILD_INTERRUPTED`}),`, `,_jsx(_components.code,{children:`INSTALL_FAILED`}),`, `,_jsx(_components.code,{children:`INSTALL_OUT_OF_MEMORY`}),`, `,_jsx(_components.code,{children:`INSTALL_TIMEOUT`}),` ou\n`,_jsx(_components.code,{children:`INSTALL_SHIELD_BLOCKED`}),`. O detalhe está nos logs da aplicação; veja `,_jsx(_components.a,{href:`/pt-br/api-reference/errors#c%C3%B3digos-de-falha-de-build`,children:`Erros`}),`\npara saber o que fazer com cada código.`]})}),_jsx(ResponseField,{name:`ram`,type:`integer`,id:`param-ram`,children:_jsx(_components.p,{children:`A RAM da aplicação em MB.`})}),_jsx(ResponseField,{name:`type`,type:`integer`,id:`param-type`,children:_jsx(_components.p,{children:`O tipo da aplicação.`})}),_jsx(ResponseField,{name:`language`,type:`string`,id:`param-language-1`,children:_jsxs(_components.p,{children:[`A linguagem de programação da aplicação (por exemplo, `,_jsx(_components.code,{children:`javascript`}),`, `,_jsx(_components.code,{children:`deno`}),`, `,_jsx(_components.code,{children:`dotnet`}),`, `,_jsx(_components.code,{children:`elixir`}),`).`]})}),_jsx(ResponseField,{name:`subdomain`,type:`string | null`,id:`param-subdomain-1`,children:_jsx(_components.p,{children:`O subdomínio da aplicação, se aplicável.`})}),_jsx(ResponseField,{name:`domains`,type:`APIApplicationDomain[]`,id:`param-domains`,children:_jsxs(_components.p,{children:[`Os domínios personalizados da aplicação. Sempre vazio logo após a criação; adicione-os com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/domains/create`,children:`Adicionar domínio à aplicação`}),`.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`O timestamp de quando a aplicação foi criada.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`O timestamp de quando a aplicação foi atualizada pela última vez.`})}),_jsx(ResponseField,{name:`last_snapshot`,type:`string | null`,format:`date-time`,id:`param-last-snapshot`,children:_jsx(_components.p,{children:`O timestamp do último snapshot da aplicação.`})}),_jsx(ResponseField,{name:`main_file`,type:`string`,id:`param-main-file`,children:_jsx(_components.p,{children:`O arquivo principal da aplicação.`})}),_jsx(ResponseField,{name:`version`,type:`string`,id:`param-version-1`,children:_jsxs(_components.p,{children:[`A versão do runtime (por exemplo `,_jsx(_components.code,{children:`recommended`}),` ou `,_jsx(_components.code,{children:`latest`}),`).`]})}),_jsx(ResponseField,{name:`start_command`,type:`string | null`,id:`param-start-command`,children:_jsx(_components.p,{children:`O comando de inicialização da aplicação, se especificado.`})}),_jsx(ResponseField,{name:`build_command`,type:`string | null`,id:`param-build-command`,children:_jsx(_components.p,{children:`O comando de build, se especificado. É executado após a instalação das dependências e antes de a aplicação iniciar.`})}),_jsx(ResponseField,{name:`offline_since`,type:`string | null`,format:`date-time`,id:`param-offline-since`,children:_jsx(_components.p,{children:`O timestamp desde quando a aplicação ficou offline, se aplicável.`})}),_jsx(ResponseField,{name:`shield_cooldown`,type:`object | null`,id:`param-shield-cooldown`,children:_jsxs(_components.p,{children:[`Presente enquanto o Vertra Shield pausou a aplicação. Inclui `,_jsx(_components.code,{children:`until`}),` (o fim da pausa), `,_jsx(_components.code,{children:`reason`}),` (`,_jsx(_components.code,{children:`burst`}),` ou\n`,_jsx(_components.code,{children:`rate_limit`}),`) e `,_jsx(_components.code,{children:`direction`}),` (`,_jsx(_components.code,{children:`in`}),` ou `,_jsx(_components.code,{children:`out`}),`); `,_jsx(_components.code,{children:`null`}),` quando nenhuma pausa está ativa.`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`Repositório do GitHub vinculado (`,_jsx(_components.code,{children:`repo_owner`}),`, `,_jsx(_components.code,{children:`repo_name`}),`) quando o deploy automático está conectado; `,_jsx(_components.code,{children:`null`}),` quando\na aplicação foi criada a partir de um zip ou de um snapshot. A URL do webhook não está incluída — use\n`,_jsx(_components.code,{children:`GET /v1/apps/{id}/deploys/webhook`}),` para obtê-la.`]})}),_jsxs(ResponseField,{name:`custom_image`,type:`object | null`,id:`param-custom-image`,children:[_jsxs(_components.p,{children:[`A imagem Docker personalizada a partir da qual a aplicação roda; `,_jsx(_components.code,{children:`null`}),` para uma aplicação comum. Com uma imagem,\n`,_jsx(_components.code,{children:`language`}),`, `,_jsx(_components.code,{children:`version`}),`, `,_jsx(_components.code,{children:`main_file`}),`, `,_jsx(_components.code,{children:`start_command`}),` e `,_jsx(_components.code,{children:`build_command`}),` não se aplicam: eles vêm da imagem. Veja\n`,_jsx(_components.a,{href:`/pt-br/guides/custom-docker-images`,children:`Imagens Docker personalizadas`}),`.`]}),_jsxs(Expandable,{title:`Propriedades de custom_image`,children:[_jsx(ResponseField,{name:`image_id`,type:`string`,id:`param-image-id`,children:_jsxs(_components.p,{children:[`O ID da imagem. `,_jsx(_components.code,{children:`id`}),` e `,_jsx(_components.code,{children:`name`}),` deste objeto são os da aplicação, não os da imagem.`]})}),_jsx(ResponseField,{name:`port`,type:`integer | null`,id:`param-port`,children:_jsxs(_components.p,{children:[`A porta em que a aplicação escuta e para a qual a plataforma roteia; `,_jsx(_components.code,{children:`null`}),` para uma aplicação sem tráfego web.`]})}),_jsx(ResponseField,{name:`version_id`,type:`string | null`,id:`param-version-id`,children:_jsxs(_components.p,{children:[`A versão da imagem que a aplicação roda, ou `,_jsx(_components.code,{children:`null`}),` quando ela ainda não iniciou em nenhuma versão.`]})}),_jsx(ResponseField,{name:`outdated`,type:`boolean`,id:`param-outdated`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando a imagem tem uma versão mais nova do que a que a aplicação roda. Ela passa para essa versão no próximo reinício ou deploy que você solicitar.`]})})]})]}),_jsxs(ResponseField,{name:`deploy`,type:`object`,id:`param-deploy`,children:[_jsx(_components.p,{children:`Como um deploy substitui a versão em execução e o que acontece se ele falhar.`}),_jsxs(Expandable,{title:`Propriedades de deploy`,children:[_jsx(ResponseField,{name:`zero_downtime`,type:`string`,id:`param-zero-downtime`,children:_jsxs(_components.p,{children:[`A escolha salva: `,_jsx(_components.code,{children:`off`}),` (o padrão), `,_jsx(_components.code,{children:`auto`}),` ou `,_jsx(_components.code,{children:`on`}),`. Altere com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/updateconfig`,children:`Atualizar configuração da aplicação`}),`.`]})}),_jsx(ResponseField,{name:`zero_downtime_active`,type:`boolean`,id:`param-zero-downtime-active`,children:_jsxs(_components.p,{children:[`O que vale para o próximo reinício ou deploy: `,_jsx(_components.code,{children:`true`}),` no Enterprise quando `,_jsx(_components.code,{children:`zero_downtime`}),` é `,_jsx(_components.code,{children:`on`}),`, ou quando é `,_jsx(_components.code,{children:`auto`}),` e a aplicação recebe tráfego web.`]})}),_jsx(ResponseField,{name:`auto_rollback`,type:`boolean`,id:`param-auto-rollback`,children:_jsxs(_components.p,{children:[`A escolha salva, `,_jsx(_components.code,{children:`false`}),` por padrão. Devolve o valor salvo em qualquer plano, mas só passa a valer a partir do Intermediary.`]})}),_jsx(ResponseField,{name:`health_check_path`,type:`string | null`,id:`param-health-check-path`,children:_jsxs(_components.p,{children:[`O caminho HTTP chamado em uma nova versão para verificar se ela está saudável. `,_jsx(_components.code,{children:`null`}),` significa `,_jsx(_components.code,{children:`/`}),`.`]})})]})]}),_jsx(ResponseField,{name:`warning`,type:`string`,id:`param-warning`,children:_jsxs(_components.p,{children:[`Somente quando você cria a partir do snapshot de uma aplicação que roda uma imagem Docker personalizada e a versão da imagem registrada no snapshot não existe mais: `,_jsx(_components.code,{children:`IMAGE_VERSION_NOT_FOUND`}),`. A aplicação é criada na versão atual da imagem.`]})})]})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Response`,numberOfLines:`33`,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:`33`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"response\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"app-abc123def456\"`}),_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:` \"owner_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-123456789012345678\"`}),_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:` \"owner_plan\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pro\"`}),_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:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"API Simples\"`}),_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:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"I have a description :)\"`}),_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:` \"cluster\"`}),_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`,_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:`\"building\"`}),_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:` \"ram\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`128`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_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:` \"language\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"javascript\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"subdomain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"myapp.vertraweb.app\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"domains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"last_snapshot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-03-20T19:58:00Z\"`}),_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:` \"main_file\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"index.js\"`}),_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:` \"version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"recommended\"`}),_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:` \"start_command\"`}),_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:` \"build_command\"`}),_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:` \"offline_since\"`}),_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:` \"shield_cooldown\"`}),_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:` \"github\"`}),_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:` \"custom_image\"`}),_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:` \"deploy\"`}),_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:` \"zero_downtime\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"off\"`}),_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:` \"zero_downtime_active\"`}),_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:` \"auto_rollback\"`}),_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:` \"health_check_path\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\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:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-03-20T19:58:00Z\"`}),_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:` \"updated_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-03-20T19:58:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`respostas-de-erro`,children:`Respostas de erro`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`O código de erro que indica o motivo da falha. Valores possíveis:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: o corpo multipart falhou na validação (`,_jsx(_components.code,{children:`400`}),`). A resposta também traz `,_jsx(_components.code,{children:`message`}),` e `,_jsx(_components.code,{children:`path`}),` apontando para o campo com problema.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_NOT_FOUND`}),`: não foi possível identificar o usuário autenticado (`,_jsx(_components.code,{children:`401`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAX_APPS_REACHED`}),`: foi atingido o limite de aplicações do plano (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_ZIP`}),`: o arquivo enviado não é um ZIP legível (truncado ou corrompido) (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAIN_FILE_NOT_FOUND`}),`: o arquivo indicado em `,_jsx(_components.code,{children:`main`}),` não existe dentro do ZIP (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ZIP_TOO_SMALL`}),`: o arquivo enviado tem menos de 100 bytes (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FILE_TOO_LARGE`}),`: o arquivo enviado ultrapassa o limite de 100 MB (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SOURCE_REQUIRED`}),`: nem `,_jsx(_components.code,{children:`file`}),` nem `,_jsx(_components.code,{children:`snapshot_id`}),` foram enviados (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SOURCE_CONFLICT`}),`: `,_jsx(_components.code,{children:`file`}),` e `,_jsx(_components.code,{children:`snapshot_id`}),` foram enviados juntos (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_NOT_FOUND`}),`: o `,_jsx(_components.code,{children:`snapshot_id`}),` não existe ou não pertence a quem fez a chamada (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_TYPE_MISMATCH`}),`: o snapshot é de banco de dados, não de aplicação (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SNAPSHOT_TOO_LARGE`}),`: o snapshot ultrapassa o mesmo limite de criação de 100 MB de `,_jsx(_components.code,{children:`file`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_REQUIRED`}),`: `,_jsx(_components.code,{children:`memory`}),` foi omitido e o `,_jsx(_components.code,{children:`vertracloud.config`}),` do snapshot não tem um `,_jsx(_components.code,{children:`MEMORY`}),` utilizável (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_REQUIRED`}),`: o dono não tem um plano ativo, então uma nova aplicação não pode ser criada, ou um `,_jsx(_components.code,{children:`subdomain`}),` foi solicitado sem um (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH`}),`: um `,_jsx(_components.code,{children:`subdomain`}),` foi solicitado, mas o plano do dono não inclui publicação na web (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_MEMORY_FORMAT`}),`: `,_jsx(_components.code,{children:`memory`}),` não é um número (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_MUST_BE_INTEGER`}),`: `,_jsx(_components.code,{children:`memory`}),` não é um inteiro (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_BELOW_MINIMUM`}),`: `,_jsx(_components.code,{children:`memory`}),` está abaixo do mínimo para o tipo da aplicação (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MEMORY_LIMIT_EXCEEDED`}),`: a memória solicitada excede a memória ainda disponível no plano (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_TAKEN`}),`: outra aplicação já usa esse subdomínio (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SUBDOMAIN_FORBIDDEN`}),`: o subdomínio solicitado está na lista de nomes reservados da plataforma (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`USER_LIMITS_NOT_FOUND`}),`: o registro de limites do dono não pôde ser carregado (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INVALID_LANGUAGE`}),`: a linguagem não é suportada ou não pôde ser determinada (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DEPLOY_RATE_LIMITED`}),`: foi atingido o orçamento horário de deploys da conta para o seu plano (`,_jsx(_components.code,{children:`429`}),`). Veja `,_jsx(_components.a,{href:`/pt-br/api-reference/introduction`,children:`Introdução à referência da API`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: falha inesperada, incluindo uma aplicação que foi criada mas não pôde ser lida de volta (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsxs(_components.p,{children:[`Uma mensagem descritiva com detalhes adicionais sobre o erro. Presente em `,_jsx(_components.code,{children:`VALIDATION_ERROR`}),`.`]})}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Error Response (400)`,numberOfLines:`5`,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:`5`,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:`\"VALIDATION_ERROR\"`}),_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:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Main file is required\"`}),_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\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"main\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Error Response (400)`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MAIN_FILE_NOT_FOUND\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Error Response (403)`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PLAN_REQUIRED\"`})]}),`\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:[`Uma aplicação criada sem `,_jsx(_components.code,{children:`subdomain`}),` continua privada. Você pode ativar a publicação na web depois com\n`,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/apps/network/publish`,children:`Publicar aplicação na web`}),`, e desativá-la de novo na mesma rota.`]})})]})}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":"Criar aplicação","sidebarTitle":"Criar aplicação","api":"POST https://api.vertracloud.app/v1/apps","authMethod":"bearer","description":"Cria uma nova aplicação com a configuração e os arquivos informados.","href":"/pt-br/api-reference/endpoint/apps/create"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Resposta","slug":"resposta","depth":3,"children":[]},{"title":"Respostas de erro","slug":"respostas-de-erro","depth":3,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"Response","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=\"33\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"response\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"app-abc123def456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"owner_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"user-123456789012345678\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"owner_plan\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pro\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"API Simples\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"I have a description :)\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"cluster\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1\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\">\"building\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">128\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"language\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"javascript\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"subdomain\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"myapp.vertraweb.app\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"domains\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"last_snapshot\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-03-20T19:58:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"main_file\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"index.js\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"version\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"recommended\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"start_command\"\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\"> \"build_command\"\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\"> \"offline_since\"\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\"> \"shield_cooldown\"\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\"> \"github\"\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\"> \"custom_image\"\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\"> \"deploy\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"zero_downtime\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"off\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"zero_downtime_active\"\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\"> \"auto_rollback\"\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\"> \"health_check_path\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\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\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-03-20T19:58:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"updated_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-03-20T19:58:00Z\"\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":"Criar aplicação","path":"/v1/apps","servers":[{"url":"https://api.vertracloud.app"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"file":[{"type":"file","description":"O arquivo ZIP com o código da aplicação (tamanho máximo: 100 MB). Ausente quando a fonte é `snapshot_id` ."}],"snapshot_id":[{"type":"string","description":"Fonte alternativa a `file` : o ID de um snapshot de aplicação a partir do qual criar a aplicação. A plataforma baixa o snapshot (que já traz o `vertracloud.config` ) e constrói a aplicação a partir dele. Enviado como campo de texto do corpo multipart — mesmo limite de tamanho de `file` (100 MB)."}],"memory":[{"type":"string","description":"A quantidade de RAM a alocar para a aplicação, em MB. Mínimo de 100 MB. Obrigatório com `file` ; com `snapshot_id` é opcional e usa como padrão o `vertracloud.config` do snapshot. Quando um `subdomain` é solicitado, o valor é elevado automaticamente para pelo menos 512 MB — aplicações web têm o seu próprio piso de memória."}],"start":[{"type":"string","description":"O comando de inicialização da aplicação."}],"build":[{"type":"string","description":"Um comando de build opcional, de até 512 caracteres (por exemplo `npm run build` ). É executado após a instalação das dependências e antes de a aplicação iniciar, em um ambiente de build isolado — 2× a RAM da aplicação (mínimo de 1.024 MB, máximo de 4.096 MB), com timeout de 10 minutos. As `devDependencies` são instaladas quando um comando de build está definido. Disponível em todos os planos. Veja Atualizar configuração da aplicação para alterá-lo depois."}],"main":[{"type":"string","description":"O arquivo principal da aplicação. Obrigatório com `file` ; com `snapshot_id` é opcional e usa como padrão o `vertracloud.config` do snapshot."}],"language":[{"type":"string","description":"Opcional. Força a linguagem de runtime em vez de detectá-la a partir do projeto: uma de `javascript` , `typescript` , `bun` , `python` , `static` , `php` , `go` , `ruby` , `java` , `rust` , `deno` , `dotnet` , `elixir` . Precedência: este campo, depois `LANGUAGE=` no `vertracloud.config` , depois a detecção. Qualquer outro valor é recusado com `INVALID_LANGUAGE` ."}],"version":[{"type":"string","description":"Obrigatório com `file` ; com `snapshot_id` usa como padrão o `vertracloud.config` do snapshot. A versão do runtime da aplicação: `recommended` , `latest` ou uma versão específica suportada pelo runtime detectado (por exemplo `22` )."}],"name":[{"type":"string","description":"O nome de exibição da aplicação. Máximo de 50 caracteres.","required":true}],"description":[{"type":"string","description":"Uma descrição da aplicação."}],"workspace_id":[{"type":"string","description":"O ID do workspace a associar à aplicação, se aplicável."}],"subdomain":[{"type":"string","description":"O subdomínio da aplicação (por exemplo `myapp` ). Espaços são trocados por `-` e o valor é convertido para minúsculas antes da validação; o formato aceito é `^[a-z0-9-]+$` . Envie `random` para que a plataforma escolha um para você. Omita o campo para criar uma aplicação privada, sem publicação na web — você pode ativá-la depois com Publicar aplicação na web . Requer suporte do plano à publicação na web."}],"envs":[{"type":"string","description":"Uma string JSON com um array de variáveis de ambiente, cada uma com `key` , `value` e um `note` opcional. Tamanho máximo da chave: 255. Tamanho máximo do valor: 3072. Tamanho máximo da nota: 50."}]}}],"examples":{"example":{"value":{"snapshot_id":"\u003cstring>","memory":"\u003cstring>","start":"\u003cstring>","build":"\u003cstring>","main":"\u003cstring>","language":"\u003cstring>","version":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","workspace_id":"\u003cstring>","subdomain":"\u003cstring>","envs":"\u003cstring>"}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"response":[{"type":"object","properties":{"id":[{"type":"string","description":"O ID da aplicação."}],"owner_id":[{"type":"string","description":"O ID do dono da aplicação."}],"owner_plan":[{"type":"object","properties":{},"description":"O nome do plano do dono (por exemplo, `pro` ou `enterprise-8` ), ou `null` quando o dono não tem plano."}],"name":[{"type":"string","description":"O nome da aplicação."}],"description":[{"type":"string","description":"A descrição da aplicação."}],"cluster":[{"type":"integer","description":"O ID do cluster da aplicação."}],"status":[{"type":"string","description":"O status da aplicação. A criação responde `202 Accepted` com `building` ; a instalação e o build continuam em segundo plano. Quando terminam, o status passa a `up` , ou `down` se a instalação das dependências ou o comando `build` falhar (a saída fica nos logs, então você pode corrigir os arquivos e iniciar de novo sem reenviar o upload)."}],"last_build_error":[{"type":"object","properties":{},"description":"O código da última falha de build ou de instalação, ou `null` após um build bem-sucedido. Um de `BUILD_FAILED` , `BUILD_TIMEOUT` , `BUILD_INTERRUPTED` , `INSTALL_FAILED` , `INSTALL_OUT_OF_MEMORY` , `INSTALL_TIMEOUT` ou `INSTALL_SHIELD_BLOCKED` . O detalhe está nos logs da aplicação; veja Erros para saber o que fazer com cada código."}],"ram":[{"type":"integer","description":"A RAM da aplicação em MB."}],"type":[{"type":"integer","description":"O tipo da aplicação."}],"language":[{"type":"string","description":"A linguagem de programação da aplicação (por exemplo, `javascript` , `deno` , `dotnet` , `elixir` )."}],"subdomain":[{"type":"object","properties":{},"description":"O subdomínio da aplicação, se aplicável."}],"domains":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Os domínios personalizados da aplicação. Sempre vazio logo após a criação; adicione-os com Adicionar domínio à aplicação ."}],"created_at":[{"type":"string","description":"O timestamp de quando a aplicação foi criada."}],"updated_at":[{"type":"string","description":"O timestamp de quando a aplicação foi atualizada pela última vez."}],"last_snapshot":[{"type":"object","properties":{},"description":"O timestamp do último snapshot da aplicação."}],"main_file":[{"type":"string","description":"O arquivo principal da aplicação."}],"version":[{"type":"string","description":"A versão do runtime (por exemplo `recommended` ou `latest` )."}],"start_command":[{"type":"object","properties":{},"description":"O comando de inicialização da aplicação, se especificado."}],"build_command":[{"type":"object","properties":{},"description":"O comando de build, se especificado. É executado após a instalação das dependências e antes de a aplicação iniciar."}],"offline_since":[{"type":"object","properties":{},"description":"O timestamp desde quando a aplicação ficou offline, se aplicável."}],"shield_cooldown":[{"type":"object","properties":{},"description":"Presente enquanto o Vertra Shield pausou a aplicação. Inclui `until` (o fim da pausa), `reason` ( `burst` ou `rate_limit` ) e `direction` ( `in` ou `out` ); `null` quando nenhuma pausa está ativa."}],"github":[{"type":"object","properties":{},"description":"Repositório do GitHub vinculado ( `repo_owner` , `repo_name` ) quando o deploy automático está conectado; `null` quando a aplicação foi criada a partir de um zip ou de um snapshot. A URL do webhook não está incluída — use `GET /v1/apps/{id}/deploys/webhook` para obtê-la."}],"custom_image":[{"type":"object","properties":{"image_id":[{"type":"string","description":"O ID da imagem. `id` e `name` deste objeto são os da aplicação, não os da imagem."}],"port":[{"type":"object","properties":{},"description":"A porta em que a aplicação escuta e para a qual a plataforma roteia; `null` para uma aplicação sem tráfego web."}],"version_id":[{"type":"object","properties":{},"description":"A versão da imagem que a aplicação roda, ou `null` quando ela ainda não iniciou em nenhuma versão."}],"outdated":[{"type":"boolean","description":"`true` quando a imagem tem uma versão mais nova do que a que a aplicação roda. Ela passa para essa versão no próximo reinício ou deploy que você solicitar."}]},"description":"A imagem Docker personalizada a partir da qual a aplicação roda; `null` para uma aplicação comum. Com uma imagem, `language` , `version` , `main_file` , `start_command` e `build_command` não se aplicam: eles vêm da imagem. Veja Imagens Docker personalizadas ."}],"deploy":[{"type":"object","properties":{"zero_downtime":[{"type":"string","description":"A escolha salva: `off` (o padrão), `auto` ou `on` . Altere com Atualizar configuração da aplicação ."}],"zero_downtime_active":[{"type":"boolean","description":"O que vale para o próximo reinício ou deploy: `true` no Enterprise quando `zero_downtime` é `on` , ou quando é `auto` e a aplicação recebe tráfego web."}],"auto_rollback":[{"type":"boolean","description":"A escolha salva, `false` por padrão. Devolve o valor salvo em qualquer plano, mas só passa a valer a partir do Intermediary."}],"health_check_path":[{"type":"object","properties":{},"description":"O caminho HTTP chamado em uma nova versão para verificar se ela está saudável. `null` significa `/` ."}]},"description":"Como um deploy substitui a versão em execução e o que acontece se ele falhar."}],"warning":[{"type":"string","description":"Somente quando você cria a partir do snapshot de uma aplicação que roda uma imagem Docker personalizada e a versão da imagem registrada no snapshot não existe mais: `IMAGE_VERSION_NOT_FOUND` . A aplicação é criada na versão atual da imagem."}]},"description":"Os detalhes da aplicação criada."}],"code":[{"type":"string","description":"O código de erro que indica o motivo da falha. Valores possíveis: `VALIDATION_ERROR` : o corpo multipart falhou na validação ( `400` ). A resposta também traz `message` e `path` apontando para o campo com problema. `USER_NOT_FOUND` : não foi possível identificar o usuário autenticado ( `401` ). `MAX_APPS_REACHED` : foi atingido o limite de aplicações do plano ( `403` ). `INVALID_ZIP` : o arquivo enviado não é um ZIP legível (truncado ou corrompido) ( `400` ). `MAIN_FILE_NOT_FOUND` : o arquivo indicado em `main` não existe dentro do ZIP ( `400` ). `ZIP_TOO_SMALL` : o arquivo enviado tem menos de 100 bytes ( `400` ). `FILE_TOO_LARGE` : o arquivo enviado ultrapassa o limite de 100 MB ( `400` ). `SOURCE_REQUIRED` : nem `file` nem `snapshot_id` foram enviados ( `400` ). `SOURCE_CONFLICT` : `file` e `snapshot_id` foram enviados juntos ( `400` ). `SNAPSHOT_NOT_FOUND` : o `snapshot_id` não existe ou não pertence a quem fez a chamada ( `404` ). `SNAPSHOT_TYPE_MISMATCH` : o snapshot é de banco de dados, não de aplicação ( `400` ). `SNAPSHOT_TOO_LARGE` : o snapshot ultrapassa o mesmo limite de criação de 100 MB de `file` ( `400` ). `MEMORY_REQUIRED` : `memory` foi omitido e o `vertracloud.config` do snapshot não tem um `MEMORY` utilizável ( `400` ). `PLAN_REQUIRED` : o dono não tem um plano ativo, então uma nova aplicação não pode ser criada, ou um `subdomain` foi solicitado sem um ( `403` ). `PLAN_DOES_NOT_SUPPORT_WEB_PUBLISH` : um `subdomain` foi solicitado, mas o plano do dono não inclui publicação na web ( `403` ). `INVALID_MEMORY_FORMAT` : `memory` não é um número ( `400` ). `MEMORY_MUST_BE_INTEGER` : `memory` não é um inteiro ( `400` ). `MEMORY_BELOW_MINIMUM` : `memory` está abaixo do mínimo para o tipo da aplicação ( `400` ). `MEMORY_LIMIT_EXCEEDED` : a memória solicitada excede a memória ainda disponível no plano ( `400` ). `SUBDOMAIN_TAKEN` : outra aplicação já usa esse subdomínio ( `409` ). `SUBDOMAIN_FORBIDDEN` : o subdomínio solicitado está na lista de nomes reservados da plataforma ( `400` ). `USER_LIMITS_NOT_FOUND` : o registro de limites do dono não pôde ser carregado ( `404` ). `INVALID_LANGUAGE` : a linguagem não é suportada ou não pôde ser determinada ( `400` ). `DEPLOY_RATE_LIMITED` : foi atingido o orçamento horário de deploys da conta para o seu plano ( `429` ). Veja Introdução à referência da API . `INTERNAL_SERVER_ERROR` : falha inesperada, incluindo uma aplicação que foi criada mas não pôde ser lida de volta ( `500` )."}],"message":[{"type":"string","description":"Uma mensagem descritiva com detalhes adicionais sobre o erro. Presente em `VALIDATION_ERROR` ."}]}}],"examples":{"example":{"value":{"response":{"id":"\u003cstring>","owner_id":"\u003cstring>","owner_plan":{},"name":"\u003cstring>","description":"\u003cstring>","cluster":123,"status":"\u003cstring>","last_build_error":{},"ram":123,"type":123,"language":"\u003cstring>","subdomain":{},"domains":[{}],"created_at":"\u003cstring>","updated_at":"\u003cstring>","last_snapshot":{},"main_file":"\u003cstring>","version":"\u003cstring>","start_command":{},"build_command":{},"offline_since":{},"shield_cooldown":{},"github":{},"custom_image":{"image_id":"\u003cstring>","port":{},"version_id":{},"outdated":true},"deploy":{"zero_downtime":"\u003cstring>","zero_downtime_active":true,"auto_rollback":true,"health_check_path":{}},"warning":"\u003cstring>"},"code":"\u003cstring>","message":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"vertracloud","siteName":"Vertra Cloud","title":"Criar aplicação - Vertra Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/endpoint/apps/create","matchLevel":1},"pt-BR":{"href":"/pt-br/api-reference/endpoint/apps/create","matchLevel":0},"es":{"href":"/es-es","matchLevel":4}}},"lastModified":"2026-10-30T22:45:17.870Z","gitLastModified":"2026-10-28T22:06:31.000Z","originalFileLocation":"pt-br/api-reference/endpoint/apps/create.mdx","locale":"pt-BR"},"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=\"Cria uma nova aplicação com a configuração e os arquivos informados.\">\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=\"Criar aplicação - Vertra Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cria uma nova aplicação com a configuração e os arquivos informados.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vertra Cloud Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/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=\"Criar aplicação - Vertra Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cria uma nova aplicação com a configuração e os arquivos informados.\">\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/pt-br/api-reference/endpoint/apps/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pt-br/api-reference/endpoint/apps/create.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.vertracloud.app/api-reference/endpoint/apps/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.vertracloud.app/api-reference/endpoint/apps/create\">\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/pt-br/api-reference/endpoint/apps/create#webpage\",\"url\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create\",\"name\":\"Criar aplicação\",\"description\":\"Cria uma nova aplicação com a configuração e os arquivos informados.\",\"dateModified\":\"2026-10-28T22:06:31.000Z\",\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/users/me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aplicações\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/get\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Criar aplicação\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create#apireference\",\"headline\":\"Criar aplicação\",\"name\":\"Criar aplicação\",\"description\":\"Cria uma nova aplicação com a configuração e os arquivos informados.\",\"url\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/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":"/api-reference/endpoint/apps/create"}]},{"language":"pt-BR","navbar":{"links":[{"href":"mailto:[email protected]","label":"Suporte"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"tabs":[{"tab":"Primeiros passos","pages":[{"title":"Primeiros passos","href":"/pt-br"}]},{"tab":"Recursos","pages":[{"title":"Recursos","href":"/pt-br/applications"}]},{"tab":"Tutoriais","pages":[{"title":"Tutoriais","href":"/pt-br/tutorials/introduction"}]},{"tab":"Guias","pages":[{"title":"Guias","href":"/pt-br/guides/custom-domain"}]},{"tab":"Ferramentas","pages":[{"title":"Ferramentas","href":"/pt-br/cli"}]},{"tab":"Blob Storage","pages":[{"title":"Blob Storage","href":"/pt-br/blob/overview"}]},{"tab":"Templates","pages":[{"title":"Templates","href":"/pt-br/templates/overview"}]},{"tab":"Referência da API","groups":[{"group":"Visão geral","icon":"book","pages":[{"title":"Referência da API pública da Vertra Cloud","sidebarTitle":"API pública","href":"/pt-br/api-reference/introduction"},{"title":"Limites e cotas da plataforma na Vertra Cloud","sidebarTitle":"Limites","href":"/pt-br/api-reference/limitations"},{"title":"Códigos de erro da API da Vertra Cloud","sidebarTitle":"Códigos de erro","href":"/pt-br/api-reference/errors"}]},{"group":"Endpoints","icon":"plug","pages":[{"group":"Usuários","icon":"user","pages":[{"title":"Informações do usuário","sidebarTitle":"Dados do usuário","api":"GET https://api.vertracloud.app/v1/users/me","href":"/pt-br/api-reference/endpoint/users/me"},{"title":"Atualizar perfil do usuário","sidebarTitle":"Atualizar perfil","api":"PATCH https://api.vertracloud.app/v1/users/me","href":"/pt-br/api-reference/endpoint/users/update-me"},{"title":"Listar todos os snapshots da conta","sidebarTitle":"Todos os snapshots","api":"GET https://api.vertracloud.app/v1/users/snapshots","href":"/pt-br/api-reference/endpoint/users/snapshots"},{"title":"Organização pessoal de recursos","sidebarTitle":"Pastas e favoritos","href":"/pt-br/api-reference/endpoint/users/resource-organization"},{"title":"Listar sessões","sidebarTitle":"Sessões","api":"GET https://api.vertracloud.app/v1/users/me/sessions","href":"/pt-br/api-reference/endpoint/users/sessions"}]},{"group":"Status","icon":"heart-pulse","pages":[{"title":"Verificar status da infraestrutura","sidebarTitle":"Verificar status","api":"GET https://api.vertracloud.app/v1/status","href":"/pt-br/api-reference/endpoint/services/status"}]},{"group":"Aplicações","icon":"rocket","pages":[{"title":"Detalhes da aplicação","sidebarTitle":"Obter aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}","href":"/pt-br/api-reference/endpoint/apps/get"},{"title":"Status da aplicação","sidebarTitle":"Obter status da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/status","href":"/pt-br/api-reference/endpoint/apps/status"},{"title":"Status de todas as aplicações","sidebarTitle":"Status de todas as aplicações","api":"GET https://api.vertracloud.app/v1/apps/status","href":"/pt-br/api-reference/endpoint/apps/allstatus"},{"title":"Listar runtimes","sidebarTitle":"Runtimes","api":"GET https://api.vertracloud.app/v1/apps/runtimes","href":"/pt-br/api-reference/endpoint/apps/runtimes"},{"title":"Métricas da aplicação","sidebarTitle":"Métricas da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/metrics","href":"/pt-br/api-reference/endpoint/apps/metrics"},{"title":"Logs da aplicação em tempo real","sidebarTitle":"Logs em tempo real","api":"GET https://api.vertracloud.app/v1/apps/{id}/realtime","href":"/pt-br/api-reference/endpoint/apps/realtime"},{"title":"Baixar aplicação","sidebarTitle":"Baixar aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/download","href":"/pt-br/api-reference/endpoint/apps/download"},{"title":"Logs da aplicação","sidebarTitle":"Logs da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/logs","description":"Retorna os logs de uma aplicação pelo seu ID.","href":"/pt-br/api-reference/endpoint/apps/logs"},{"title":"Criar aplicação","sidebarTitle":"Criar aplicação","api":"POST https://api.vertracloud.app/v1/apps","href":"/pt-br/api-reference/endpoint/apps/create"},{"title":"Criar aplicação a partir de imagem","sidebarTitle":"Criar a partir de imagem","api":"POST https://api.vertracloud.app/v1/apps/image","description":"Cria uma aplicação que roda a partir de uma imagem Docker personalizada.","href":"/pt-br/api-reference/endpoint/apps/create-from-image"},{"title":"Iniciar aplicação","sidebarTitle":"Iniciar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/start","href":"/pt-br/api-reference/endpoint/apps/start"},{"title":"Reiniciar aplicação","sidebarTitle":"Reiniciar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/restart","href":"/pt-br/api-reference/endpoint/apps/restart"},{"title":"Parar aplicação","sidebarTitle":"Parar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/stop","href":"/pt-br/api-reference/endpoint/apps/stop"},{"title":"Atualizar configuração da aplicação","sidebarTitle":"Atualizar configuração","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/config","href":"/pt-br/api-reference/endpoint/apps/updateconfig"},{"title":"Excluir aplicação","sidebarTitle":"Excluir aplicação","api":"DELETE https://api.vertracloud.app/v1/apps/{id}","href":"/pt-br/api-reference/endpoint/apps/delete"},{"group":"Rede","icon":"globe","pages":[{"title":"Publicar aplicação na web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","href":"/pt-br/api-reference/endpoint/apps/network/publish"},{"title":"Alterar subdomínio da aplicação","sidebarTitle":"Alterar subdomínio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/network/subdomain","href":"/pt-br/api-reference/endpoint/apps/network/subdomain"},{"title":"Limpar cache","sidebarTitle":"Limpar cache","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/purge-cache","href":"/pt-br/api-reference/endpoint/apps/network/purgecache"}]},{"group":"Domínios","icon":"link","pages":[{"title":"Listar domínios da aplicação","sidebarTitle":"Listar domínios","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains","href":"/pt-br/api-reference/endpoint/apps/domains/list"},{"title":"Adicionar domínio à aplicação","sidebarTitle":"Adicionar domínio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","href":"/pt-br/api-reference/endpoint/apps/domains/create"},{"title":"Atualizar domínio da aplicação","sidebarTitle":"Atualizar domínio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/pt-br/api-reference/endpoint/apps/domains/update"},{"title":"Remover domínio da aplicação","sidebarTitle":"Remover domínio","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/pt-br/api-reference/endpoint/apps/domains/delete"},{"title":"Registros DNS do domínio","sidebarTitle":"Registros DNS do domínio","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/dns","href":"/pt-br/api-reference/endpoint/apps/domains/dns"},{"title":"Configurar domínio automaticamente","sidebarTitle":"Configurar automaticamente","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/connect","href":"/pt-br/api-reference/endpoint/apps/domains/connect"}]},{"group":"Gerenciador de arquivos","icon":"folder-open","pages":[{"title":"Obter conteúdo de arquivo da aplicação","sidebarTitle":"Obter conteúdo do arquivo","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/content","href":"/pt-br/api-reference/endpoint/apps/filemanager/content"},{"title":"Obter arquivos da aplicação","sidebarTitle":"Obter arquivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/files"},{"title":"Obter árvore de arquivos da aplicação","sidebarTitle":"Obter árvore de arquivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/tree","href":"/pt-br/api-reference/endpoint/apps/filemanager/tree"},{"title":"Enviar arquivos para a aplicação","sidebarTitle":"Enviar arquivos","api":"POST https://api.vertracloud.app/v1/apps/{id}/files/upload","href":"/pt-br/api-reference/endpoint/apps/filemanager/upload"},{"title":"Excluir arquivo ou pasta da aplicação","sidebarTitle":"Excluir arquivo ou pasta","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/delete"},{"title":"Mover arquivo ou pasta da aplicação","sidebarTitle":"Mover arquivo ou pasta","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/move"},{"title":"Criar ou atualizar arquivo ou pasta da aplicação","sidebarTitle":"Criar/atualizar arquivo ou pasta","api":"PUT https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/save"}]},{"group":"Variáveis de ambiente","icon":"key","pages":[{"title":"Obter variáveis de ambiente da aplicação","sidebarTitle":"Obter variáveis de ambiente","api":"GET https://api.vertracloud.app/v1/apps/{id}/envs","href":"/pt-br/api-reference/endpoint/apps/enviroments/get"},{"title":"Excluir uma variável de ambiente da aplicação","sidebarTitle":"Excluir variável de ambiente","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/envs/{envId}","href":"/pt-br/api-reference/endpoint/apps/enviroments/delete"},{"title":"Criar ou editar variáveis de ambiente da aplicação","sidebarTitle":"Criar/editar variáveis de ambiente","api":"POST https://api.vertracloud.app/v1/apps/{id}/envs","href":"/pt-br/api-reference/endpoint/apps/enviroments/createOrEdit"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Obter snapshots da aplicação","sidebarTitle":"Obter snapshots","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/pt-br/api-reference/endpoint/apps/snapshots/getall"},{"title":"Criar snapshot da aplicação","sidebarTitle":"Criar snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/pt-br/api-reference/endpoint/apps/snapshots/create"},{"title":"Restaurar snapshot da aplicação","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/restore","href":"/pt-br/api-reference/endpoint/apps/snapshots/restore"},{"title":"Baixar snapshot da aplicação","sidebarTitle":"Baixar snapshot","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/download","href":"/pt-br/api-reference/endpoint/apps/snapshots/download"}]},{"group":"Deploys","icon":"code-branch","pages":[{"title":"Obter URL do webhook de deploy","sidebarTitle":"URL do webhook","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/webhookurl"},{"title":"Obter deploys recentes","sidebarTitle":"Deploys recentes","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys","href":"/pt-br/api-reference/endpoint/apps/deploys/recents"},{"title":"Excluir webhook de deploy","sidebarTitle":"Excluir webhook","api":"DELETE https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/delete"},{"title":"Criar webhook de deploy","sidebarTitle":"Criar webhook","api":"POST https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/create"}]},{"group":"Releases","icon":"clock-rotate-left","pages":[{"title":"Listar releases da aplicação","sidebarTitle":"Listar releases","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases","href":"/pt-br/api-reference/endpoint/apps/releases/list"},{"title":"Obter log da release da aplicação","sidebarTitle":"Obter log da release","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/log","href":"/pt-br/api-reference/endpoint/apps/releases/log"},{"title":"Pré-visualizar rollback da aplicação","sidebarTitle":"Pré-visualizar rollback","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/pt-br/api-reference/endpoint/apps/releases/rollback-preview"},{"title":"Fazer rollback da aplicação para uma release","sidebarTitle":"Fazer rollback","api":"POST https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/pt-br/api-reference/endpoint/apps/releases/rollback"}]}]},{"group":"Imagens Docker","icon":"docker","pages":[{"title":"Listar imagens","sidebarTitle":"Listar imagens","api":"GET https://api.vertracloud.app/v1/images","href":"/pt-br/api-reference/endpoint/images/list"},{"title":"Obter imagem","sidebarTitle":"Obter imagem","api":"GET https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/get"},{"title":"Verificar Dockerfile","sidebarTitle":"Verificar Dockerfile","api":"POST https://api.vertracloud.app/v1/images/check","href":"/pt-br/api-reference/endpoint/images/check"},{"title":"Criar imagem","sidebarTitle":"Criar imagem","api":"POST https://api.vertracloud.app/v1/images","href":"/pt-br/api-reference/endpoint/images/create"},{"title":"Atualizar imagem","sidebarTitle":"Atualizar imagem","api":"PATCH https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/update"},{"title":"Reconstruir imagem","sidebarTitle":"Reconstruir imagem","api":"PUT https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/rebuild"},{"title":"Listar versões da imagem","sidebarTitle":"Listar versões","api":"GET https://api.vertracloud.app/v1/images/{image_id}/versions","href":"/pt-br/api-reference/endpoint/images/versions"},{"title":"Logs de build da imagem","sidebarTitle":"Logs de build","api":"GET https://api.vertracloud.app/v1/images/{image_id}/logs","href":"/pt-br/api-reference/endpoint/images/logs"},{"title":"Baixar o contexto da imagem","sidebarTitle":"Baixar contexto","api":"GET https://api.vertracloud.app/v1/images/{image_id}/context","href":"/pt-br/api-reference/endpoint/images/context"},{"title":"Vincular imagem ao GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/images/{image_id}/github","href":"/pt-br/api-reference/endpoint/images/github-link"},{"title":"Desvincular imagem do GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}/github","href":"/pt-br/api-reference/endpoint/images/github-unlink"},{"title":"Excluir imagem","sidebarTitle":"Excluir imagem","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/delete"}]},{"group":"Templates","icon":"shapes","pages":[{"title":"Listar templates","sidebarTitle":"Listar templates","api":"GET https://api.vertracloud.app/v1/templates","href":"/pt-br/api-reference/endpoint/templates/list"},{"title":"Listar categorias de templates","sidebarTitle":"Listar categorias","api":"GET https://api.vertracloud.app/v1/templates/categories","href":"/pt-br/api-reference/endpoint/templates/categories"},{"title":"Obter template","sidebarTitle":"Obter template","api":"GET https://api.vertracloud.app/v1/templates/{template_id}","href":"/pt-br/api-reference/endpoint/templates/get"},{"title":"Listar versões do template","sidebarTitle":"Listar versões","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/pt-br/api-reference/endpoint/templates/versions"},{"title":"Validar manifesto de template","sidebarTitle":"Validar manifesto","api":"POST https://api.vertracloud.app/v1/templates/validate","href":"/pt-br/api-reference/endpoint/templates/validate"},{"title":"Fazer deploy de template","sidebarTitle":"Fazer deploy de template","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/deploy","href":"/pt-br/api-reference/endpoint/templates/deploy"},{"title":"Obter job de deploy de template","sidebarTitle":"Obter job de deploy","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}","href":"/pt-br/api-reference/endpoint/templates/deploy-status"},{"title":"Transmitir os eventos de deploy de template","sidebarTitle":"Eventos de deploy","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}/events","href":"/pt-br/api-reference/endpoint/templates/deploy-events"},{"title":"Obter informações de atualização do template","sidebarTitle":"Informações de atualização","api":"GET https://api.vertracloud.app/v1/apps/{id}/template/update","href":"/pt-br/api-reference/endpoint/templates/update-info"},{"title":"Atualizar um template ou mover uma aplicação para a versão mais recente","sidebarTitle":"Atualizar template","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/update","href":"/pt-br/api-reference/endpoint/templates/update"},{"title":"Criar um template privado","sidebarTitle":"Criar template","api":"POST https://api.vertracloud.app/v1/templates","href":"/pt-br/api-reference/endpoint/templates/create"},{"title":"Salvar um app como template","sidebarTitle":"Criar a partir de app","api":"POST https://api.vertracloud.app/v1/templates/from-app/{app_id}","href":"/pt-br/api-reference/endpoint/templates/create-from-app"},{"title":"Salvar uma stack como template","sidebarTitle":"Criar a partir de stack","api":"POST https://api.vertracloud.app/v1/templates/from-stack/{stack_id}","href":"/pt-br/api-reference/endpoint/templates/create-from-stack"},{"title":"Revisar o rascunho de um template a partir de uma aplicação ou stack","sidebarTitle":"Revisar rascunho","api":"GET https://api.vertracloud.app/v1/templates/from-app/{app_id}/draft","href":"/pt-br/api-reference/endpoint/templates/draft"},{"title":"Publicar uma nova versão de um template privado","sidebarTitle":"Nova versão","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/pt-br/api-reference/endpoint/templates/new-version"},{"title":"Excluir um template privado","sidebarTitle":"Excluir template","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}","href":"/pt-br/api-reference/endpoint/templates/delete"},{"title":"Vincular um template privado ao GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/pt-br/api-reference/endpoint/templates/github-link"},{"title":"Desvincular um template privado do GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/pt-br/api-reference/endpoint/templates/github-unlink"},{"title":"Desvincular uma aplicação ou stack de um template","sidebarTitle":"Desvincular","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/detach","href":"/pt-br/api-reference/endpoint/templates/detach"},{"group":"Links de compartilhamento","icon":"share-nodes","pages":[{"title":"Visualizar um link de compartilhamento de template","sidebarTitle":"Visualizar link","api":"GET https://api.vertracloud.app/v1/share/templates/{token}","href":"/pt-br/api-reference/endpoint/templates/share-links/preview"},{"title":"Fazer deploy a partir de um link de uso","sidebarTitle":"Usar link","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/deploy","href":"/pt-br/api-reference/endpoint/templates/share-links/deploy"},{"title":"Copiar um template a partir de um link de cópia completa","sidebarTitle":"Copiar pelo link","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/copy","href":"/pt-br/api-reference/endpoint/templates/share-links/copy"},{"title":"Denunciar um template","sidebarTitle":"Denunciar template","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/report","href":"/pt-br/api-reference/endpoint/templates/share-links/report"},{"title":"Criar um link de compartilhamento para um template","sidebarTitle":"Criar link","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/pt-br/api-reference/endpoint/templates/share-links/create"},{"title":"Listar os links de compartilhamento de um template","sidebarTitle":"Listar links","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/pt-br/api-reference/endpoint/templates/share-links/list"},{"title":"Revogar um link de compartilhamento","sidebarTitle":"Revogar link","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/share-links/{link_id}","href":"/pt-br/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":"/pt-br/api-reference/endpoint/stacks/list"},{"title":"Obter stack","sidebarTitle":"Obter stack","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/get"},{"title":"Criar stack","sidebarTitle":"Criar stack","api":"POST https://api.vertracloud.app/v1/stacks","href":"/pt-br/api-reference/endpoint/stacks/create"},{"title":"Atualizar stack","sidebarTitle":"Atualizar stack","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/update"},{"title":"Excluir stack","sidebarTitle":"Excluir stack","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/delete"},{"title":"Transformar pasta em stack","sidebarTitle":"Transformar em stack","api":"POST https://api.vertracloud.app/v1/stacks/transform","href":"/pt-br/api-reference/endpoint/stacks/transform"},{"title":"Obter código de conexão da stack","sidebarTitle":"Código de conexão","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/connection","href":"/pt-br/api-reference/endpoint/stacks/connection"},{"title":"Definir modo de rede da stack","sidebarTitle":"Modo de rede","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/network-mode","href":"/pt-br/api-reference/endpoint/stacks/network-mode"},{"group":"Membros","icon":"user-group","pages":[{"title":"Adicionar membro à stack","sidebarTitle":"Adicionar membro","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/members","href":"/pt-br/api-reference/endpoint/stacks/members/add"},{"title":"Remover membro da stack","sidebarTitle":"Remover membro","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/members/{resource_type}/{resource_id}","href":"/pt-br/api-reference/endpoint/stacks/members/remove"}]},{"group":"Conexões","icon":"arrows-left-right","pages":[{"title":"Criar conexão da stack","sidebarTitle":"Criar conexão","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/pt-br/api-reference/endpoint/stacks/bindings/create"},{"title":"Excluir conexão da stack","sidebarTitle":"Excluir conexão","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/pt-br/api-reference/endpoint/stacks/bindings/delete"},{"title":"Listar conexões da stack","sidebarTitle":"Listar conexões","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/pt-br/api-reference/endpoint/stacks/bindings/list"},{"title":"Atualizar conexão da stack","sidebarTitle":"Atualizar conexão","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/pt-br/api-reference/endpoint/stacks/bindings/update"}]},{"group":"Bancos de dados","icon":"database","pages":[{"title":"Adicionar banco de dados à stack","sidebarTitle":"Adicionar banco de dados","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/databases","href":"/pt-br/api-reference/endpoint/stacks/databases/create"}]},{"group":"Blob","icon":"box-archive","pages":[{"title":"Adicionar pasta do Blob à stack","sidebarTitle":"Adicionar pasta do Blob","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/blob","href":"/pt-br/api-reference/endpoint/stacks/blob/create"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Criar snapshot da stack","sidebarTitle":"Criar snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/pt-br/api-reference/endpoint/stacks/snapshots/create"},{"title":"Listar snapshots da stack","sidebarTitle":"Listar snapshots","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/pt-br/api-reference/endpoint/stacks/snapshots/list"},{"title":"Restaurar snapshot da stack","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots/{snapshot_id}/restore","href":"/pt-br/api-reference/endpoint/stacks/snapshots/restore"}]}]},{"group":"Bancos de dados","icon":"database","pages":[{"title":"Criar banco de dados","sidebarTitle":"Criar banco de dados","api":"POST https://api.vertracloud.app/v1/databases","href":"/pt-br/api-reference/endpoint/databases/create"},{"title":"Obter banco de dados pelo ID","sidebarTitle":"Obter banco de dados","api":"GET https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/get"},{"title":"Listar versões de banco de dados","sidebarTitle":"Versões","api":"GET https://api.vertracloud.app/v1/databases/versions","href":"/pt-br/api-reference/endpoint/databases/versions"},{"title":"Obter status do banco de dados pelo ID","sidebarTitle":"Obter status","api":"GET https://api.vertracloud.app/v1/databases/{id}/status","href":"/pt-br/api-reference/endpoint/databases/status"},{"title":"Obter o status de todos os bancos de dados","sidebarTitle":"Status de todos os bancos","api":"GET https://api.vertracloud.app/v1/databases/status","href":"/pt-br/api-reference/endpoint/databases/allstatus"},{"title":"Obter métricas do banco de dados pelo ID","sidebarTitle":"Obter métricas","api":"GET https://api.vertracloud.app/v1/databases/{id}/metrics","href":"/pt-br/api-reference/endpoint/databases/metrics"},{"title":"Redefinir banco de dados","sidebarTitle":"Redefinir banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/reset","href":"/pt-br/api-reference/endpoint/databases/reset"},{"title":"Iniciar banco de dados","sidebarTitle":"Iniciar banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/start","href":"/pt-br/api-reference/endpoint/databases/start"},{"title":"Parar banco de dados","sidebarTitle":"Parar banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/stop","href":"/pt-br/api-reference/endpoint/databases/stop"},{"title":"Atualizar banco de dados","sidebarTitle":"Atualizar banco de dados","api":"PUT https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/update"},{"title":"Excluir banco de dados","sidebarTitle":"Excluir banco de dados","api":"DELETE https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/delete"},{"group":"Credenciais","icon":"lock","pages":[{"title":"Obter certificado do banco de dados","sidebarTitle":"Obter certificado","api":"GET https://api.vertracloud.app/v1/databases/{id}/credentials/certificate","href":"/pt-br/api-reference/endpoint/databases/credentials/get"},{"title":"Redefinir certificados do banco de dados","sidebarTitle":"Redefinir certificados","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/certificate/reset","href":"/pt-br/api-reference/endpoint/databases/credentials/reset"},{"title":"Redefinir a senha do banco de dados","sidebarTitle":"Redefinir senha","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/reset","href":"/pt-br/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":"/pt-br/api-reference/endpoint/workspaces/get-all"},{"title":"Obter workspace","sidebarTitle":"Obter","api":"GET https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/get"},{"title":"Criar workspace","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces","href":"/pt-br/api-reference/endpoint/workspaces/create"},{"title":"Atualizar workspace","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/update"},{"title":"Apagar workspace","sidebarTitle":"Apagar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/delete"},{"group":"Membros","icon":"user-group","pages":[{"title":"Listar membros","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/members","href":"/pt-br/api-reference/endpoint/workspaces/members/list"},{"title":"Atualizar membro","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/pt-br/api-reference/endpoint/workspaces/members/update"},{"title":"Remover membro","sidebarTitle":"Remover","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/pt-br/api-reference/endpoint/workspaces/members/remove"}]},{"group":"Cargos","icon":"id-badge","pages":[{"title":"Listar papéis","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/pt-br/api-reference/endpoint/workspaces/roles/list"},{"title":"Criar papel","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/pt-br/api-reference/endpoint/workspaces/roles/create"},{"title":"Atualizar papel","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/pt-br/api-reference/endpoint/workspaces/roles/update"},{"title":"Apagar papel","sidebarTitle":"Apagar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/pt-br/api-reference/endpoint/workspaces/roles/delete"}]},{"group":"Convites","icon":"envelope","pages":[{"title":"Listar convites","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/invites","href":"/pt-br/api-reference/endpoint/workspaces/invites/list"},{"title":"Revogar convite","sidebarTitle":"Revogar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/invites/{invite_id}","href":"/pt-br/api-reference/endpoint/workspaces/invites/revoke"},{"title":"Visualizar convite","sidebarTitle":"Visualizar","api":"GET https://api.vertracloud.app/v1/workspaces/invites/{token}","href":"/pt-br/api-reference/endpoint/workspaces/invites/preview"},{"title":"Aceitar convite","sidebarTitle":"Aceitar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/accept","href":"/pt-br/api-reference/endpoint/workspaces/invites/accept"},{"title":"Recusar convite","sidebarTitle":"Recusar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/decline","href":"/pt-br/api-reference/endpoint/workspaces/invites/decline"}]},{"group":"Aplicações e bancos","icon":"window-maximize","pages":[{"title":"Vincular aplicação","sidebarTitle":"Vincular app","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-app"},{"title":"Desvincular aplicação","sidebarTitle":"Desvincular app","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-app"},{"title":"Vincular banco de dados","sidebarTitle":"Vincular banco de dados","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-database"},{"title":"Desvincular banco de dados","sidebarTitle":"Desvincular banco de dados","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-database"},{"title":"Vincular template ou stack","sidebarTitle":"Vincular template ou stack","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-template"},{"title":"Desvincular template ou stack","sidebarTitle":"Desvincular template ou stack","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-template"}]},{"group":"Organização de recursos","icon":"folder-tree","pages":[{"title":"Organização de recursos do workspace","sidebarTitle":"Pastas e favoritos","href":"/pt-br/api-reference/endpoint/workspaces/resource-organization"}]},{"group":"Solicitações de ação","icon":"square-check","pages":[{"title":"Listar solicitações de ação","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/pt-br/api-reference/endpoint/workspaces/action-requests/list"},{"title":"Criar solicitação de ação","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/pt-br/api-reference/endpoint/workspaces/action-requests/create"}]}]},{"group":"Cobrança","icon":"credit-card","pages":[{"title":"Listar pedidos","sidebarTitle":"Listar pedidos","api":"GET https://api.vertracloud.app/v1/orders","href":"/pt-br/api-reference/endpoint/billing/list-orders"},{"title":"Obter status do pedido","sidebarTitle":"Status do pedido","api":"GET https://api.vertracloud.app/v1/orders/{orderId}/status","href":"/pt-br/api-reference/endpoint/billing/order-status"},{"title":"Criar pedido","sidebarTitle":"Criar pedido","api":"POST https://api.vertracloud.app/v1/orders","href":"/pt-br/api-reference/endpoint/billing/create-order"},{"title":"Iniciar pagamento via PIX","sidebarTitle":"Iniciar PIX","api":"POST https://api.vertracloud.app/v1/orders/{orderId}/initiate/pix","href":"/pt-br/api-reference/endpoint/billing/initiate-pix"},{"title":"Obter dados de cobrança","sidebarTitle":"Obter dados de cobrança","api":"GET https://api.vertracloud.app/v1/users/me/billing","href":"/pt-br/api-reference/endpoint/billing/get-billing-details"},{"title":"Atualizar dados de cobrança","sidebarTitle":"Atualizar dados de cobrança","api":"PUT https://api.vertracloud.app/v1/users/me/billing","href":"/pt-br/api-reference/endpoint/billing/update-billing-details"}]},{"group":"Resgate","icon":"ticket","pages":[{"title":"Resgatar código","sidebarTitle":"Resgatar código","api":"POST https://api.vertracloud.app/v1/redeem/{code}","href":"/pt-br/api-reference/endpoint/redeem/redeem"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/pt-br/changelog"}]}],"global":{"anchors":[{"anchor":"Documentação","icon":"book-open-cover","href":"https://docs.vertracloud.app/pt-br"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/vertracloud"},{"anchor":"Status","icon":"heart-pulse","href":"https://status.vertracloud.app"}]}},{"language":"es","navbar":{"links":[{"href":"mailto:[email protected]","label":"Soporte"}],"primary":{"type":"button","label":"Panel","href":"https://vertracloud.app/dashboard"}},"pages":[{"title":"es","href":"/es-es"}]}]},"basePath":"","title":"Criar aplicação - 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"]}