# Lettr ## Docs - [Attach contact to list](https://docs.lettr.com/api-reference/audience/attach-contact-to-list.md): Add a contact to a list. Returns `201` if the contact was newly attached, or `200` if the contact was already in the list. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Bulk attach contacts to lists](https://docs.lettr.com/api-reference/audience/bulk-attach-contacts-to-lists.md): Attach every combination of `contact_ids × list_ids` (up to 1000 contacts × 50 lists). Existing pairs are reported in `already_attached`. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Bulk create contacts](https://docs.lettr.com/api-reference/audience/bulk-create-contacts.md): Create up to 1000 contacts in a single request. Emails are normalized and deduplicated; contacts that already exist are reported in `already_existed`. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Bulk delete audience lists](https://docs.lettr.com/api-reference/audience/bulk-delete-audience-lists.md): Delete up to 50 lists in a single request. All `list_ids` must belong to the authenticated team. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Bulk detach contacts from lists](https://docs.lettr.com/api-reference/audience/bulk-detach-contacts-from-lists.md): Detach every combination of `contact_ids × list_ids` (up to 1000 contacts × 50 lists). Pairs that were not attached are reported in `not_present`. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Create a contact](https://docs.lettr.com/api-reference/audience/create-a-contact.md): Create a single contact. If `double_opt_in` is provided the contact is created in `unverified` status and receives a confirmation email — they become `subscribed` only after clicking the confirmation link. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Create a property](https://docs.lettr.com/api-reference/audience/create-a-property.md): Create a new property that contacts can store. The `name` and `type` fields are immutable after creation — to change them, delete the property and create a new one. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Create a segment](https://docs.lettr.com/api-reference/audience/create-a-segment.md): Create a segment defined by condition groups (conditions within a group are joined by OR; groups are joined by AND). Requires the `audience:write` scope and is blocked for sandbox API keys. - [Create a topic](https://docs.lettr.com/api-reference/audience/create-a-topic.md): Create a topic. The `default_subscription` field is set at creation and cannot be changed later. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Create an audience list](https://docs.lettr.com/api-reference/audience/create-an-audience-list.md): Create a new audience list. The name must be unique within the team. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Delete a contact](https://docs.lettr.com/api-reference/audience/delete-a-contact.md): Permanently delete a contact. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Delete a property](https://docs.lettr.com/api-reference/audience/delete-a-property.md): Permanently delete a property. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Delete a segment](https://docs.lettr.com/api-reference/audience/delete-a-segment.md): Permanently delete a segment. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Delete a topic](https://docs.lettr.com/api-reference/audience/delete-a-topic.md): Permanently delete a topic. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Delete an audience list](https://docs.lettr.com/api-reference/audience/delete-an-audience-list.md): Permanently delete an audience list. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Detach contact from list](https://docs.lettr.com/api-reference/audience/detach-contact-from-list.md): Remove a contact from a list. Idempotent — returns `204` whether the pair existed or not. Requires the `audience:write` scope and is blocked for sandbox API keys. - [List audience contacts](https://docs.lettr.com/api-reference/audience/list-audience-contacts.md): List contacts with pagination and filtering. Requires the `audience:read` scope. - [List audience lists](https://docs.lettr.com/api-reference/audience/list-audience-lists.md): Returns all audience lists for the authenticated team. Requires the `audience:read` scope. - [List audience properties](https://docs.lettr.com/api-reference/audience/list-audience-properties.md): List the team's custom contact properties. Requires the `audience:read` scope. - [List audience segments](https://docs.lettr.com/api-reference/audience/list-audience-segments.md): List segments with pagination. Requires the `audience:read` scope. - [List audience topics](https://docs.lettr.com/api-reference/audience/list-audience-topics.md): List topics with pagination. Requires the `audience:read` scope. - [Show a contact](https://docs.lettr.com/api-reference/audience/show-a-contact.md): Retrieve a single contact. Requires the `audience:read` scope. - [Show a property](https://docs.lettr.com/api-reference/audience/show-a-property.md): Retrieve a single property. Requires the `audience:read` scope. - [Show a segment](https://docs.lettr.com/api-reference/audience/show-a-segment.md): Retrieve a single segment. Requires the `audience:read` scope. - [Show a topic](https://docs.lettr.com/api-reference/audience/show-a-topic.md): Retrieve a single topic. Requires the `audience:read` scope. - [Show an audience list](https://docs.lettr.com/api-reference/audience/show-an-audience-list.md): Retrieve a single audience list. Requires the `audience:read` scope. - [Subscribe contact to topic](https://docs.lettr.com/api-reference/audience/subscribe-contact-to-topic.md): Subscribe a contact to a topic. Returns `201` if the subscription is new, or `200` if the contact was already subscribed. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Unsubscribe contact from topic](https://docs.lettr.com/api-reference/audience/unsubscribe-contact-from-topic.md): Unsubscribe a contact from a topic. Idempotent — returns `204` whether the subscription existed or not. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Update a contact](https://docs.lettr.com/api-reference/audience/update-a-contact.md): Partially update a contact. If no fields are provided the contact is returned unchanged. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Update a property](https://docs.lettr.com/api-reference/audience/update-a-property.md): Update the property's fallback value. The `name` and `type` fields cannot be changed (they would orphan data on existing contacts). If the request body contains no recognized fields, the property is returned unchanged with a `200` response. Requires the `audience:write` scope and is blocked for sand… - [Update a segment](https://docs.lettr.com/api-reference/audience/update-a-segment.md): Partially update a segment. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Update a topic](https://docs.lettr.com/api-reference/audience/update-a-topic.md): Partially update a topic. The `default_subscription` field is immutable. Requires the `audience:write` scope and is blocked for sandbox API keys. - [Update an audience list](https://docs.lettr.com/api-reference/audience/update-an-audience-list.md): Partially update an audience list. If no fields are provided the existing list is returned unchanged. Requires the `audience:write` scope and is blocked for sandbox API keys. - [List campaign engagement events](https://docs.lettr.com/api-reference/campaigns/list-campaign-engagement-events.md): Returns engagement events (opens, clicks, bounces, etc.) for a campaign, with optional filtering by type, recipient email, and date range. Uses cursor-based pagination: keep requesting with the returned `next_cursor` until it is `null`. When a filter is applied, a page may come back with an empty `e… - [List campaigns](https://docs.lettr.com/api-reference/campaigns/list-campaigns.md): Returns a paginated list of campaigns for the authenticated team, each with embedded engagement stats. Requires the `campaigns:read` scope. - [Schedule a campaign](https://docs.lettr.com/api-reference/campaigns/schedule-a-campaign.md): Schedules a campaign for future delivery, or reschedules an already-scheduled campaign to a new time. The campaign transitions to (or stays) `scheduled` and is dispatched automatically at the given time. Requires the `campaigns:write` scope. Not available to sandbox keys. - [Send a campaign now](https://docs.lettr.com/api-reference/campaigns/send-a-campaign-now.md): Immediately dispatches a draft campaign. The campaign must be a draft with a subject, sender email, and content. Sending is asynchronous; the campaign transitions to `preparing`. Requires the `campaigns:write` scope. Not available to sandbox keys. - [Show a campaign](https://docs.lettr.com/api-reference/campaigns/show-a-campaign.md): Retrieve a single campaign with embedded stats and rendered HTML content. Requires the `campaigns:read` scope. - [Unschedule a campaign](https://docs.lettr.com/api-reference/campaigns/unschedule-a-campaign.md): Cancels a scheduled send, returning the campaign to `draft`. The campaign must currently be `scheduled`. Requires the `campaigns:write` scope. Not available to sandbox keys. - [Create Domain](https://docs.lettr.com/api-reference/domains/create-domain.md): Register a new sending domain with your account. The domain will be created with SparkPost and stored as approved by default, unless global domain reputation marks it for review or blacklist. - [Delete Domain](https://docs.lettr.com/api-reference/domains/delete-domain.md): Delete a sending domain. This removes the domain from both SparkPost and the Lettr system. The domain will no longer be available for sending emails. - [Get Domain](https://docs.lettr.com/api-reference/domains/get-domain.md): Retrieve details of a single sending domain including DNS records and tracking domain configuration. - [List Domains](https://docs.lettr.com/api-reference/domains/list-domains.md): Retrieve all sending domains registered with your account. Returns domains with their current status, verification state, and timestamps. - [Verify Domain](https://docs.lettr.com/api-reference/domains/verify-domain.md): Verify a domain's DNS records (DKIM and CNAME) with SparkPost. This triggers a verification check and returns the current status of DNS records. - [Cancel Scheduled Email](https://docs.lettr.com/api-reference/emails/cancel-scheduled-email.md): Cancel a scheduled email transmission before it is sent. Once the scheduled delivery time has passed, the transmission can no longer be cancelled. - [Get Email Detail](https://docs.lettr.com/api-reference/emails/get-email-detail.md): Retrieve all events for a specific sent email by its request ID. Returns delivery, bounce, open, click, and other events in reverse chronological order. If no `from` date is provided, defaults to the last 10 days. - [Get Scheduled Email](https://docs.lettr.com/api-reference/emails/get-scheduled-email.md): Retrieve details of a scheduled email transmission by its transmission ID. If the transmission is still pending, returns the scheduled state. If the transmission has already been processed by SparkPost, automatically falls back to returning delivery events with the same response shape. - [List Email Events](https://docs.lettr.com/api-reference/emails/list-email-events.md): Retrieve email events (deliveries, bounces, opens, clicks, etc.) for your account. Events are returned in reverse chronological order. If no `from` date is provided, defaults to the last 10 days. - [Schedule Email](https://docs.lettr.com/api-reference/emails/schedule-email.md): Schedule a transactional email for future delivery. Accepts the same payload as `POST /emails` with an additional required `scheduled_at` field. The email must be scheduled at least 5 minutes in the future and within 3 days. - [Send Email](https://docs.lettr.com/api-reference/emails/send-email.md): Send a transactional email with optional attachments, tracking, and personalization. At least one of `html` or `text` content must be provided. - [Introduction](https://docs.lettr.com/api-reference/introduction.md): Complete API reference for Lettr - [Rate Limit](https://docs.lettr.com/api-reference/rate-limit.md): Learn about API rate limits, sending quotas, and the response headers that track your usage - [Auth Check](https://docs.lettr.com/api-reference/system/auth-check.md): Validate the provided API key and return associated team information. Use this endpoint to verify API key validity in client libraries. - [Health Check](https://docs.lettr.com/api-reference/system/health-check.md): Check the health status of the API. This endpoint does not require authentication. - [Create Template](https://docs.lettr.com/api-reference/templates/create-template.md): Create a new email template with HTML or Topol editor JSON content. Automatically creates and publishes a template version with extracted merge tags. - [Delete Template](https://docs.lettr.com/api-reference/templates/delete-template.md): Permanently delete an email template and all its versions. If `project_id` is not provided, the template will be looked up in the team's default project. - [Get Merge Tags](https://docs.lettr.com/api-reference/templates/get-merge-tags.md): Retrieve the merge tags (variables) for a template version. By default, returns merge tags for the active version. Use the `version` parameter to get merge tags for a specific version. - [Get Template](https://docs.lettr.com/api-reference/templates/get-template.md): Retrieve a single email template by its slug. If `project_id` is not provided, the template will be looked up in the team's default project. - [List Templates](https://docs.lettr.com/api-reference/templates/list-templates.md): Retrieve a paginated list of email templates for a project. If `project_id` is not provided, templates from the team's default project will be returned. - [Update Template](https://docs.lettr.com/api-reference/templates/update-template.md): Update an existing email template's name and/or content. If content (html or json) is provided, a new active version will be created with extracted merge tags. If `project_id` is not provided, the template will be looked up in the team's default project. - [Create Webhook](https://docs.lettr.com/api-reference/webhooks/create-webhook.md): Create a new webhook to receive event notifications at the specified URL. - [Delete Webhook](https://docs.lettr.com/api-reference/webhooks/delete-webhook.md): Delete a webhook. This removes the webhook from SparkPost and it will no longer receive event notifications. - [Get Webhook](https://docs.lettr.com/api-reference/webhooks/get-webhook.md): Retrieve details of a single webhook including its status, event types, and delivery information. - [List Webhooks](https://docs.lettr.com/api-reference/webhooks/list-webhooks.md): Retrieve all webhooks configured for your account. Returns webhooks with their current status, event types, and delivery information. - [Update Webhook](https://docs.lettr.com/api-reference/webhooks/update-webhook.md): Update an existing webhook. Only the fields provided will be updated (partial update). You can change the name, target URL, authentication, events, or active status. - [Introduction](https://docs.lettr.com/integrations/introduction.md): Connect Lettr with your favorite tools and platforms - [Stripe](https://docs.lettr.com/integrations/stripe.md): Send emails and templates to customers directly from Stripe - [Supabase](https://docs.lettr.com/integrations/supabase.md): Send and track emails from Supabase using Lettr - [WordPress](https://docs.lettr.com/integrations/wordpress.md): Send all WordPress emails through Lettr with a single plugin - [Zapier](https://docs.lettr.com/integrations/zapier.md): Automate email sending with 8,000+ apps using Lettr and Zapier - [Introduction](https://docs.lettr.com/introduction.md): Lettr is the email API for developers - [Batch and Bulk Sending](https://docs.lettr.com/knowledge-base/best-practices/batch-bulk-sending.md): Best practices for high-volume email sending including batching, rate management, and recipient grouping - [Dark Mode Email Design](https://docs.lettr.com/knowledge-base/best-practices/dark-mode-design.md): Design emails that look great in both light and dark mode with defensive CSS strategies and testing techniques - [Deliverability Best Practices](https://docs.lettr.com/knowledge-base/best-practices/deliverability.md): Maximize email deliverability and inbox placement - [Email Accessibility](https://docs.lettr.com/knowledge-base/best-practices/email-accessibility.md): Make your emails accessible to all recipients with alt text, semantic HTML, color contrast, and screen reader best practices - [Email Editor Best Practices](https://docs.lettr.com/knowledge-base/best-practices/email-editor-best-practices.md): A comprehensive best practices guide for new Topol Email editor users. - [IP and Domain Warm-Up Guide](https://docs.lettr.com/knowledge-base/best-practices/ip-domain-warmup.md): Detailed warm-up schedules and strategies for establishing sender reputation on new domains and IPs - [List Hygiene](https://docs.lettr.com/knowledge-base/best-practices/list-hygiene.md): Maintain healthy recipient lists for optimal email deliverability - [Personalization and Dynamic Content](https://docs.lettr.com/knowledge-base/best-practices/personalization-dynamic-content.md): Use merge tags, conditional blocks, and dynamic sections to create personalized, relevant emails - [Security Best Practices](https://docs.lettr.com/knowledge-base/best-practices/security.md): Protect your Lettr account, API keys, and email data from unauthorized access - [Sending Reputation](https://docs.lettr.com/knowledge-base/best-practices/sending-reputation.md): Build and protect your sender reputation to maximize inbox placement - [Sending via SMTP vs API](https://docs.lettr.com/knowledge-base/best-practices/smtp-vs-api.md): Choose between SMTP relay and REST API for sending email, with performance comparisons and migration guidance - [Transactional vs Marketing Email](https://docs.lettr.com/knowledge-base/best-practices/transactional-vs-marketing.md): Understand the differences between transactional and marketing email, why separating them matters, and how to manage both in Lettr - [Acceptable Use Policy for Email](https://docs.lettr.com/knowledge-base/compliance/acceptable-use-policy.md): What you can and cannot send through Lettr, prohibited content, and anti-abuse measures - [CAN-SPAM Requirements](https://docs.lettr.com/knowledge-base/compliance/can-spam.md): What the CAN-SPAM Act requires for commercial email and how to comply - [CASL (Canadian Anti-Spam Law)](https://docs.lettr.com/knowledge-base/compliance/casl.md): Requirements of Canada's Anti-Spam Legislation, consent types, and how CASL differs from CAN-SPAM and GDPR - [Data Privacy in Email Metadata](https://docs.lettr.com/knowledge-base/compliance/data-privacy-metadata.md): What data is stored when sending emails and how to protect sensitive information - [Data Retention and Deletion](https://docs.lettr.com/knowledge-base/compliance/data-retention.md): How long Lettr retains email data, logs, and metadata, and how to handle deletion requests - [Email Consent Best Practices](https://docs.lettr.com/knowledge-base/compliance/email-consent.md): How to obtain, record, and manage email consent for compliance with GDPR, CASL, and other regulations - [GDPR and Email Sending](https://docs.lettr.com/knowledge-base/compliance/gdpr-email.md): How GDPR affects email practices, consent requirements, and handling EU recipient data - [Google & Yahoo Sender Requirements](https://docs.lettr.com/knowledge-base/compliance/google-yahoo-requirements.md): Summary of bulk sender requirements from Google and Yahoo enforced since 2024 - [Unsubscribe Best Practices](https://docs.lettr.com/knowledge-base/compliance/unsubscribe-best-practices.md): Implementing effective unsubscribe mechanisms for compliance and deliverability - [Dedicated vs Shared IPs](https://docs.lettr.com/knowledge-base/concepts/dedicated-vs-shared-ips.md): Understand the differences between dedicated and shared IP addresses for email sending, when each is appropriate, and how IP warm-up works - [What Is Email Deliverability?](https://docs.lettr.com/knowledge-base/concepts/email-deliverability.md): Understand what email deliverability means, how it differs from delivery, and the factors that determine whether your emails reach the inbox - [What Is an Email Service Provider (ESP)?](https://docs.lettr.com/knowledge-base/concepts/email-service-provider.md): Understand the role of an email service provider, how it differs from an ISP, and why sending email through a dedicated provider like Lettr is better than sending directly from your server - [What Are Feedback Loops?](https://docs.lettr.com/knowledge-base/concepts/feedback-loops.md): How mailbox providers report spam complaints back to senders and how Lettr processes feedback loop data to protect your reputation - [What Is Transactional Email?](https://docs.lettr.com/knowledge-base/concepts/transactional-email.md): Learn what transactional email is, how it differs from marketing email, and why it requires a different approach to sending and deliverability - [AWS Route 53](https://docs.lettr.com/knowledge-base/dns-guides/aws-route53.md): Step-by-step guide to configuring DNS records for Lettr on AWS Route 53. - [Azure DNS](https://docs.lettr.com/knowledge-base/dns-guides/azure-dns.md): Step-by-step guide to configuring DNS records for Lettr on Azure DNS. - [Cloudflare](https://docs.lettr.com/knowledge-base/dns-guides/cloudflare.md): Step-by-step guide to configuring DNS records for Lettr on Cloudflare. - [DigitalOcean](https://docs.lettr.com/knowledge-base/dns-guides/digitalocean.md): Step-by-step guide to configuring DNS records for Lettr on DigitalOcean. - [DreamHost](https://docs.lettr.com/knowledge-base/dns-guides/dreamhost.md): Step-by-step guide to configuring DNS records for Lettr on DreamHost. - [Dynadot](https://docs.lettr.com/knowledge-base/dns-guides/dynadot.md): Step-by-step guide to configuring DNS records for Lettr on Dynadot. - [Gandi](https://docs.lettr.com/knowledge-base/dns-guides/gandi.md): Step-by-step guide to configuring DNS records for Lettr on Gandi. - [GoDaddy](https://docs.lettr.com/knowledge-base/dns-guides/godaddy.md): Step-by-step guide to configuring DNS records for Lettr on GoDaddy. - [Google Cloud DNS](https://docs.lettr.com/knowledge-base/dns-guides/google-cloud-dns.md): Step-by-step guide to configuring DNS records for Lettr on Google Cloud DNS. - [Hetzner](https://docs.lettr.com/knowledge-base/dns-guides/hetzner.md): Step-by-step guide to configuring DNS records for Lettr on Hetzner. - [Hostinger](https://docs.lettr.com/knowledge-base/dns-guides/hostinger.md): Step-by-step guide to configuring DNS records for Lettr on Hostinger. - [IONOS](https://docs.lettr.com/knowledge-base/dns-guides/ionos.md): Step-by-step guide to configuring DNS records for Lettr on IONOS. - [Linode](https://docs.lettr.com/knowledge-base/dns-guides/linode.md): Step-by-step guide to configuring DNS records for Lettr on Linode DNS Manager. - [Namecheap](https://docs.lettr.com/knowledge-base/dns-guides/namecheap.md): Step-by-step guide to configuring DNS records for Lettr on Namecheap. - [Netlify](https://docs.lettr.com/knowledge-base/dns-guides/netlify.md): Step-by-step guide to configuring DNS records for Lettr on Netlify. - [Porkbun](https://docs.lettr.com/knowledge-base/dns-guides/porkbun.md): Step-by-step guide to configuring DNS records for Lettr on Porkbun. - [Squarespace](https://docs.lettr.com/knowledge-base/dns-guides/squarespace.md): Step-by-step guide to configuring DNS records for Lettr on Squarespace. - [Strato](https://docs.lettr.com/knowledge-base/dns-guides/strato.md): Step-by-step guide to configuring DNS records for Lettr on Strato. - [Vercel](https://docs.lettr.com/knowledge-base/dns-guides/vercel.md): Step-by-step guide to configuring DNS records for Lettr on Vercel. - [BIMI: Brand Indicators for Message Identification](https://docs.lettr.com/knowledge-base/fundamentals/bimi.md): How to display your brand logo in recipient inboxes using BIMI and VMC certificates - [Bounce Codes Reference](https://docs.lettr.com/knowledge-base/fundamentals/bounce-codes-reference.md): Comprehensive reference of SMTP response codes with explanations and recommended actions - [Email Content Types: HTML, Plain Text, and AMP](https://docs.lettr.com/knowledge-base/fundamentals/content-types.md): When to use each content type and how email clients render them - [Custom Return-Path and MAIL FROM](https://docs.lettr.com/knowledge-base/fundamentals/custom-return-path.md): What the Return-Path header does, how custom MAIL FROM domains improve authentication alignment - [Email Address Anatomy](https://docs.lettr.com/knowledge-base/fundamentals/email-address-anatomy.md): Understanding the parts of an email address — local part, domain, display name, plus addressing, and case sensitivity - [Email Headers Explained](https://docs.lettr.com/knowledge-base/fundamentals/email-headers.md): What common email headers mean and how they affect delivery and display - [Email Rendering Across Clients](https://docs.lettr.com/knowledge-base/fundamentals/email-rendering-clients.md): How Gmail, Outlook, Apple Mail, and other email clients render HTML email differently - [How Email Delivery Works](https://docs.lettr.com/knowledge-base/fundamentals/how-email-delivery-works.md): End-to-end overview of what happens when you send an email - [SMTP Protocol Basics](https://docs.lettr.com/knowledge-base/fundamentals/smtp-protocol-basics.md): How the Simple Mail Transfer Protocol works, common ports, encryption, and the SMTP conversation - [Understanding SPF, DKIM, and DMARC](https://docs.lettr.com/knowledge-base/fundamentals/spf-dkim-dmarc.md): How email authentication protocols work together to protect your domain - [Subdomain vs Root Domain for Sending](https://docs.lettr.com/knowledge-base/fundamentals/subdomain-vs-root.md): Trade-offs of sending from a subdomain versus the root domain and how each affects reputation - [Understanding Suppression Lists](https://docs.lettr.com/knowledge-base/fundamentals/suppression-lists.md): What suppression lists are, why they exist, and how addresses get added - [Email Glossary](https://docs.lettr.com/knowledge-base/glossary/email-glossary.md): A–Z reference of email industry terms, protocols, and concepts - [Introduction](https://docs.lettr.com/knowledge-base/introduction.md): Guides, troubleshooting, and best practices for email sending with Lettr - [Authentication Issues](https://docs.lettr.com/knowledge-base/troubleshooting/authentication.md): Troubleshoot API key and authentication problems with the Lettr API - [Bounce Diagnosis](https://docs.lettr.com/knowledge-base/troubleshooting/bounce-diagnosis.md): Interpret bounce codes and categories to take the right action for each delivery failure - [Troubleshooting Delivery Issues](https://docs.lettr.com/knowledge-base/troubleshooting/delivery-issues.md): Diagnose and resolve common email delivery problems with Lettr. - [Domain Verification Failures](https://docs.lettr.com/knowledge-base/troubleshooting/domain-verification.md): Troubleshoot DNS propagation and configuration issues when verifying domains in Lettr - [Gmail-Specific Delivery Issues](https://docs.lettr.com/knowledge-base/troubleshooting/gmail-delivery.md): Diagnose and fix deliverability problems specific to Gmail, including Promotions tab placement, Google Postmaster Tools setup, and common Gmail blocks. - [Outlook / Microsoft 365 Delivery Issues](https://docs.lettr.com/knowledge-base/troubleshooting/outlook-delivery.md): Diagnose and fix deliverability problems specific to Outlook.com, Hotmail, and Microsoft 365, including SNDS, SmartScreen filtering, and common Outlook blocks. - [Rate Limits](https://docs.lettr.com/knowledge-base/troubleshooting/rate-limits.md): Understand and troubleshoot API rate limits, monthly quotas, and sending thresholds - [Email Content Rendering Issues](https://docs.lettr.com/knowledge-base/troubleshooting/rendering-issues.md): Diagnose and fix broken layouts, missing images, font fallbacks, and clipped messages across email clients. - [Sandbox and Testing Mode](https://docs.lettr.com/knowledge-base/troubleshooting/sandbox-testing.md): How to test email sending without delivering to real recipients, use test API keys, and verify your integration before going to production. - [Emails Landing in Spam](https://docs.lettr.com/knowledge-base/troubleshooting/spam-placement.md): Step-by-step diagnosis and fixes when your emails reach the spam folder instead of the inbox. - [Open & Click Tracking Accuracy](https://docs.lettr.com/knowledge-base/troubleshooting/tracking-accuracy.md): Why engagement metrics may not reflect reality and how to interpret open and click data correctly. - [Webhook Delivery Failures](https://docs.lettr.com/knowledge-base/troubleshooting/webhook-failures.md): Diagnose and fix webhook delivery issues, including retry logic, timeout handling, debugging failed deliveries, and signature verification. - [Invoice and Billing Emails](https://docs.lettr.com/knowledge-base/use-cases/invoice-billing-emails.md): Legal requirements, formatting, attachment handling, compliance considerations, and implementation patterns for invoice and billing emails - [Order Confirmation Emails](https://docs.lettr.com/knowledge-base/use-cases/order-confirmation-emails.md): Structure, required information, delivery timing, and template design for e-commerce order confirmation emails - [Password Reset Emails](https://docs.lettr.com/knowledge-base/use-cases/password-reset-emails.md): Best practices for secure, deliverable password reset emails — timing, token expiry, content, and implementation - [Two-Factor Authentication Emails](https://docs.lettr.com/knowledge-base/use-cases/two-factor-authentication-emails.md): OTP delivery best practices, delivery speed requirements, security considerations, and implementation patterns for 2FA emails - [Welcome and Onboarding Emails](https://docs.lettr.com/knowledge-base/use-cases/welcome-onboarding-emails.md): Sequence design, timing, content strategy, and transactional vs marketing classification for welcome and onboarding emails - [Filtering and Breakdowns](https://docs.lettr.com/learn/analytics/filtering-and-breakdowns.md): How to use the Configure modal to select metrics, apply filters, and set up breakdowns - [Analytics](https://docs.lettr.com/learn/analytics/introduction.md): Visualize email performance metrics and trends over time - [Reading the Dashboard](https://docs.lettr.com/learn/analytics/reading-the-dashboard.md): How to interpret the Analytics chart, summary footer, and breakdown table - [API Keys Introduction](https://docs.lettr.com/learn/api-keys/introduction.md): Create and manage API keys to authenticate your requests to the Lettr API - [Permissions](https://docs.lettr.com/learn/api-keys/permissions.md): Configure API key permissions to control access to Lettr API resources - [Sandbox API Keys](https://docs.lettr.com/learn/api-keys/sandbox.md): Test your email integration safely with sandbox API keys that redirect all emails to your own inbox - [Contacts](https://docs.lettr.com/learn/audience/contacts.md): Manage individual contacts, their statuses, custom properties, and activity history - [Double Opt-In](https://docs.lettr.com/learn/audience/double-opt-in.md): Confirm new signups by email before they enter your audience - [Importing & Exporting](https://docs.lettr.com/learn/audience/importing-and-exporting.md): Bulk-load contacts from CSV and export your audience to a file - [Audience](https://docs.lettr.com/learn/audience/introduction.md): Build and organize the people you send campaigns to - [Lists](https://docs.lettr.com/learn/audience/lists.md): Organize your contacts into static, named groups - [Segments](https://docs.lettr.com/learn/audience/segments.md): Build dynamic contact groups defined by conditions, with help from AI - [Topics](https://docs.lettr.com/learn/audience/topics.md): Let contacts manage their subscription preferences at a finer grain than a single opt-out - [Analytics & Reporting](https://docs.lettr.com/learn/campaigns/analytics-and-reporting.md): Track campaign engagement: opens, clicks, bounces, unsubscribes, and per-recipient activity - [Audience Selection](https://docs.lettr.com/learn/campaigns/audience-selection.md): Choose who receives a campaign — all contacts, specific lists, or segments - [Content & Design](https://docs.lettr.com/learn/campaigns/content-and-design.md): Build campaign email content with the visual editor, raw HTML, or templates — and personalize it for each recipient - [Creating a Campaign](https://docs.lettr.com/learn/campaigns/creating-a-campaign.md): Start a new campaign and walk through the 4-step builder - [Campaigns](https://docs.lettr.com/learn/campaigns/introduction.md): Send marketing emails to your audience as one-time bulk sends - [Sending & Scheduling](https://docs.lettr.com/learn/campaigns/sending-and-scheduling.md): Send campaigns immediately or schedule them for a future date, and understand each step of the send lifecycle - [Domain Approval Process](https://docs.lettr.com/learn/domains/approval.md): How Lettr evaluates and approves domains for email sending - [BIMI](https://docs.lettr.com/learn/domains/bimi.md): Display your brand logo next to emails in supported email clients - [DKIM Records](https://docs.lettr.com/learn/domains/dkim.md): Configure DKIM to cryptographically sign your emails - [DMARC](https://docs.lettr.com/learn/domains/dmarc.md): Configure DMARC policies to protect your domain from email spoofing - [Domain Connect](https://docs.lettr.com/learn/domains/domain-connect.md): Automatically configure DNS records for your Lettr domains using Domain Connect - [Inbound Domains](https://docs.lettr.com/learn/domains/inbound-domains.md): Configure domains to receive emails with MX record setup - [Domains Introduction](https://docs.lettr.com/learn/domains/introduction.md): Configure and verify domains for sending, receiving, and tracking emails with Lettr - [Sending Domains](https://docs.lettr.com/learn/domains/sending-domains.md): Configure and verify domains for sending emails with SPF, DKIM, and DMARC authentication - [SPF Records](https://docs.lettr.com/learn/domains/spf.md): Configure SPF to authorize Lettr to send emails on your behalf - [Storage Domains](https://docs.lettr.com/learn/domains/storage-domains.md): Configure custom domains for hosting email assets, images, and content - [Tracking Domains](https://docs.lettr.com/learn/domains/tracking-domains.md): Set up custom domains for click and open tracking with automatic SSL certificates - [Event Types](https://docs.lettr.com/learn/events/event-types.md): A reference of every event type shown in the Events dashboard - [Events](https://docs.lettr.com/learn/events/introduction.md): Monitor the delivery lifecycle and engagement of every email you send - [Message Details](https://docs.lettr.com/learn/events/message-details.md): How to read the per-message event timeline in the Events dashboard - [Filtering and Searching](https://docs.lettr.com/learn/logs/filtering-and-searching.md): How to find the API requests you're looking for in the Logs dashboard - [API Logs](https://docs.lettr.com/learn/logs/introduction.md): View and troubleshoot API requests in the Lettr Dashboard - [Status Codes](https://docs.lettr.com/learn/logs/status-codes.md): HTTP status codes returned by the Lettr API and how to interpret them - [MCP](https://docs.lettr.com/learn/mcp/introduction.md): Connect AI assistants to Lettr using the Model Context Protocol - [Local Server](https://docs.lettr.com/learn/mcp/local-setup.md): Run the Lettr MCP server locally with an API key for Claude Code, Cursor, and Claude Desktop - [Remote Server](https://docs.lettr.com/learn/mcp/setup.md): Connect AI assistants to Lettr's hosted MCP server using OAuth - [Tools Reference](https://docs.lettr.com/learn/mcp/tools-reference.md): Complete reference for all Lettr MCP tools across remote and local servers - [Attachments](https://docs.lettr.com/learn/receiving/attachments.md): Handle file attachments in incoming emails - [Best Practices](https://docs.lettr.com/learn/receiving/best-practices.md): Best practices for receiving and processing inbound emails - [Receiving Introduction](https://docs.lettr.com/learn/receiving/introduction.md): Receive and process incoming emails programmatically with Lettr - [Email Parsing](https://docs.lettr.com/learn/receiving/parsing.md): Understand how Lettr parses incoming emails - [Reply Tracking](https://docs.lettr.com/learn/receiving/reply-tracking.md): Track and thread email replies with original messages - [Routing](https://docs.lettr.com/learn/receiving/routing.md): Route incoming emails to different handlers based on recipient, content, or rules - [Inbound Sandbox](https://docs.lettr.com/learn/receiving/sandbox.md): Test inbound email processing with a dedicated sandbox inbox - [Security](https://docs.lettr.com/learn/receiving/security.md): Secure your inbound email processing - [Setup](https://docs.lettr.com/learn/receiving/setup.md): Configure your domain to receive emails with Lettr - [Spam Filtering](https://docs.lettr.com/learn/receiving/spam-filtering.md): Filter and manage spam in incoming emails - [Attachments](https://docs.lettr.com/learn/sending/attachments.md): Add file attachments to your emails - [Batch Sending](https://docs.lettr.com/learn/sending/batch-sending.md): Send emails to multiple recipients efficiently - [Best Practices](https://docs.lettr.com/learn/sending/best-practices.md): Email sending best practices for deliverability and reliability - [Content Types](https://docs.lettr.com/learn/sending/content-types.md): Create emails with HTML, plain text, and AMP content - [Email History](https://docs.lettr.com/learn/sending/email-history.md): Query and retrieve details about sent emails via the API - [Errors & Retries](https://docs.lettr.com/learn/sending/errors-retries.md): Handle errors and implement retry logic - [Idempotency](https://docs.lettr.com/learn/sending/idempotency.md): Prevent duplicate emails with request tracking - [Sending Introduction](https://docs.lettr.com/learn/sending/introduction.md): Learn how to send emails with Lettr - [Metadata](https://docs.lettr.com/learn/sending/metadata.md): Add custom metadata to track and organize emails - [Recipients](https://docs.lettr.com/learn/sending/recipients.md): Configure email recipients including To, CC, BCC, and Reply-To - [Tags](https://docs.lettr.com/learn/sending/tags.md): Group and analyze emails with a single string tag - [Test Emails](https://docs.lettr.com/learn/sending/test-emails.md): Send test emails during development and QA - [Tracking](https://docs.lettr.com/learn/sending/tracking.md): Configure open and click tracking for your emails - [Email Usage & Quotas](https://docs.lettr.com/learn/sending/usage-quotas.md): Understand how email quotas work, how usage is tracked, and what happens when you reach your limits - [Monitoring & Alerts](https://docs.lettr.com/learn/settings/alerts.md): Set up alerts for API failure rate monitoring - [Billing](https://docs.lettr.com/learn/settings/billing.md): Plans and pricing for transactional email and marketing, invoices, overage, and subscription management - [Dashboard](https://docs.lettr.com/learn/settings/dashboard.md): Your central overview of email activity, domain health, and getting started checklist - [Onboarding](https://docs.lettr.com/learn/settings/onboarding.md): Complete the onboarding wizard to set up your team - [Profile & Appearance](https://docs.lettr.com/learn/settings/profile.md): Manage your personal profile and appearance settings - [Account Security](https://docs.lettr.com/learn/settings/security.md): Set up two-factor authentication, manage recovery codes, and secure your account - [Social Login (OAuth)](https://docs.lettr.com/learn/settings/social-login.md): Sign in to Lettr with your GitHub or Google account - [Teams](https://docs.lettr.com/learn/settings/teams.md): Manage team members, roles, and security settings - [Bounces](https://docs.lettr.com/learn/suppressions/bounces.md): Understanding bounce types, categories, and how to handle them - [Complaints & Unsubscribes](https://docs.lettr.com/learn/suppressions/complaints-unsubscribes.md): Handle spam complaints and unsubscribe requests to maintain deliverability - [Introduction](https://docs.lettr.com/learn/suppressions/introduction.md): Protect your sender reputation by managing suppressed email addresses - [Editor Settings](https://docs.lettr.com/learn/templates/editor-settings.md): Configure the visual editor's defaults — custom fonts, colors, merge tags, and testing emails - [Image Storage](https://docs.lettr.com/learn/templates/image-storage.md): Manage images and files used in your email templates - [Templates Introduction](https://docs.lettr.com/learn/templates/introduction.md): Create, manage, and organize email templates in Lettr - [Loop Blocks](https://docs.lettr.com/learn/templates/loop-blocks.md): Display repeating content in email templates using the visual Loop Block editor element - [Premade Templates](https://docs.lettr.com/learn/templates/premade-templates.md): Browse and use pre-built email templates as starting points for your designs - [Projects & Folders](https://docs.lettr.com/learn/templates/projects.md): Organize your email templates with projects and folders - [Saved Blocks](https://docs.lettr.com/learn/templates/saved-blocks.md): Create reusable email sections and synced content blocks - [Template Language](https://docs.lettr.com/learn/templates/template-language.md): Use merge tags to personalize emails with variables, conditionals, loops, and dynamic content - [Topol Email Editor](https://docs.lettr.com/learn/templates/topol-editor.md): Create professional email templates with the drag-and-drop visual editor - [Template Versions](https://docs.lettr.com/learn/templates/versions.md): Manage multiple versions of email templates with publishing control - [Authorization](https://docs.lettr.com/learn/webhooks/authorization.md): Secure your webhook endpoints with authentication - [Event Types](https://docs.lettr.com/learn/webhooks/event-types.md): Complete reference of all webhook event types - [Handling Webhooks](https://docs.lettr.com/learn/webhooks/handling.md): Best practices for processing webhooks reliably - [Webhooks](https://docs.lettr.com/learn/webhooks/introduction.md): Receive real-time notifications about email events - [Retries](https://docs.lettr.com/learn/webhooks/retries.md): Understand webhook retry behavior and delivery guarantees - [Testing Webhooks](https://docs.lettr.com/learn/webhooks/testing.md): Test webhooks in development and production environments - [Advanced](https://docs.lettr.com/quickstart/go/advanced.md): Advanced features and patterns for the Lettr Go SDK - [Audience](https://docs.lettr.com/quickstart/go/audience.md): Manage lists, contacts, topics, properties, and segments with the Go SDK - [Campaigns](https://docs.lettr.com/quickstart/go/campaigns.md): List, inspect, send, and schedule campaigns with the Go SDK - [Managing Domains](https://docs.lettr.com/quickstart/go/domains.md): List, add, verify, and delete sending domains with the Go SDK - [Getting Started](https://docs.lettr.com/quickstart/go/quickstart.md): Get started sending emails with the Lettr Go SDK - [Templates](https://docs.lettr.com/quickstart/go/templates.md): Manage Lettr templates with the Go SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/go/webhooks.md): List, create, update, and delete webhooks with the Go SDK - [Advanced](https://docs.lettr.com/quickstart/java/advanced.md): Advanced features and patterns for the Lettr Java SDK - [Audience](https://docs.lettr.com/quickstart/java/audience.md): Manage lists, contacts, topics, properties, and segments with the Java SDK - [Campaigns](https://docs.lettr.com/quickstart/java/campaigns.md): List, inspect, send, and schedule campaigns with the Java SDK - [Managing Domains](https://docs.lettr.com/quickstart/java/domains.md): List, add, verify, and delete sending domains with the Java SDK - [Getting Started](https://docs.lettr.com/quickstart/java/quickstart.md): Send transactional emails from Java using the Lettr SDK - [Templates](https://docs.lettr.com/quickstart/java/templates.md): Manage Lettr templates with the Java SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/java/webhooks.md): List, create, update, and delete webhooks with the Java SDK - [Audience](https://docs.lettr.com/quickstart/laravel/audience.md): Manage lists, contacts, topics, properties, and segments from Laravel - [Campaigns](https://docs.lettr.com/quickstart/laravel/campaigns.md): List, inspect, send, and schedule campaigns from Laravel - [Managing Domains](https://docs.lettr.com/quickstart/laravel/domains.md): List, add, verify, and delete sending domains from Laravel - [Installation](https://docs.lettr.com/quickstart/laravel/installation.md): Install and configure Lettr for Laravel - [Introduction](https://docs.lettr.com/quickstart/laravel/introduction.md): Send emails from Laravel using the Lettr SDK - [Sending Emails](https://docs.lettr.com/quickstart/laravel/sending-emails.md): Different ways to send emails with Lettr for Laravel - [Templates](https://docs.lettr.com/quickstart/laravel/templates.md): Use Lettr templates with merge tags in Laravel - [Type Safety](https://docs.lettr.com/quickstart/laravel/type-safety.md): Generate type-safe enums, DTOs, and Mailables from your Lettr templates - [Managing Webhooks](https://docs.lettr.com/quickstart/laravel/webhooks.md): List, create, update, and delete webhooks from Laravel - [Audience](https://docs.lettr.com/quickstart/nodejs/audience.md): Manage lists, contacts, topics, properties, and segments with the Node.js SDK - [Campaigns](https://docs.lettr.com/quickstart/nodejs/campaigns.md): List, inspect, send, and schedule campaigns with the Node.js SDK - [Managing Domains](https://docs.lettr.com/quickstart/nodejs/domains.md): List, add, verify, and delete sending domains with the Node.js SDK - [Installation](https://docs.lettr.com/quickstart/nodejs/installation.md): Install and configure the Lettr Node.js SDK - [Getting Started](https://docs.lettr.com/quickstart/nodejs/introduction.md): Get started with Lettr using Node.js - [Next.js](https://docs.lettr.com/quickstart/nodejs/nextjs.md): Integrate Lettr with Next.js - [Nuxt](https://docs.lettr.com/quickstart/nodejs/nuxt.md): Integrate Lettr with Nuxt - [Sending Emails](https://docs.lettr.com/quickstart/nodejs/sending-emails.md): Send HTML, text, and template emails with the Lettr Node.js SDK - [Templates](https://docs.lettr.com/quickstart/nodejs/templates.md): Manage Lettr templates with the Node.js SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/nodejs/webhooks.md): List, create, update, and delete webhooks with the Node.js SDK - [Audience](https://docs.lettr.com/quickstart/php/audience.md): Manage lists, contacts, topics, properties, and segments with the Lettr PHP SDK - [Campaigns](https://docs.lettr.com/quickstart/php/campaigns.md): List, inspect, send, and schedule campaigns with the Lettr PHP SDK - [Managing Domains](https://docs.lettr.com/quickstart/php/domains.md): List, add, verify, and delete sending domains with the Lettr PHP SDK - [Installation](https://docs.lettr.com/quickstart/php/installation.md): Install and configure the Lettr PHP SDK - [Getting Started](https://docs.lettr.com/quickstart/php/introduction.md): Send emails from PHP using the Lettr SDK - [Sending Emails](https://docs.lettr.com/quickstart/php/sending-emails.md): Different ways to send emails with the Lettr PHP SDK - [Using Templates](https://docs.lettr.com/quickstart/php/templates.md): Manage and send Lettr templates with the PHP SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/php/webhooks.md): List, create, update, and delete webhooks with the Lettr PHP SDK - [Advanced](https://docs.lettr.com/quickstart/python/advanced.md): Advanced email features, error handling, async support, and Django integration - [Audience](https://docs.lettr.com/quickstart/python/audience.md): Manage lists, contacts, topics, properties, and segments with the Python SDK - [Campaigns](https://docs.lettr.com/quickstart/python/campaigns.md): List, inspect, send, and schedule campaigns with the Python SDK - [Managing Domains](https://docs.lettr.com/quickstart/python/domains.md): List, add, verify, and delete sending domains with the Python SDK - [Getting Started](https://docs.lettr.com/quickstart/python/quickstart.md): Send transactional emails from Python using the Lettr SDK - [FastAPI](https://docs.lettr.com/quickstart/python/send-with-fastapi.md): Send transactional emails from FastAPI using the Lettr Python SDK - [Flask](https://docs.lettr.com/quickstart/python/send-with-flask.md): Send transactional emails from Flask using the Lettr Python SDK - [Templates](https://docs.lettr.com/quickstart/python/templates.md): Manage Lettr templates with the Python SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/python/webhooks.md): List, create, update, and delete webhooks with the Python SDK - [Advanced](https://docs.lettr.com/quickstart/rust/advanced.md): Advanced features and patterns for the Lettr Rust SDK - [Audience](https://docs.lettr.com/quickstart/rust/audience.md): Manage lists, contacts, topics, properties, and segments with the Rust SDK - [Campaigns](https://docs.lettr.com/quickstart/rust/campaigns.md): List, inspect, send, and schedule campaigns with the Rust SDK - [Managing Domains](https://docs.lettr.com/quickstart/rust/domains.md): List, add, verify, and delete sending domains with the Rust SDK - [Getting Started](https://docs.lettr.com/quickstart/rust/quickstart.md): Get started sending emails with the Lettr Rust SDK - [Templates](https://docs.lettr.com/quickstart/rust/templates.md): Manage Lettr templates with the Rust SDK - [Managing Webhooks](https://docs.lettr.com/quickstart/rust/webhooks.md): List, create, update, and delete webhooks with the Rust SDK - [AWS Lambda Advanced](https://docs.lettr.com/quickstart/serverless/aws-lambda-advanced.md): Advanced AWS Lambda patterns for sending emails with Lettr - [AWS Lambda](https://docs.lettr.com/quickstart/serverless/aws-lambda-quickstart.md): Get started with sending emails from AWS Lambda in minutes - [Cloudflare Workers Advanced](https://docs.lettr.com/quickstart/serverless/cloudflare-advanced.md): Advanced Cloudflare Workers patterns for sending emails with Lettr - [Cloudflare Workers](https://docs.lettr.com/quickstart/serverless/cloudflare-quickstart.md): Get started with sending emails from Cloudflare Workers in minutes - [Getting Started](https://docs.lettr.com/quickstart/serverless/introduction.md): Send emails from serverless functions with Lettr - [Vercel Functions Advanced](https://docs.lettr.com/quickstart/serverless/vercel-advanced.md): Advanced Vercel Functions patterns for sending emails with Lettr - [Vercel Functions](https://docs.lettr.com/quickstart/serverless/vercel-quickstart.md): Get started with sending emails from Vercel Functions in minutes - [Getting Started](https://docs.lettr.com/quickstart/smtp/introduction.md): Connect to Lettr via SMTP relay - [Laravel](https://docs.lettr.com/quickstart/smtp/laravel.md): Configure SMTP in Laravel for Lettr - [PHPMailer](https://docs.lettr.com/quickstart/smtp/phpmailer.md): Use Lettr with PHPMailer - [Supabase](https://docs.lettr.com/quickstart/smtp/supabase.md): Send Supabase Auth emails through Lettr via SMTP - [SDKs](https://docs.lettr.com/resources/sdks.md): Official Lettr SDKs for all major languages ## OpenAPI Specs - [openapi](https://docs.lettr.com/openapi.json)