Batch Sending with the API
Lettr’s API supports sending to multiple recipients in a single request. This reduces HTTP overhead and simplifies your sending logic.Single Request, Multiple Recipients
Per-Recipient Substitution Data
When each recipient needs different content (personalized data, unique links), pass substitution data per recipient:Structuring High-Volume Sends
When sending to large lists (tens of thousands or more), you need to break the work into manageable batches and pace them appropriately.Batch Size
Keep each API request to a reasonable number of recipients. Larger payloads take longer to process and are more likely to time out.Queue-Based Architecture
For large sends, use a job queue to manage the workload. This gives you control over pacing, retry logic, and failure handling.Configure your queue workers with appropriate concurrency limits. Running too many workers in parallel will hit Lettr’s rate limits. Start with 2–3 concurrent workers and adjust based on observed throughput.
Rate Management
Lettr enforces rate limits to protect deliverability for all senders. Understanding and working within these limits is essential for high-volume sending.Handling Rate Limit Responses
When you exceed the rate limit, the API returns a429 Too Many Requests response with a Retry-After header indicating how long to wait.
Proactive Rate Limiting
Rather than hitting rate limits and retrying, pace your sends proactively:Recipient Grouping Strategies
How you segment your recipients for bulk sends affects both deliverability and engagement.Group by Engagement Level
Send to your most engaged recipients first. This front-loads positive signals (opens, clicks) that improve your reputation for the remainder of the send.Group by Domain
When sending to large lists, consider grouping recipients by their email domain. This lets you monitor deliverability per provider and respond if a specific provider starts throttling.Monitoring Bulk Sends
Track the health of your bulk sends in real time using webhooks.Key Metrics to Track
Real-Time Dashboard
Set up a simple counter to track bulk send progress:Common Mistakes
Sending the entire list at maximum speed
Sending the entire list at maximum speed
Blasting your full list as fast as possible overwhelms receiving servers and triggers rate limiting or blocks. Pace your sends and start with engaged recipients.
Not filtering suppressed recipients before sending
Not filtering suppressed recipients before sending
Always check your suppression list before a bulk send. Sending to previously bounced or complained addresses damages your reputation with every hit. Lettr’s suppression list handles this automatically, but you should also maintain your own internal suppression logic.
Ignoring rate limit responses
Ignoring rate limit responses
Treating 429 responses as permanent failures instead of implementing retry logic with backoff. Rate limits are temporary — wait and retry.
No monitoring during the send
No monitoring during the send
Launching a bulk send and walking away. Without real-time monitoring, you won’t catch deliverability problems until it’s too late.
Using individual API calls for each recipient
Using individual API calls for each recipient
Sending 50,000 individual API requests when you could batch 200 recipients per request (250 requests total). Batching is dramatically more efficient.
Related Topics
Batch Sending
API documentation for batch sending
Rate Limits
Understanding and handling rate limits
IP and Domain Warm-Up
Warm-up schedules for new domains
List Hygiene
Maintain clean recipient lists before bulk sends