One stack for all your email. Save $1,200 a year.

Newsletter, marketing and transactional email in one account, made for the agentic era. Everything you pay beehiiv and Resend for, on one smaller bill.

A 4,000-reader newsletter, one issue a week, plus 50,000 transactional emails a month.

Works withClaudeCursorCodexChatGPTGrok Bot

The stack

Three layers. One domain, one suppression list, one bill.

Agents

Made for the agentic era, not retrofitted for it. All 48 dashboard actions are in the API and the MCP server too, with the same permissions. Nothing is dashboard-only.

  • MCP server for Claude Code, Cursor and Codex
  • REST API, OpenAPI spec and llms.txt
  • Keys for full access, sending only or signups only
create_campaigncheck_campaignsend_test_emailsend_campaignpause_campaignsend_campaign_to_moreimport_contactsadd_contactunsubscribe_contactsend_emailsend_batch_emailsget_emailadd_domainverify_domaincreate_webhooklist_suppressionscreate_api_key+31 more

Newsletters

A hosted signup page with double opt-in, an editor that takes Markdown or HTML, test sends, scheduling, and a delivery report for every issue.

  • Most engaged readers go first on every send
  • No "Powered by" badge
Bring your list from
beehiivSubstackMailchimpKitMailerLiteButtondownGhostEmailOctopus
Sign up
jane@example.com
Subscribe
Confirm
Yes, subscribe me
Read

Transactional

Receipts, sign-in codes and alerts from your app, through the same verified domain as your newsletter. Drop Resend and keep one bill.

  • Single and batch sends, retried safely with idempotency keys
  • Every email's status by id, and signed webhooks
  • $10 a month for 50,000 emails
$ curl https://app.mailstack.ai/v1/emails \
    -H "Authorization: Bearer $MAILSTACK_KEY" \
    -H "Idempotency-Key: order-1042" \
    -d '{"from": "Acme <billing@mail.acme.com>",
         "to": "sam@example.org",
         "subject": "Invoice for order 1042"}'

{ "id": "em_01j9x4…" }

Cost

Two bills, or one.

Newsletter platforms charge for every reader, opened or not, and transactional email is a second subscription. Mailstack charges for what you send.

Newsletter readers
Transactional emails a month
With Mailstack $29/month

beehiiv + Resend: $129. $1,200 per year savings.

    One issue a week (about 4.3 emails per reader a month), monthly billing in US dollars. Newsletter prices are each platform's cheapest plan that fits, from their pricing pages in October 2026; transactional email is priced at Resend (Pro $20 for 50k, Scale $90 for 100k). Names are their owners' trademarks; Mailstack isn't affiliated with them.

    ClaudeCursorCodexChatGPTGrok Bot

    Made for the agentic era

    One line, and your agent has the keys.

    Add Mailstack to Claude Code with an API key. Cursor and Codex take the same URL. Sign-in from Claude.ai, ChatGPT and Grok Bot is next. Then ask for what you want in plain words.

    $ claude mcp add --transport http mailstack \
        https://app.mailstack.ai/mcp \
        --header "Authorization: Bearer $MAILSTACK_KEY"
    • Import the beehiiv export on my desktop and tell me what you dropped.import_contacts
    • Draft November from my changelog and send me a test.create_campaignsend_test_email
    • Why did last week's issue bounce more than usual?get_campaignlist_suppressions
    • Set up mail.acme.com and tell me which DNS records to add.add_domainverify_domain
    • Wire our signup form to send a welcome receipt.send_emailcreate_webhook

    Pricing

    Pay for sending. Not for your list.

    Every plan has every feature, agents included. Pick the one that covers the emails you send in a month.

    PlanEmails a monthReaders up toPer 1,000Price
    Starter20,00010,000$0.95$19/mo
    Growth75,00040,000$0.52$39/mo
    Pro200,000100,000$0.40$79/mo
    Scale500,000250,000$0.30$149/mo
    Max2,000,0001,000,000$0.17$349/mo

    Deliverability

    Only email people asked for.

    Good habits are on by default, and the hard limits are on for everyone, agents included. Sending to people who didn't ask is hard, and it stops fast.

    Built into every workspace
    • Confirmed opt-in, on by defaultNew signups confirm by email first, and an import needs a statement of how those people agreed.
    • Clean importsMisspelled, spam trap, throwaway and role addresses are left out, and so is anyone who unsubscribed, bounced or complained before.
    • List cleanup, on by defaultReaders who ignored several issues get one "still want this?" email, then stop getting issues.
    • Bad addresses skippedHard bounces and complaints are suppressed for good, and an address that doesn't exist is skipped by every workspace.
    • Unsubscribe and postal address in every emailOne-click List-Unsubscribe headers as Gmail and Yahoo require, and campaigns won't send without an address.
    • Domain authenticatedDKIM, SPF through a custom MAIL FROM, and DMARC.

    Automatic pauses

    Counted over each sender's last seven days. Past these lines, sending stops on its own.

    BouncesComplaints
    Pausedover 2%over 0.08%
    Blocked until reviewedover 5%over 0.3%

    Contacts you've never emailed go out as a small slice first, and the rest three hours later if its bounces and complaints stay low. New senders warm up over 30 days. Bought, rented and scraped lists are banned by our acceptable use policy.

    FAQ

    Fair questions.

    Is it safe to let an agent send email?

    The agent works through the same checks as you: it can't send to people who didn't opt in, skip the suppression list or switch off the pauses. Test sends come first, and an API key can be revoked at any time.

    Can it really replace Resend?

    For most apps. Single and batch sends, idempotency keys, delivery status by id and signed webhooks, on the domain your newsletter already uses.

    Why price by email instead of by reader?

    Sending is what costs money. Charging for readers means paying more every month for people who stopped opening.

    How do I move my list?

    Export a CSV from beehiiv, Substack, Mailchimp, Kit, MailerLite, Buttondown, Ghost or EmailOctopus and import it, or ask your agent to. Past unsubscribes and bounces stay out.

    Do I need my own domain?

    Yes, for now. Add it and Mailstack lists the DNS records and checks them for you.

    Can I leave any time?

    Yes. Cancel from the billing page, and export your contacts as a CSV whenever you like.

    Email, made for the agentic era.

    Tell us what you send today and we'll set you up, by hand.

    Get started