Retrieve a letter
const url = 'https://api.tryletterhead.com/api/v3/letters/example?api=true';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.tryletterhead.com/api/v3/letters/example?api=true' \ --header 'Authorization: Bearer <token>'Retrieve a single letter by its unique identifier, including its fully rendered email HTML.
Use it to pull back a sent (or draft) letter’s content programmatically — most commonly to get the rendered HTML of a published edition.
What is the letter’s unique identifier? An alphanumeric string, often around ten characters, e.g. ludctamgd6. It is returned by the send/draft endpoints.
Response. Returns HTTP 201, with the letter nested under items (alongside message and total) rather than as a flat top-level object.
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.
Query Parameters
Section titled “Query Parameters ”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.
Responses
Section titled “ Responses ”Retrieve a letter
object
The letter object. Shown here are the fields most integrators use — the full letter object carries many more.
object
A fixed default for this endpoint — not meaningful for a single-letter response.
Example
{ "items": { "uniqueId": "ludctamgd6", "title": "Who doesn't love a good movie?", "subtitle": "A new exhibition, two openings, and a closer look at this season's residency.", "emailTemplate": "<!-- The full, rendered HTML of the edition as sent lives here -->", "publicationDate": "2026-05-06 05:53:05", "publicationStatus": 1, "segmentName": "Entire audience", "channelSlug": "an-example-channel", "channelName": "An Example Channel", "createdAt": "2026-05-01 19:54:12", "updatedAt": "2026-05-06 05:53:05" }, "message": "Company letter found.", "total": 10}Still can’t find what you need? Contact support.