Name or Rename a Version
Give a version a name, or rename a named version
Updated
PATCH
/v1/studio/templates/{templateId}/versions/{versionId}curl -X PATCH "https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>" \
-H "Authorization: Bearer <ORSHOT_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"label": "<LABEL>"
}'const res = await fetch("https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <ORSHOT_API_KEY>",
},
body: JSON.stringify({
"label": "<LABEL>"
}),
});
const data = await res.json();import requests
response = requests.patch(
"https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>",
headers={"Authorization": "Bearer <ORSHOT_API_KEY>"},
json={
"label": "<LABEL>"
},
)
data = response.json()$ch = curl_init("https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <ORSHOT_API_KEY>",
"Content-Type: application/json",
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"label" => "<LABEL>"
]));
$data = json_decode(curl_exec($ch), true);
curl_close($ch);require "net/http"
require "json"
uri = URI("https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>")
req = Net::HTTP::Patch.new(uri)
req["Authorization"] = "Bearer <ORSHOT_API_KEY>"
req["Content-Type"] = "application/json"
req.body = {
"label": "<LABEL>"
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)Enterprise Only
Version history endpoints are available to first party clients like the Orshot MCP server and workspaces on the Enterprise plan. Checkout the Enterprise Pricing to get access.
Naming an automatic version promotes it to a named version, which is never pruned and uses one of the plan's named slots. Renaming a named version only changes its label. The in-session checkpoint cannot be named; save first.
Endpoint#
https://api.orshot.com/v1/studio/templates/:templateId/versions/:versionIdURL Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | Integer | Yes | ID of the studio template |
versionId | Integer | Yes | ID of the version |
Request Body#
| Field | Type | Required | Description |
|---|---|---|---|
label | String | Yes | Name of the version, 1 to 80 characters |
Request#
await fetch("https://api.orshot.com/v1/studio/templates/12345/versions/48", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <ORSHOT_API_KEY>",
},
body: JSON.stringify({ label: "Before the rebrand" }),
});{
"success": true,
"version": {
"id": 48,
"number": 9,
"kind": "named",
"label": "Before the rebrand",
"protected": true
}
}Error Responses#
| Status Code | Code | Description |
|---|---|---|
| 400 | label_required | label missing or empty |
| 400 | invalid_label | label is not a string |
| 400 | label_too_long | label is longer than 80 characters |
| 400 | invalid_version_id | versionId is not a numeric id |
| 400 | NOT_NAMEABLE | The in-session checkpoint cannot be named |
| 403 | PLAN_LOCKED | Naming versions needs a paid workspace plan |
| 403 | enterprise_required | API key without the Enterprise version history feature |
| 404 | VERSION_NOT_FOUND | No such version on this template |
| 409 | NAMED_CAP | The plan's named-version slots for this template are used up |
Was this page helpful?
Ready to automate?
Start rendering images, PDFs and videos from your templates in under 2 minutes. Free plan, no credit card.
Get your API key- Image, PDF and video generation via API
- Visual editor with AI and smart layouts
- Zapier, Make, MCP and 50+ integrations
- White-label embed for your own app
- 30 free credits — no credit card required