Ga direct naar de documentatie
API

Een template aanmaken

Een concept, tenzij je erom vraagt het te publiceren. Een concept kan worden bekeken en kan niet worden verstuurd.

POSTapi.openemail.uk/templates

Voert de echte aanroep uit op je workspace, met je eigen sleutel.

POST /templates

Een concept, tenzij je erom vraagt het te publiceren. Een concept kan worden bekeken en kan niet worden verstuurd.

Voorbeeld

Vereist templates:write. Geeft 201 terug. slug wordt van de naam afgeleid als je hem weglaat, en het is het handvat om in code vast te leggen, want een naam is juist het ding dat iemand hernoemt.

curl
curl -X POST "$OE/templates" -H "$AUTH" -H "Content-Type: application/json" \  -d '{    "name": "Order shipped",    "engine": "html",    "subject": "Order {{orderId}} is on its way",    "html": "<p>Hello {{customer}}, {{orderId}} left the warehouse.</p>",    "props": [      { "key": "orderId", "kind": "text", "required": true },      { "key": "customer", "kind": "text", "default": "there" }    ],    "publish": true  }'
Antwoord
{  "object": "template",  "id": "tpl_9c1f0a4b7e05d3862c1f0a44",  "name": "Order shipped",  "slug": "order-shipped",  "description": null,  "status": "active",  "publishedVersion": 1,  "latestVersion": 1,  "subject": "Order {{orderId}} is on its way",  "engine": "html",  "slots": [],  "props": [    { "key": "orderId", "kind": "text", "required": true, "default": null },    { "key": "customer", "kind": "text", "required": false, "default": "there" }  ],  "createdAt": "2026-08-30T10:41:02.000Z",  "updatedAt": "2026-08-30T10:41:02.000Z"}

Zet publish: true vanuit een deploy-script. Zonder dat krijg je versie 1 als concept, wat klopt als iemand de tekst eerst gaat lezen en fout is in alles wat geautomatiseerd draait.

Een dubbele naam is template_name_taken en een dubbele slug is template_slug_taken, allebei 409's op de connectie en niet op het account.

Een connectie houdt 200 templates. De 201e is template_limit_reached, een rem op een op hol geslagen script en geen abonnementslimiet.