---
title: "Create Message Template"
method: POST
path: "/message-templates/"
tags: ["Message Templates"]
---

# Create Message Template

`POST /message-templates/`

## Request

- Base URL: `https://api.thanks.io/api/v2`
- URL: `https://api.thanks.io/api/v2/message-templates/`
- Auth: HTTP bearer

Create a message template for the authenticated user using the public v2 request shape.

## Request body

- MessageTemplateCreate
  - `type` 'postcard' | 'postcard6x9' | 'postcard6x11' | 'letter' | 'windowlessletter' | 'notecard' | 'giftcard' | 'magnacard': Type of the message template
  - `name` string: Name of the message template
  - `handwriting_style_id` integer: Handwriting style ID for the message template
  - `font_color` string: Handwriting color to use
  - `handwriting_realism` boolean: Set to true to enable the realism effect for AI fonts.
  - `content` string: Template body content.
  - `sub_account_id` integer, nullable: ID of the sub-account to associate with this template.
  - `additional_pages` string, uri: URL to additional pages to include with the cover letter. Only valid for letter templates.
  - `pdf_only_url` string, uri: URL to PDF file to use for entire mailer. If this is specified, no cover letter is generated. Valid for letter templates only. Providing this URL automatically sets skip_creative_generation to true. For windowed letter templates, leave the upper-left address area of page 1 blank and do not include a recipient address in the PDF; thanks.io prints each recipient's address there.
  - `custom_background_url` string, uri: URL of a custom background image for the template. Only valid for postcard backs and the interior background of notecards and giftcards.
  - `qrcode_url` string, uri: URL of the QR code image to use for the template.
  - `cc_emails` string[]: List of email addresses to CC when a QR code is scanned
  - `giftcard_brand_code` string: Brand code of the gift card. Required when type is giftcard.
  - `giftcard_amount` integer: Amount of the gift card in cents. Required when type is giftcard. Use this field for public v2 requests instead of giftcard_amount_in_cents.
  - `landing_page_url` string, uri: URL of the gated landing page (also known as a gating URL). Recipients must visit this page before they can redeem the gift card, letting you gate redemption behind an action such as booking a demo or completing a form. Only valid for giftcards.

## Response `201`

Created

- MessageTemplate
  - `id` integer
  - `user_id` integer
  - `sub_account_id` integer, nullable
  - `handwriting_style_id` integer: ID of the handwriting style used in the message template
  - `font_size` integer: Font size used in the message template. Only valid for AI fonts
  - `font_color` string: Font color used in the message template.
  - `handwriting_realism` boolean: Handwriting realism level used in the message template. Only valid for AI fonts
  - `name` string
  - `content` string
  - `additional_pages` string, uri: URL to additional pages to include with the cover letter. Only valid for letter templates.
  - `skip_creative_generation` integer: Flag to skip creative generation. Set when message template is PDF file only.
  - `custom_background_url` string: URL of the custom background image for the message template. Only valid for postcard backs and the interior background of notecards and giftcards.
  - `qrcode_url` string: URL of the QR code image for the message template
  - `cc_emails` string[]: List of email addresses to be CC'd on when a QR code is scanned
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `type` 'postcard' | 'postcard6x9' | 'postcard6x11' | 'letter' | 'windowlessletter' | 'notecard' | 'giftcard' | 'magnacard': Type of the message template
  - `giftcard_brand_code` string: Brand code of the gift card
  - `giftcard_brand_image` string: Image URL of the gift card brand
  - `giftcard_amount` integer: Amount of the gift card in cents
  - `landing_page_url` string, uri: URL of the gated landing page (also known as a gating URL). Recipients must visit this page before they can redeem the gift card, letting you gate redemption behind an action such as booking a demo or completing a form. Only valid for giftcards.
  - `share_uuid` string

## Other responses

- `403`: Access token is missing or invalid

## Changes

- **2026-10-01** `02de08ab2a47`: 1 warning, 1 info
  - added the new `postcard6x9` enum value to the `type` response property for the response status `201`
  - added the new `postcard6x9` enum value to the request property `type`
- **2026-08-05** `670a67b234a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/thanks-io/apis/thanks-io-api/changes/message-templates/post.md)

---

[API](https://skmtc.dev/thanks-io/apis/thanks-io-api.md) · [All operations](https://skmtc.dev/thanks-io/apis/thanks-io-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thanks-io/apis/thanks-io-api/revisions/c403fbf3dc0f?raw)
