Get Template Version
One version of a studio template, optionally with its full design
Updated
GET
/v1/studio/templates/{templateId}/versions/{versionId}curl -X GET "https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>?snapshot=<SNAPSHOT>" \
-H "Authorization: Bearer <ORSHOT_API_KEY>"const res = await fetch("https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>?snapshot=<SNAPSHOT>", {
method: "GET",
headers: {
Authorization: "Bearer <ORSHOT_API_KEY>",
},
});
const data = await res.json();import requests
response = requests.get(
"https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>?snapshot=<SNAPSHOT>",
headers={"Authorization": "Bearer <ORSHOT_API_KEY>"},
)
data = response.json()$ch = curl_init("https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>?snapshot=<SNAPSHOT>");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <ORSHOT_API_KEY>",
]);
$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>?snapshot=<SNAPSHOT>")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer <ORSHOT_API_KEY>"
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.
Returns one version. Add ?snapshot=true to include the design as it was in that version: name, description, tags, canvas size and pages_data. On a film it also includes film. Use it to diff two versions or to read an old value back. The snapshot can hold other fields too. Do not rely on them.
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 |
Query Parameters#
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
snapshot | Boolean | No | false | Include the version's design under snapshot |
Request#
await fetch(
"https://api.orshot.com/v1/studio/templates/12345/versions/57?snapshot=true",
{ headers: { Authorization: "Bearer <ORSHOT_API_KEY>" } },
);{
"version": {
"id": 57,
"number": 12,
"kind": "named",
"label": "Approved for launch",
"protected": true,
"row_updated_at": "2026-09-15T11:31:19.576+00:00",
"page_count": 3
},
"snapshot": {
"name": "Launch banner",
"description": "",
"canvas_width": 1200,
"canvas_height": 630,
"pages_data": [{ "id": "p1", "name": "Cover", "elements": [ "…" ] }]
}
}Error Responses#
| Status Code | Code | Description |
|---|---|---|
| 400 | invalid_template_id | templateId is not a numeric id |
| 400 | invalid_version_id | versionId is not a numeric id |
| 400 | invalid_query | snapshot is not true or false |
| 403 | enterprise_required | API key without the Enterprise version history feature |
| 404 | VERSION_NOT_FOUND | No such version on this template |
| 422 | SNAPSHOT_UNREADABLE | The stored design could not be decoded |
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 40+ integrations
- White-label embed for your own app
- 100 free credits a month, no credit card required