List Sent Emails
Retrieve a paginated list of emails sent from your account:Query Parameters
Response
data.events.data. data.events.from and data.events.to show the time window that was actually searched, which can differ from the one you asked for (see Search Window).
List Email Events
GET /emails returns one entry per sent email (its injection event). To see everything that happened afterwards — deliveries, bounces, delays, opens, clicks — use GET /emails/events:
from, to, per_page, and cursor parameters, plus events, transmissions, and bounce_classes filters, and returns the same data.events shape. See List Email Events for every parameter and field.
Search Window
Lettr keeps sent emails and their events for about 10 days, so bothGET /emails and GET /emails/events can only search that window:
- If you leave out
from, the search starts at the beginning of the retained window. - If
fromis earlier than that, it is moved forward to the start of the retained window instead of failing. Thefromin the response tells you where the search actually started. - If the whole range ends before the retained window starts, the response is empty.
- If
tois not afterfrom, the request fails with a422validation error.
Get Email by Request ID
Retrieve details for a specific email using its request ID:Response
state is derived from the events: scheduled, delivered, bounced, or failed. If no email with that request ID is found in the retained window, the endpoint returns 404. See Get Email Detail for every field.
Response Fields
Each entry indata.events.data from GET /emails contains:
Filtering by Date Range
Query emails within a specific time period:Filtering by Recipient
Find all emails sent to a specific address:Pagination
Use cursor-based pagination to retrieve large result sets:next_cursor back as the cursor parameter exactly as you received it — don’t decode, modify, or build it yourself. The cursor already carries the filters and time window of the first page, so later pages stay consistent. A cursor that didn’t come from a previous response fails with a 422 validation error. Cursors issued before the current format still work.
The same pagination works for GET /emails/events.
Email history is kept for about 10 days. For longer retention, use webhooks to store email events in your own database.
Use Cases
Audit Trail
Track all emails sent to a specific customer:Verify Delivery
Check what happened to a specific email:Daily Send Report
Generate a report of emails sent today:Error Responses
Related Topics
Analytics
Aggregate email performance metrics
Webhooks
Real-time email event notifications
Metadata
Attach custom data to emails
Idempotency
Prevent duplicate sends