Pular para o conteúdo principal
POST
Esta chamada salva uma stack como template privado com uma primeira versão e responde 201 com o template, com um serviço por membro que você escolher. As variáveis de conexão da stack viram placeholders que apontam para os outros serviços ({{services.db.url}}, por exemplo), e cada pasta do Blob da stack vira um serviço Blob. Um membro deixado de fora do template também deixa de fora as variáveis que apontavam para ele. Os bancos de dados são recriados vazios: os dados deles nunca são copiados. Precisa do escopo templates:write quando chamado com uma chave de API. Valem o plano, o limite e as regras de workspace de Criar template privado, o template não é verificado pela Vertra Cloud, e as recusas de Criar template a partir de app valem para cada membro que é app. Leia antes a proposta com Revisar rascunho do template.
string
obrigatório
O ID da stack.
string
Se a stack pertencer a um workspace, o ID do workspace.
string
obrigatório
O slug do template, com letras minúsculas, números e hífens.
object
obrigatório
O nome por idioma: pt-br (obrigatório), en e es, de até 50 caracteres cada.
object
obrigatório
A descrição por idioma, no mesmo formato de name, de até 128 caracteres cada.
string
obrigatório
automation, ai-agents, bots, apis, cms, monitoring, starters, databases ou other.
string[]
Até 10 tags.
string
A primeira versão, como versão semântica. Padrão 1.0.0.
object
O que os usuários do template podem fazer, como nas permissões do manifesto.
object[]
obrigatório
O que salvar de cada membro da stack, um app ou um banco de dados.
string
O workspace que será dono do template. Sem ele, o template é seu.

Resposta

O mesmo objeto de template retornado por Criar template privado, com 201 Created. creates_stack é true e services tem uma entrada por membro.

Respostas de erro

string
O código de erro que indica o motivo da falha. Valores possíveis:
  • API_KEY_SCOPE_DENIED: A chave de API não tem o escopo templates:write (403).
  • STACK_NOT_FOUND: A stack não existe ou não é sua.
  • APP_NOT_FOUND: Um app membro não existe.
  • TEMPLATE_SAVE_NOT_ALLOWED: Um app membro veio de um link de compartilhamento, ou executa uma imagem da plataforma (403).
  • TEMPLATE_CLOSED: Um membro vem de um template fechado (403).
  • TEMPLATE_MANIFEST_INVALID: O resultado não é um manifesto válido; details.issues lista os achados.
  • TEMPLATE_SECRET_IN_SOURCE: Um arquivo selecionado tem um segredo; details.files lista os caminhos (400).
  • TEMPLATE_SLUG_TAKEN: O slug já está em uso entre os seus templates ou é reservado.
  • TEMPLATE_PRIVATE_LIMIT_REACHED: A conta já tem 5 templates privados.
  • PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES: O plano não pode criar templates.
  • WORKSPACE_OWNER_ONLY: Só o dono do workspace salva templates nele.
Última modificação em 28 de outubro de 2026