Developer tools should give developers power.
You should have control that's predictable and accessible from any surface you prefer: the dashboard, MCP, CLI, or the API. Humans and agents alike should have equal access with the developer as the operator.
Our journey
Earlier this summer, we mapped several interactions that required the Resend Dashboard and started slowly closing the gap for each one.
Today, I'm excited to share how far we've come. Most of what you manage in the dashboard is now accessible through the MCP, CLI, or the API. That's the direction we're committed to, and it's what we mean by headless:
Everything the dashboard can do should also be available programmatically.
Everything the dashboard can do should also be available programmatically.
The initiative lets you:
- embed full email analytics in your app
- build custom Broadcast experiences for your customers
- manage your Resend account with your agent
- create personalized dashboards and reports
We'll make the dashboard best-in-class, while also committing to full headless operation for every future entity. Use the dashboard when it makes sense. Build your own custom experiences when it doesn't.
What you can use now
While many on the team have contributed to get us to this point, three people in particular deserve a special call-out: Diel Duarte, Gabriel Miranda, and Felipe Freitag.
Here are the key changes we've released in the last several months.
- Email Metrics API
- Headless Webhook API
- Cancel Broadcast API
- Share Email API
- Duplicate Automation API
- Update Segment API
- List Clicked Links API
- Update API Key Name
- Duplicate Broadcast API
1. Email Metrics API
The Email Metrics API returns deliverability and engagement data for your emails, from send volume to unsubscribe rate, grouped or filtered by period, domain, broadcast, or email. It powers:
- custom dashboards showing your deliverability and reputation metrics
- reports that summarize campaign performance
- alerts that fire when bounce or complaint rates spike
A request with no parameters returns every metric over the past 7 days.
Learn more about the Email Metrics API or read the changelog.
2. Headless Webhook API
Everything the webhook detail page does is now available in the API, every SDK, the MCP server, and the CLI:
- List Events: every event delivered to a webhook, with its delivery status
- Retrieve Event: the exact payload we sent to your endpoint
- List Attempts: every attempt with the status code and body your endpoint returned
- Replay Event: queue another delivery of a webhook event
- Rotate Signing Secret: get a new secret without opening the dashboard
Together these let you list failed events and replay them in a loop, page your team when deliveries fail, rotate secrets from CI, or connect the MCP server and ask your agent what failed.
Start by listing the events delivered to a webhook. Each one carries a delivery status of success, failed, attempting, or pending.
Learn more about the Headless Webhook API or read the changelog.
3. Cancel Broadcast API
The Cancel Broadcast API allows you to cancel a Broadcast programmatically. You can use it to stop a Broadcast when it's still scheduled or during sending before it finishes.
To cancel a Broadcast, use the Broadcast's ID with the cancel endpoint.
Learn more about the Cancel Broadcast API or read the changelog.
The Share Email API returns a link to a read-only view of any sent or received email, viewable by anyone with the link.
- attach a live email preview to a support ticket
- let users open a "view this email" link from your app
- ask your agent to surface the email when reporting on a send
Use the ID of any sent or received email. The API returns the full share URL, and links expire after a duration you control. Pass any duration up to 48 hours, like 10m, 2 hours, or 1 day. It defaults to 48 hours.
Learn more about the Share Email API or read the changelog.
5. Duplicate Automation API
The new duplicate Automation endpoint creates a copy of an existing Automation, named after the original with a (Copy) suffix. The copy starts as a disabled draft, so nothing runs until you review and publish it.
To duplicate an Automation, use the Automation's ID with the duplicate endpoint.
Learn more about the Duplicate Automation API or read the changelog.
6. Update Segment API
You could already create, retrieve, list, and delete segments from the API. The new update endpoint completes the set, so you can rename a segment from the API, CLI, or any official SDK.
Learn more about the Update Segment API or read the changelog.
7. List Clicked Links API
The List Clicked Links API returns every link clicked in a Broadcast with its total and unique clicks, ranked by total clicks. Use it to feed your own dashboards, compare CTAs across campaigns, or surface your top-performing links to inform future emails. Click tracking must be enabled for your domain.
Learn more about the List Clicked Links API or read the changelog.
8. Update API Key Name
The Update API Key endpoint renames an API key in place. The token stays the same, and so do the key's permission and domain restriction, so you can keep key names in sync with a renamed project or clean up naming conventions from a script without rotating secrets.
Learn more about the Update API Key Name endpoint or read the changelog.
9. Duplicate Broadcast API
Most new Broadcasts start from one you've already sent. The new duplicate Broadcast endpoint creates a copy of any Broadcast, including ones that have already been sent. The copy keeps the segment, topic, sender, subject, reply-to, preview text, and content, and starts as a draft so nothing goes out until you review and send it.
To duplicate a Broadcast, use the Broadcast's ID with the duplicate endpoint.
Learn more about the Duplicate Broadcast API or read the changelog.
Conclusion
Now that we've brought compatibility between all the different services, our next goal is to give you more precise control.
For everything from API key provisioning to webhook filtering and scoping, we're working hard to make Resend the best experience for developers and agents.
In the meantime, you can start building today:
- Connect the MCP server and manage your Resend account from your agent
- Install the CLI and run any of the commands above from your terminal
