Restore Template Version

Put an earlier design back on the template as a new step on its timeline

Updated

POST
/v1/studio/templates/{templateId}/versions/{versionId}/restore
curl -X POST "https://api.orshot.com/v1/studio/templates/<TEMPLATE_ID>/versions/<VERSION_ID>/restore" \
  -H "Authorization: Bearer <ORSHOT_API_KEY>"

Puts the version's design back on the template. A restore never rewinds the timeline, it extends it: the live design is kept as a restore row ("before restoring v6"), then the restored design is written and kept as a restored row pointing at what was put back. Restoring is therefore always reversible.

The design (pages, canvas, thumbnail mode) is restored. Name, description, tags, folder and sharing stay as they are. Every open studio tab is told the template changed and offers Reload or Keep mine.

Endpoint#

Endpoint
https://api.orshot.com/v1/studio/templates/:templateId/versions/:versionId/restore

URL Parameters#

ParameterTypeRequiredDescription
templateIdIntegerYesID of the studio template
versionIdIntegerYesID of the version to put back

Request#

JavaScript
await fetch(
  "https://api.orshot.com/v1/studio/templates/12345/versions/48/restore",
  {
    method: "POST",
    headers: { Authorization: "Bearer <ORSHOT_API_KEY>" },
  },
);
JSON
{
  "success": true,
  "template": {
    "id": 12345,
    "name": "Launch banner",
    "updated_at": "2026-09-15T11:42:10.221+00:00",
    "current_version": "1a47b02b-19f7-41ed-9528-939611fcb219",
    "page_count": 3
  },
  "restored": { "id": 48, "number": 9, "kind": "session", "label": null },
  "version": { "id": 61, "number": 13, "kind": "restored", "ref_version_id": 48 }
}

Response Fields#

FieldTypeDescription
template.updated_atStringThe template's new design version token; send it as base_updated_at on later writes
restoredObjectThe version that was put back
versionObjectThe new restored row on the timeline

Error Responses#

Status CodeCodeDescription
400invalid_version_idversionId is not a numeric id
403PLAN_LOCKEDRestoring needs a paid workspace plan
403PLAN_REACHThis version is older than the plan can restore
403enterprise_requiredAPI key without the Enterprise version history feature
404VERSION_NOT_FOUNDNo such version on this template
409TEMPLATE_CHANGEDThe template was saved while restoring; nothing was written. Retry
422SNAPSHOT_UNREADABLEThe 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