---
title: "Create a new version"
method: POST
path: "/v1/templates/{id}/versions"
tags: ["Templates", "Versions"]
---

# Create a new version

`POST /v1/templates/{id}/versions`

## Request

- Base URL: `https://api.lunary.ai`
- URL: `https://api.lunary.ai/v1/templates/{id}/versions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lunary/apis/lunary-api/docs/v1/templates/:id/versions/post.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint allows you to push a new version of a prompt.
You can specify the content, extra parameters, test values, draft status, and notes for the new version.

## Path parameters

- `id` string, required

## Request body

- TemplateVersionInput
  - `content` object[], required
    - `role` string
    - `content` string
  - `metadata` PromptMetadata: Versioned key/value text, separate from model parameters and prompt variables. Keys are preserved exactly, must not be blank, and are limited to 256 characters. The reserved key __proto__ is not allowed. Values must be strings. Numbers, booleans, null, arrays, and objects are rejected. The serialized object must be no larger than 64 KiB. Returned by prompt retrieval endpoints, including public-key retrieval; do not store secrets here. Omitted metadata defaults to an empty object on creation and is preserved on PATCH.
  - `extra` object
  - `testValues` object
  - `isDraft` boolean, required
  - `notes` string

## Response `200`

Successful response

- TemplateVersion
  - `id` string
  - `templateId` string
  - `content` object[]
    - `role` string
    - `content` string
  - `metadata` PromptMetadata: Versioned key/value text, separate from model parameters and prompt variables. Keys are preserved exactly, must not be blank, and are limited to 256 characters. The reserved key __proto__ is not allowed. Values must be strings. Numbers, booleans, null, arrays, and objects are rejected. The serialized object must be no larger than 64 KiB. Returned by prompt retrieval endpoints, including public-key retrieval; do not store secrets here. Omitted metadata defaults to an empty object on creation and is preserved on PATCH.
  - `extra` object
  - `testValues` object
  - `isDraft` boolean
  - `notes` string
  - `createdAt` string, date-time
  - `version` number

---

[API](https://skmtc.dev/lunary/apis/lunary-api.md) - [All operations](https://skmtc.dev/lunary/apis/lunary-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lunary/apis/lunary-api/revisions/a38233713bdc?raw)
