API & MCP
All of it, over HTTPS.
One REST API for your app's transactional email, your audiences, and your campaigns, plus an MCP server that turns your AI editor into a composer. Built so migrating from another provider is one script and staying in sync afterwards is a webhook handler.
Transactional email in one call
POST /v1/emails sends password resets, receipts, and magic links from the same verified domain and the same monthly allowance as your newsletter. Send an Idempotency-Key and a network retry can never double-send, even when it races its own first attempt. Poll the email for queued → sent → delivered, or the bounce that explains why not.
Built for migration
Import up to 1,000 contacts per call with per-row results, address them by email or id, and upsert instead of colliding. Coming from Resend or Mailchimp is a short script, not a project.
Bring your opt-outs
Import contacts already marked unsubscribed with the date they left on, and push your existing suppression list straight in, so nobody who opted out ever hears from you again. Do that first and their contact rows are rejected on the way in.
MCP: your editor is a composer
Point Claude Code, Cursor, or VS Code at one URL and describe the email where you already work. It arrives in day3 as editable composer blocks rather than a wall of HTML. It converts back, too, so an email you finished by hand reads out as Markdown again.
Keys you control, scoped to what you meant
Create and revoke bearer keys on the API keys page; the key is shown once and only its hash is stored. Sending a campaign to a real audience needs a key explicitly minted with that permission, and it can't be added later, so an assistant holding an ordinary key can draft all day and reach nobody.
The docs live in the app
Quickstart, endpoint map, and cURL / JavaScript / Python snippets sit under your key list, pre-filled with your own audience id. Every resource page has a `</>` panel with its ids copyable, and there's a copy-paste prompt that hands the whole reference to your AI coding assistant.
One allowance for both jobs
Most teams end up with two email vendors: one for the transactional mail their app has to send, and one for the campaigns marketing wants to send. That means two sending domains or two DKIM selectors on the same one, two reputations to watch, two dashboards to check when something doesn't arrive, and two bills.
day3 collapses that. POST /v1/emails and a campaign leave from the same verified domain and draw on the same monthly allowance, so a month where you send 18,000 password resets and 2,000 launch notes is simply a 20,000-email month. There is one reputation, one place to look when a customer says they didn't get the reset, and one line on the invoice.
The two paths differ where they should. Unsubscribes apply to campaigns and are ignored for transactional, because someone who left the newsletter still needs their receipt. Hard bounces and complaints are refused for both, because a dead address is a dead address and mailing it damages you either way.
Retry safety is handled at the protocol level rather than left to you. Send an Idempotency-Key with a transactional call and a network retry can never produce a second email, even when the retry races the original request. That is the difference between a password reset flow you can trust under load and one that occasionally double-sends.
Questions
- Does day3 have an API?
- Yes. A REST API at /api/v1 covering transactional email, audiences, contacts, custom fields, segments, topics, the suppression list, and campaigns. It uses bearer API keys, JSON with snake_case, cursor pagination, machine-readable error codes, and idempotency keys on writes.
- Can I send transactional email through day3?
- Yes. POST /v1/emails takes from, to (up to 50 recipients), subject, and html or text, and returns an id you can poll for delivery status. It leaves from the same verified domain as your campaigns and draws on the same monthly allowance. Unsubscribes are ignored, so someone who left the newsletter still gets their password reset, but hard bounces and complaints are still refused.
- Can I migrate my list from another provider?
- That's what it's designed for. Batch up to 1,000 contacts per call, upsert by email, carry over custom fields, and import your unsubscribes and suppression list so the opt-outs come with you. Import the suppressions first and day3 will refuse those contacts on the way in, which is the guard working rather than an error.
- What is day3's MCP server?
- An HTTP endpoint at /api/mcp that lets an AI editor (Claude Code, Cursor, VS Code) read your audiences and senders, write and preview a campaign, and send you a test. Setup is one line with the same bearer key as the REST API. What it writes lands in day3 as real editable blocks, so you can finish the email in the visual composer.
- Can an AI assistant email my subscribers by accident?
- No. Writing, previewing, and test sends are open. A test only reaches addresses you name. Sending or scheduling to a real audience needs a key you deliberately created with the campaigns:send permission, and it can't be granted to an existing key. Both send tools are also marked destructive, so editors prompt before running them.
- Is the API on every plan?
- Yes, including free. The free tier's 500-subscriber cap applies to API writes too, so an import that would cross it is rejected whole rather than half-applied. Its sandbox sending means you can integrate the transactional API end to end before paying.
Related
- day3 vs ResendResend set the bar for what an email API should feel like, and day3 sends transactional in the same shape: one POST, an idempotency key, per-email delivery status.Read on
- AudiencesA named list of subscribers. Import them, add them by hand, and filter by status. Pay the same whether it's 200 or 200,000.Read on
- DeliverabilityAuthenticated domains, one-click unsubscribe, and automatic suppression of bounces and complaints.Read on
- SaaS teamsChangelogs and release notes are a job of their own. day3 does that one job well, with deliverability and compliance built in and pricing that ignores list size.Read on
- SecurityEU-only hosting and data residency, an honest compliance posture, and every sub-processor named.Read on
- PricingNine plans from $1/mo for 1,000 emails to $220/mo for 1,000,000. Unlimited subscribers on all of them.Read on