---
title: "Templates"
description: "Reusable email designs in the canonical block-based JSON format the dashboard editor produces, with per-recipient `{{variables}}` filled at send time."
url: https://www.unitpost.com/docs/api/templates
section: API reference
updated: 2026-07-31
---
# Templates

## Templates

> Reusable email designs in the canonical block-based JSON format the dashboard editor produces, with per-recipient `{{variables}}` filled at send time.

Full schemas: [OpenAPI 3.1](https://www.unitpost.com/api/v1/openapi.json). HTML reference: https://www.unitpost.com/docs/api/templates.

## Operations

### `GET /api/v1/email/templates`

List templates

Retrieve a list of your email templates, cursor-paginated. List rows omit the full `design` document to keep responses small — fetch a single template with [Retrieve a template](#get-email-templates-id) to get it. Reference a template's `id` when sending with [Send or schedule an email](#post-email) or when creating a campaign. Requires the `templates:read` capability.

### `POST /api/v1/email/templates`

Create a template

Create a reusable email template from a canonical `design` document — the same block-based format the dashboard editor produces. Templates support `{{variables}}` that are filled per-recipient at send time. Once created, preview it in the dashboard, send with it via [Send or schedule an email](#post-email), and iterate with [Update a template](#patch-email-templates-id). Requires the `templates:write` capability.

### `GET /api/v1/email/templates/{id}`

Retrieve a template

Retrieve a single template by `id`, including the full canonical `design` document (which [List templates](#get-email-templates) omits). Use this to read a design for editing, then save changes with [Update a template](#patch-email-templates-id). Requires the `templates:read` capability.

### `PATCH /api/v1/email/templates/{id}`

Update a template

Update a template's metadata and/or its `design` document. Changes take effect for future sends only — emails already sent or queued keep the design they were rendered with. Preview the result in the dashboard before sending; read the current design first with [Retrieve a template](#get-email-templates-id). Requires the `templates:write` capability.

### `DELETE /api/v1/email/templates/{id}`

Delete a template

Permanently delete a template. Emails already sent with it are unaffected, but future sends that reference its id will fail — update any code or campaigns that still point at it first (see [List campaigns](#get-email-campaigns)). Requires the `templates:write` capability.

## Related

- [Brand kits](https://www.unitpost.com/docs/api/brand-kits): Read-only Brand Kit profiles (voice, labeled colors, pinned library graphics, core pages) for on-brand template authoring. Writes and URL import stay in the dashboard (Settings → Brand).
- [Domains](https://www.unitpost.com/docs/api/domains): The domains you send from. Add a domain, publish its DNS records, verify it, and manage its tracking and TLS defaults — sending is blocked until the domain verifies.
- [Webhooks](https://www.unitpost.com/docs/api/webhooks): Register HTTPS endpoints that receive signed event deliveries (delivered, bounced, opened, clicked, …). The signing secret is returned once on create; verify the signature on every delivery.
