Reference
Email API changelog
Changes to Email API: new features, improvements and fixes.
September 2026
Improved
Retry held emails
The Retry button on a held email now works, and Retry an email accepts emails with the status
held. Fix the reason the email was held first, for example a high spam score or missing credits, then retry it.A retry creates a new email with a new ID and costs credits like any other send. Emails older than 30 days, or whose content was removed by data retention, can’t be retried. See Retry and forward.
Changed
Reply-To removed when it matches From
Email APISMTP relayDeliverability
Emailit compares the addresses in
Reply-ToandFrom, ignoring display names and letter case. When they’re the same, it removesReply-Tobefore signing the message. Replies still reach theFromaddress.When the addresses differ,
Reply-Tois kept unchanged. See Email headers.Fixed
Sending domain matching and subdomain settings
Sending domainsEmail APISMTP relayOpen & click trackingInbound email
- The API and SMTP match the
Fromdomain without regard to letter case, soada@Acme.comsends from the verified domainacme.com. - Changing a domain’s tracking or inbound subdomain in the dashboard, or with
tracking_keyandinbound_keyin Update a domain, now saves the new value. Publish the DNS record for the new name and verify it.
- The API and SMTP match the
Fixed
API v2 compatibility fixes
REST APIAPI keysEmail APISending domains
- API keys created before keys had the
secret_prefix are accepted on/v2again. - Retrieve an email returns the full email object, including
object,fromandto. - Domain responses return
track_loadsandtrack_clicksas0or1, as documented.
- API keys created before keys had the
Changed
Emails send untracked until the tracking domain is verified
Open & click trackingEmail API
A send request with
trackingturned on used to fail with422when the sending domain had no verified tracking CNAME. Emailit now accepts the email and sends it without rewriting links or adding the open pixel.To track opens and clicks, publish the tracking CNAME record for your domain and verify it. See Custom tracking domain.
Changed
Emails show attempted while Emailit retries
Temporary failures were recorded on the delivery, but the email kept its earlier status. The email itself now moves to
attemptedwhile Emailit retries, so the emails list and the API show which emails are delayed.Later statuses, such as
delivered, and final statuses aren’t overwritten. See Email statuses.New
Compose and cancel emails from the dashboard
- Compose on the Emails page, or in Quick Actions on the dashboard, sends a one-off email from a verified domain, for example to test your setup. Under Advanced you can attribute the send to an API key. Compose allows 3 emails per minute and 10 per hour per workspace. See Compose.
- Cancel delivery pulls an accepted, scheduled or attempted email from the queue. Cancellation is best effort: an email that’s already being handed to the recipient’s server may still be delivered. See Cancel an email.
New
Forward an email
Select Forward on an email’s detail page, or call Forward an email with a
toaddress. By default the recipient gets a plain copy. Turn on the forwarded headers and add a comment if you want to give context.A forward is a new email: it costs credits and counts toward your sending limits. You can forward 3 emails per hour per workspace. See Retry and forward.
Changed
Sandbox workspaces send only to members
WorkspacesEmail APISMTP relayCampaigns
The sandbox rule now applies to the API, SMTP, Compose, retries, automations and campaigns. Sending to anyone else returns
403with the codeunverified_workspace_recipientfrom the API and550from SMTP, and campaign sends are blocked. Workspaces with production access aren’t affected.To lift the restriction, verify a domain and request production access.
Changed
Sending-only API keys limited to send endpoints
Sending-only keys could previously list and retrieve emails and call some other read endpoints. They’re now limited to Send an email and the actions on an existing email: reschedule, cancel, retry and forward. Other endpoints reject sending keys.
If your integration also reads emails, domains or other resources, use a full access key for those calls. See API keys.
March 2026
New
List emails and read their content with the API
- List emails:
GET /v2/emails - Retrieve raw MIME:
GET /v2/emails/:id/raw - Retrieve the body:
GET /v2/emails/:id/body - Retrieve metadata:
GET /v2/emails/:id/meta - List attachments:
GET /v2/emails/:id/attachments
These endpoints need a full access key. Content is available until your plan’s data retention period removes it.
- List emails:
February 2026
Changed
Simplified email statuses
Old status New status pendingacceptedorscheduledsentdeliveredsoftfailattemptedhardfailbouncedopenedloadederrorfailedExisting emails and deliveries were migrated to the new names. Events and webhook requests created before the change keep the values they were sent with. See Email statuses for the current list.
New
Templates and the Templates API
Build templates with the HTML editor, the rich-text editor or the Dragit drag-and-drop editor. Templates that share an alias are versions of one template, and only the published version is used when you send by alias.
Manage templates with the Templates API, and send one by passing
templateandvariablesto Send an email. See Templates.
January 2026
New
Retry button
Retry duplicates the original email, gives the copy a new ID and sends it through the normal pipeline. It’s billed like any new email. To retry from code, call Retry an email.
New
Emails endpoints in API v2
- Send an email: each recipient gets its own email ID. Schedule with an ISO 8601 date, a Unix timestamp or natural language such as “tomorrow at 9am”, and prevent duplicates with the
Idempotency-Keyheader. - Retrieve an email: status, headers, content, tracking settings and metadata.
- Update a scheduled email: change the send time up to 3 minutes before it’s due.
- Cancel an email: stop a scheduled or queued email.
Every send response includes
ratelimit-*headers. See Rate limits.- Send an email: each recipient gets its own email ID. Schedule with an ISO 8601 date, a Unix timestamp or natural language such as “tomorrow at 9am”, and prevent duplicates with the
October 2025
Changed
Per-second and daily rate limits
Limits & retentionEmail APISMTP relay
Requests over the limit are rejected instead of queued, so configure your client to send at most 2 emails per second or to retry rejected sends. The change was rolled out to workspaces gradually.
See Rate limits.