Skip to the documentation
API

List versions

Every revision, newest first, with the declared keys each one expects.

GETapi.openemail.uk/templates/{id}/versions

Runs the real call against your workspace, with your own key.

GET /templates/{id}/versions

Every revision, newest first, with the declared keys each one expects.

Example

Needs templates:read. Bodies are left out here; read one version through the template itself.

curl
curl "$OE/templates/order-shipped/versions" -H "$AUTH"
Response
{  "object": "list",  "data": [    {      "object": "template_version",      "id": "tplv_5d31c2a8…",      "templateId": "tpl_9c1f0a4b7e05d3862c1f0a44",      "version": 4,      "state": "draft",      "engine": "html",      "subject": "Order {{orderId}} is on its way",      "slots": [],      "props": [{ "key": "orderId", "kind": "text", "required": true, "default": null }],      "publishedAt": null,      "createdAt": "2026-08-28T16:03:10.000Z"    }  ]}

This is the call that answers "what did we actually send in June". props is versioned with the body, so an old message can be read against the keys that were declared at the time rather than against today’s.