Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lettr.com/llms.txt

Use this file to discover all available pages before exploring further.

The client.Templates service manages Lettr-managed templates. To send a template, set TemplateSlug on SendEmailRequest — see Sending Emails.
import lettr "github.com/lettr-com/lettr-go"

client := lettr.NewClient("your-api-key")

List Templates

templates, err := client.Templates.List(ctx, &lettr.ListTemplatesParams{
    ProjectID: 5,
    PerPage:   10,
    Page:      1,
})

API Reference

GET /templates

Get a Template

template, err := client.Templates.Get(ctx, "welcome-email", nil)

// With a specific project
template, err = client.Templates.Get(ctx, "welcome-email", &lettr.GetTemplateParams{
    ProjectID: 5,
})

Create a Template

Provide Html or Json (the TOPOL.io editor format), not both:
created, err := client.Templates.Create(ctx, &lettr.CreateTemplateRequest{
    Name: "Welcome Email",
    Html: "<h1>Hello {{FIRST_NAME}}!</h1>",
})

API Reference

POST /templates

Update & Delete

updated, err := client.Templates.Update(ctx, "welcome-email", &lettr.UpdateTemplateRequest{
    Html: "<h1>Updated Hello {{FIRST_NAME}}!</h1>",
})

_, err = client.Templates.Delete(ctx, "welcome-email", nil)

Get Merge Tags

Retrieve the variables a template expects — useful for validating data before sending:
tags, err := client.Templates.GetMergeTags(ctx, "welcome-email", nil)
for _, tag := range tags.Data.MergeTags {
    fmt.Printf("Tag: %s (required: %v)\n", tag.Key, tag.Required)
}

API Reference

GET /templates//merge-tags

What’s Next

Template Language

Merge tag syntax, conditionals, loops

Sending Emails

Send a template with substitution data