Skip to content
Letterhead Letterhead Letterhead Help Center
Admin Tools

Clone a letter

POST
/api/v3/letters/{letterUuid}/clone
curl --request POST \
--url 'https://api.tryletterhead.com/api/v3/letters/example/clone?api=true' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'

Duplicate a letter (or template), producing a new letter with a fresh unique identifier and no publication history. Blocks and settings are copied from the source.

What is the letter’s unique identifier? An alphanumeric string, often around ten characters, e.g. ludctamgd6.

Omit channelId to clone the letter in place — onto its own channel, or staying at company level if the source is a template. channelId addresses a channel by its internal numeric identifier rather than its slug, so most integrations should leave it out and clone in place rather than try to move the clone to a different channel.

letterUuid
required
string

The letter’s unique identifier — an alphanumeric string around ten characters, e.g. ludctamgd6.

api
required
boolean

When true, tells the endpoint you are authenticating with a company API key (the key you generate under a company’s administrative settings) rather than a logged-in user session. For API integrations you will almost always set this to true.

Media type application/json
object
channelId

(optional) Internal numeric identifier of the destination channel. Omit (or pass 0) to clone in place — see the description above.

integer
title

(optional) Title for the clone. Defaults to the source letter’s own title.

string
status

(optional) Publication status to give the clone. Defaults to the source letter’s own status.

integer
useChannelSettings

(optional) Whether the clone should pick up its destination channel’s default settings rather than copying the source letter’s settings. Defaults to true.

boolean
Example
{}

Letter cloned

Media type application/json
object
items

The new, cloned letter. Shown here are the fields most integrators use — the full letter object carries many more.

object
uniqueId
string
title
string
subtitle
string
publicationStatus
integer
channelSlug
string
nullable
channelName
string
nullable
createdAt
string
updatedAt
string
message
string
total
integer
Example
{
"items": {
"uniqueId": "7hqk1z0mwe",
"title": "This week's edition",
"subtitle": "Everything you need to know",
"publicationStatus": 3,
"channelSlug": null,
"channelName": null,
"createdAt": "2026-08-31 09:20:00",
"updatedAt": "2026-08-31 09:20:00"
},
"message": "Company letter cloned.",
"total": 10
}

Still can’t find what you need? Contact support.