---
title: "Create a published template from a starter"
method: POST
path: "/templates/from-starter"
tags: ["Templates"]
---

# Create a published template from a starter

`POST /templates/from-starter`

## Request

- Base URL: `https://api.supersendtx.com`
- URL: `https://api.supersendtx.com/templates/from-starter`
- Auth: HTTP bearer

Copies a catalog starter into the account as a published template using the starter alias (e.g. password-reset). When the account's Brand colors are known (measured from its website or set on Brand), the template uses them for its page, text, links and buttons. Returns 409 if name or alias already exists.

## Request body

- object
  - `alias` string, required: Starter alias from GET /templates/starters

## Response `201`

Published template created

- TemplateResponse
  - `template` Template, required
    - `id` string, uuid, required
    - `name` string, required
    - `alias` string, nullable, required: Optional unique alias per account (must not start with `stx_` or `rnl_`)
    - `status` 'draft' | 'published', required
    - `format` 'html' | 'blocks', required: html is legacy raw HTML; blocks is the visual builder document
    - `subject` string, required
    - `preheader` string, nullable: Inbox preview text injected as a hidden preheader
    - `html` string, nullable, required
    - `text` string, nullable, required
    - `design` object, nullable: TemplateDocument JSON when format is blocks. `settings.globalCss` accepts author-supplied CSS; bare-tag rules (body, p, h1, h2, h3, a, img, hr) are inlined on render and everything else is emitted into a style block.
    - `variables` string[], nullable, required: Variable names used in subject/html/text (auto-extracted for blocks)
    - `published_version_id` string, uuid, nullable: Immutable version snapshot used for sends
    - `published_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `unsubscribe_enabled` boolean, required: When true, sends using this published template inherit managed unsubscribe unless overridden with `unsubscribe` on `POST /emails`.
    - `category` 'transactional' | 'product' | 'newsletter', required: Email category for preference management. `transactional` is default and ignores category opt-outs. `product` and `newsletter` support category-scoped unsubscribe.
    - `warnings` TemplateLintWarning[]: Non-blocking deliverability hints for template HTML (e.g. SVG image URLs)
      - `code` 'svg_image' | 'relative_image_url' | 'data_uri_image' | 'missing_alt' | 'non_https_image' | 'empty_href' | 'raw_html_block' | 'low_contrast' | 'html_too_large', required
      - `message` string, required
      - `detail` string, nullable

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `404`: Unknown starter alias
- `409`: Name or alias already in use

---

[API](https://skmtc.dev/ranla/apis/supersend-tx-api.md) · [All operations](https://skmtc.dev/ranla/apis/supersend-tx-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ranla/apis/supersend-tx-api/revisions/e3e782652f50?raw)
