Skip to content
Docs

Reference

Email API changelog

Changes to Email API: new features, improvements and fixes.

September 2026

  1. Improved

    Retry held emails

    Email APIEmail logs

    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.

  2. Changed

    Reply-To removed when it matches From

    Email APISMTP relayDeliverability

    Emailit compares the addresses in Reply-To and From, ignoring display names and letter case. When they’re the same, it removes Reply-To before signing the message. Replies still reach the From address.

    When the addresses differ, Reply-To is kept unchanged. See Email headers.

  3. Fixed

    Sending domain matching and subdomain settings

    Sending domainsEmail APISMTP relayOpen & click trackingInbound email

    • The API and SMTP match the From domain without regard to letter case, so ada@Acme.com sends from the verified domain acme.com.
    • Changing a domain’s tracking or inbound subdomain in the dashboard, or with tracking_key and inbound_key in Update a domain, now saves the new value. Publish the DNS record for the new name and verify it.
  4. Fixed

    API v2 compatibility fixes

    REST APIAPI keysEmail APISending domains

    • API keys created before keys had the secret_ prefix are accepted on /v2 again.
    • Retrieve an email returns the full email object, including object, from and to.
    • Domain responses return track_loads and track_clicks as 0 or 1, as documented.
  5. Changed

    Emails send untracked until the tracking domain is verified

    Open & click trackingEmail API

    A send request with tracking turned on used to fail with 422 when 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.

  6. Changed

    Emails show attempted while Emailit retries

    Email logsEmail API

    Temporary failures were recorded on the delivery, but the email kept its earlier status. The email itself now moves to attempted while 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.

  7. New

    Compose and cancel emails from the dashboard

    Email logsEmail API

    • 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.
  8. New

    Forward an email

    Email APIEmail logs

    Select Forward on an email’s detail page, or call Forward an email with a to address. 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.

  9. 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 403 with the code unverified_workspace_recipient from the API and 550 from SMTP, and campaign sends are blocked. Workspaces with production access aren’t affected.

    To lift the restriction, verify a domain and request production access.

  10. Changed

    Sending-only API keys limited to send endpoints

    API keysEmail API

    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

  1. New

    List emails and read their content with the API

    Email API

    These endpoints need a full access key. Content is available until your plan’s data retention period removes it.

February 2026

  1. Changed

    Simplified email statuses

    Email logsEmail APIWebhooks

    Old status New status
    pending accepted or scheduled
    sent delivered
    softfail attempted
    hardfail bounced
    opened loaded
    error failed

    Existing 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.

  2. New

    Templates and the Templates API

    TemplatesEmail 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 template and variables to Send an email. See Templates.

January 2026

  1. New

    Retry button

    Email logsEmail API

    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.

  2. New

    Emails endpoints in API v2

    Email API

    • 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-Key header.
    • 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.

October 2025

  1. 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.

Was this page helpful?

Thanks for the feedback.

Thanks, we read every message.