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 stored design (name, description, tags, canvas and pages_data), for example to diff two versions or to read an old value back.
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 stored 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": {
"v": 1,
"name": "Launch banner",
"description": "",
"tags": "[\"launch\"]",
"thumbnail_mode": "auto",
"canvas_width": 1200,
"canvas_height": 630,
"canvas_data": { "width": 1200, "height": 630 },
"elements_data": [],
"pages_data": [{ "id": "p1", "name": "Cover", "elements": [ "…" ] }],
"context": { "folder_id": null, "public_sharing_enabled": false }
}
}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 50+ integrations
- White-label embed for your own app
- 30 free credits — no credit card required