---
title: "Create template"
method: POST
path: "/templates"
tags: ["Templates"]
---

# Create template

`POST /templates`

Create a new email template.

`from` is required and its domain must already be verified for this project, otherwise the request is rejected.

## Request body

- object
  - `name` string, required — Internal name for the template.
  - `description` string — Optional internal note. Not sent to recipients.
  - `subject` string, required
  - `body` string, required — HTML body. Use `{{variable}}` placeholders to interpolate contact data at send time.
  - `from` string, email, required — Sender address. Must belong to a domain verified for this project.
  - `fromName` string — Sender display name.
  - `replyTo` string, email
  - `type` 'TRANSACTIONAL' | 'MARKETING' | 'HEADLESS' — Optional. Defaults to `MARKETING` when omitted.

## Response `201`

Template created

- Template
  - `id` string
  - `name` string
  - `description` string, nullable
  - `subject` string
  - `body` string — HTML content with `{{variable}}` placeholders.
  - `from` string, email — Sender address. Must belong to a verified domain.
  - `fromName` string, nullable
  - `replyTo` string, email, nullable
  - `type` 'TRANSACTIONAL' | 'MARKETING' | 'HEADLESS'
  - `projectId` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `400` — A required field (`name`, `subject`, `body`, `from`) is missing.
- `401` — Missing or invalid API key.
- `403` — The sender domain is not registered to this project, or has not completed DNS verification. Add and verify the domain in your project settings first.

## Changes

- **2026-08-09** `a13aa5345f8e` — 1 breaking, 1 warning, 15 info
  - added the new required request property `from`
  - added the new `HEADLESS` enum value to the `type` response property for the response status `201`
  - added the new optional request property `description`
  - added the new optional request property `fromName`
  - …13 more

[Change history](https://skmtc.dev/useplunk/apis/plunk-api/changes/templates/post.md)

---

[API](https://skmtc.dev/useplunk/apis/plunk-api.md) · [All operations](https://skmtc.dev/useplunk/apis/plunk-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/useplunk/plunk-api/revisions/a13aa5345f8e/schema)
