Skip to main content
POST
This call saves a stack as a private template with a first version and answers 201 with the template, one service per member you choose. The connection variables of the stack become placeholders that point at the other services ({{services.db.url}}, for example), and each Blob folder of the stack becomes a Blob service. A member left out of the template also leaves out the variables that pointed at it. Databases are recreated empty: their data is never copied. Needs the templates:write scope when called with an API key. The plan, limit and workspace rules of Create a Private Template apply, the template is not verified by Vertra Cloud, and the refusals of Create Template from App apply to each application member. Read the proposal first with Review Template Draft.
string
required
The stack ID.
string
If the stack belongs to a workspace, the workspace’s ID.
string
required
The slug of the template, lowercase letters, digits and hyphens.
object
required
The name by language: pt-br (required), en and es, up to 50 characters each.
object
required
The description by language, same shape as name, up to 128 characters each.
string
required
automation, ai-agents, bots, apis, cms, monitoring, starters, databases or other.
string[]
Up to 10 tags.
string
The first version, as a semantic version. Default 1.0.0.
object
What users of the template may do, as in the permissions of the manifest.
object[]
required
What to save of each member of the stack, an application or a database.
string
The workspace that will own the template. Without it, the template belongs to you.

Response

The same template object returned by Create a Private Template, with 201 Created. creates_stack is true and services has one entry per member.

Error Responses

string
The error code indicating the reason for the failure. Possible values:
  • API_KEY_SCOPE_DENIED: The API key does not have the templates:write scope (403).
  • STACK_NOT_FOUND: The stack does not exist or is not yours.
  • APP_NOT_FOUND: A member application does not exist.
  • TEMPLATE_SAVE_NOT_ALLOWED: A member application came from a share link, or runs a platform image (403).
  • TEMPLATE_CLOSED: A member comes from a closed template (403).
  • TEMPLATE_MANIFEST_INVALID: The result is not a valid manifest; details.issues lists the findings.
  • TEMPLATE_SECRET_IN_SOURCE: A selected file holds a secret; details.files lists the paths (400).
  • TEMPLATE_SLUG_TAKEN: The slug is already in use among your templates or is reserved.
  • TEMPLATE_PRIVATE_LIMIT_REACHED: The account already has 5 private templates.
  • PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES: The plan cannot create templates.
  • WORKSPACE_OWNER_ONLY: Only the workspace owner saves templates in it.
Last modified on October 28, 2026