Skip to content

The transactional email API that keeps working when your users and AI agents send.

MailChannels Email API sends your app’s email: sign-in links, receipts, notifications. When your users and AI agents start sending through it, each one gets its own sub-account, so one bad sender stops alone.
Your first sendIllustrative
const mail = new MailChannels(apiKey);await mail.send({  from: "hello@yourapp.com",  to: "ada@example.com",  subject: "Your sign-in link",  html: signInEmail(user),});
Illustrative sample. The docs have the exact SDK, endpoint and SMTP settings.
Ada’s inboxIllustrative
Your appJust nowhello@yourapp.com to ada@example.com

Your sign-in link

Hi Ada, here is the link you asked for. Open it on this device to sign in to Your app.

Sign in

DeliveredA signed webhook tells your app what happened.

Senders on your account

  • Your app
  • Customer A
  • Tenant
  • AI agentsuspended

Only the AI agent is suspended. Everyone else keeps delivering.

  • 100 free emails a day
  • SDKs for JavaScript, Python and PHP
  • Laravel, Symfony and Nodemailer transports
  • REST API and SMTP

Every app needs email that arrives

Sign-in links, password resets, receipts, notifications: email is a distraction from your product until it breaks. And more apps now send email that their users or AI agents wrote, while the app still carries the reputation.
What your app sends, Written by, Whose reputation
What your app sendsWritten byWhose reputation
Your sign-in linkWritten by: Your appYour appYours
Reset your passwordWritten by: Your appYour appYours
Your receiptWritten by: Your appYour appYours
New comment on your postWritten by: Your appYour appYours
A newsletter a customer wroteWritten by: Your userYour userYours
A follow-up an agent draftedWritten by: An AI agentAn AI agentYours
Whose reputation, on every oneYours

How email gets sent today, and where it breaks

Teams start with what is already there, then move to an API built for one company sending its own mail. Platforms often let their users bring their own credentials.
  • Your server’s mail function or a Gmail account

    How it’s solved today

    A new app needs email today, so the developer uses what is already there.

    Where it falls short

    Homegrown sending lands in spam and fails silently.
  • A generic email API

    How it’s solved today

    Built for one company sending its own mail. It works well for that.

    Where it falls short

    Until your users start sending. One bad user can get the whole account suspended, content categories get refused, and abuse handling becomes your job.
  • Bring-your-own SMTP

    How it’s solved today

    Platforms let users connect their own SMTP server or Gmail account.

    Where it falls short

    Provider limits, authentication changes, blocked ports, support tickets, and no visibility into what happened.

And switching providers at that moment is painful.

Add email once. Keep it when your app becomes a platform.

In a perfect world, you or your coding agent add email in minutes, see what happened to every message, and never have to switch providers when your app becomes a platform, because each user, tenant or agent can already send in isolation.
  1. Day one

    You, or your coding agent, add email in minutes

    An SDK, a framework transport or SMTP settings, and your app is sending.
    send("Your sign-in link")
  2. Every message

    See what happened to every message

    Signed webhooks report each delivery. Addresses that bounce are suppressed for you.
    DeliveredBouncedSuppressed
  3. When users and agents send

    Each sender is already isolated

    Every user, tenant or agent gets its own sub-account. Same API, no migration.
    UserTenantAI agent

Send your app’s email in minutes, and know it arrived

REST or SMTP, SDKs and framework transports, signed webhooks, a free plan, and docs your coding agent can follow.
What happened to each messageIllustrative
  • ada@example.comYour sign-in linkDelivered
  • sam@example.orgYour receiptDelivered
  • old-address@example.netReset your passwordBounced
  • old-address@example.netNot sent again: the address bouncedSuppressed
Each event reaches your app as a signed webhook.
  • REST API and SMTP

    The API for new code, SMTP for anything that already sends mail.
  • Official SDKs

    JavaScript, Python and PHP.
  • Framework transports

    Laravel, Symfony and Nodemailer.
  • Signed delivery webhooks

    Know what happened to every message.
  • Automatic suppression

    Bounced addresses stop receiving mail.
  • DKIM and Domain Lockdown

    Only the accounts you authorize may send for your domain.
  • Docs a coding agent can follow

    Agent plugins are live.
  • A free tier

    100 free emails a day, simple public pricing.

Keeps working when your users and agents start sending

Sub-accounts give each user, tenant or agent its own credentials, limits, suppressions, webhooks and suspension path, through the same API you already use. Domain Lockdown and behavior-based policy cover the rest.
Your appOne account, one API

Each sub-account has its own

  • Credentials
  • Limits
  • Suppressions
  • Webhooks
  • Suspension path
  • Customer ASending
  • Customer BSending
  • AI agentSuspended
  • TenantSending
Mailbox providers
An agent misbehaves, so only its sub-account is suspended. Everyone else keeps sending.
  • Sub-accounts

    Each tenant, customer or agent gets its own credentials, limits, suppressions, webhooks and suspension path.
  • Domain Lockdown

    Domain owners authorize exactly which accounts may send for them.
  • Behavior-based policy

    Senders are judged by complaints, bounces and phishing patterns, not by industry or format.

Deliverability you never have to run yourself

24/7 abuse operations from a company that has delivered email for web hosting providers for twenty years.
24/7
Abuse operations, with real people behind them
20
Years delivering email for web hosting providers
  • Proven on hosting traffic

    Web hosting networks are among the hardest places to send from. Our abuse handling was built there.
  • Abuse handling is not your job

    We watch complaints, bounces and phishing patterns, so you don’t have to build that team.

DreamHost went from 300 delivery tickets a week to about 10

300Email-delivery support tickets a week, before MailChannels
~10Tickets a week, after the switch

One mark is one ticket, in blocks of 100.

DreamHost, a web hosting provider.
  • Platforms at scale

    Platform customers send millions of messages a month through MailChannels.
DreamHost
“Overall, the solution just fit and works. We couldn’t be happier with it.”
Erik NievesErik NievesSystem AdministratorDreamHost

Trusted by 25% of the top 100 hosting providers.

  • Customer=Hostinger, Size=Regular, Color=White
  • Customer=DreamHost, Size=Regular, Color=White
  • Customer=Namecheap, Size=Regular, Color=White
  • Customer=Krystal, Size=Regular, Color=White
  • Customer=HostPapa, Size=Regular, Color=White
  • Customer=Locaweb, Size=Regular, Color=White
  • Customer=Instra, Size=Regular, Color=White
  • Customer=1grid, Size=Regular, Color=White
  • Customer=Neubox, Size=Regular, Color=White
  • Customer=Dreamscape, Size=Regular, Color=White
  • Customer=Whogohost, Size=Regular, Color=White
  • Customer=Kinsta, Size=Regular, Color=White
  • Customer=ptisp, Size=Regular, Color=White
  • Customer=Turbify, Size=Regular, Color=White
  • Customer=Axarnet, Size=Regular, Color=White

Start with your app’s email

Create an account

Send your first email in minutes, with 100 free emails a day. No sales call needed.

Running a platform?

Move one workflow to us, with written success criteria, and judge the result.