Send a letter from a template
const url = 'https://api.tryletterhead.com/api/v3/letters/example/actions/send';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"api":true,"channel":"an-example-channel","segment":0,"subject":"Who doesn\'t love a good movie?","subtitle":"A new exhibition, two openings, and a closer look at this season\'s residency.","suppress":["some-other-channel"],"curations":[{"excerpt":"Pan\'s Labyrinth should be number one, we think.","tags":["pans-labyrinth"],"title":"The 100 Best Movies of the 21st Century","url":"https://www.nytimes.com/interactive/2025/movies/best-movies-21st-century.html"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.tryletterhead.com/api/v3/letters/example/actions/send \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "api": true, "channel": "an-example-channel", "segment": 0, "subject": "Who doesn'\''t love a good movie?", "subtitle": "A new exhibition, two openings, and a closer look at this season'\''s residency.", "suppress": [ "some-other-channel" ], "curations": [ { "excerpt": "Pan'\''s Labyrinth should be number one, we think.", "tags": [ "pans-labyrinth" ], "title": "The 100 Best Movies of the 21st Century", "url": "https://www.nytimes.com/interactive/2025/movies/best-movies-21st-century.html" } ] }'Create and send a new edition from a newsletter template in one call: letterUuid in the path
identifies the template to send from, not the resulting letter. Persists any curations you
pass and hydrates them onto the template’s targetable blocks before the send is scheduled.
segment is the integer identifier of the target audience segment — either all of your target
channel’s subscribers, or a subset. Use suppress to hold back anyone who is also subscribed to
the listed channels, to avoid sending the same content to a reader twice across newsletters.
To create a draft from a template without sending, use createADraftFromATemplate instead.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The letter’s unique identifier — an alphanumeric string around ten characters, e.g. ludctamgd6.
Request Body required
Section titled “Request Body required ”object
Required. Set to true to authenticate with an API key.
The integer identifier of your target segment, which is either all or a subset of your target channel.
(optional) Override the template’s subtitle (email preview text) for this send only. Max 191 chars. Omit or send null to keep the template’s existing subtitle.
(optional) An array of channel identifiers (slugs), to suppress sending to anyone on “an-example-channel” who is also subscribed to one or more of the channels passed here.
(optional) An array of Curations.
object
Example
{ "api": true, "channel": "an-example-channel", "segment": 0, "subject": "Who doesn't love a good movie?", "subtitle": "A new exhibition, two openings, and a closer look at this season's residency.", "suppress": [ "some-other-channel" ], "curations": [ { "excerpt": "Pan's Labyrinth should be number one, we think.", "tags": [ "pans-labyrinth" ], "title": "The 100 Best Movies of the 21st Century", "url": "https://www.nytimes.com/interactive/2025/movies/best-movies-21st-century.html" } ]}Responses
Section titled “ Responses ”Successful response
Still can’t find what you need? Contact support.