# Email and WhatsApp in one API call: why pay for two tools?

> One POST /message, two channels: your WhatsApp number and your own mailbox. One message per channel, a shared dispatchId, per-channel content. Free plan.

Source: https://unlimitedmessaging.app/articles/email-whatsapp-single-api-request

Email + WhatsApp API

# Email and WhatsApp in  
_one API request._

One call to POST /message sends the same message to your customer on WhatsApp and by email. It leaves from your own WhatsApp number and your own mailbox, and it costs nothing extra: the email channel and multi-channel sending are on every plan, Free included.

[Start for free](https://app.unlimitedmessaging.app)[See pricing](https://unlimitedmessaging.app/pricing)

The idea

## Two channels, one request, your own infrastructure

Some messages matter enough to reach people twice: an order ready for pickup, an appointment reminder, an overdue invoice. Your customer might read WhatsApp first, or only check email at work.

Usually that means two integrations: a WhatsApp provider on one side, an email service on the other, two SDKs, two bills and two sets of logs to reconcile. With UnlimitedMessaging, both channels sit behind the same endpoint. You list the channels you want in a channels array, give the recipient's phone and email in to, and the API does the rest.

Nothing is sent from a shared sender. WhatsApp messages leave from your own number, linked by scanning a QR code. Emails leave from your own address, through your own mail server, and a copy lands in your Sent folder. UnlimitedMessaging is only the transport: your deliverability and your reputation stay yours.

And it's free to start. The email channel and multi-channel sending are available on every plan, including the Free plan, which needs no credit card.

![Illustration: one POST /message request branching to a chat bubble and an email, with the headline “Email and WhatsApp in one request”.](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Femail-whatsapp-single-api-request-en.png&w=3840&q=75)

Definition
Multi-channel dispatch

A single API request that delivers the same message to one recipient over several channels at once. Each channel gets its own message and its own status, and all of them share one dispatchId.

Also called a multi-channel send, an omnichannel message, or a fan-out send.

The request

## What the request looks like

One JSON body with a to object and a channels array. Authenticate with your API key as a Bearer token.

POST /messageJSON

```
{
  "to": {
    "phone": "+33612345678",
    "email": "client@example.com"
  },
  "subject": "Your order is ready",
  "text": "Hello, your order is ready for pickup.",
  "channels": [
    {
      "channel": "WHATSAPP"
    },
    {
      "channel": "EMAIL"
    }
  ]
}
```

Request body: the recipient's phone and email in to, and the two channels to use.

curlShell

```
curl -X POST https://api.unlimitedmessaging.app/message \
  -H "Authorization: Bearer $UM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": {
    "phone": "+33612345678",
    "email": "client@example.com"
  },
  "subject": "Your order is ready",
  "text": "Hello, your order is ready for pickup.",
  "channels": [
    {
      "channel": "WHATSAPP"
    },
    {
      "channel": "EMAIL"
    }
  ]
}'
```

The same request with curl. Replace $UM\_API\_KEY with an API key from your dashboard.

1. 01  
### to  
Who receives the message: phone for WhatsApp, email for email. Give both to reach the same customer on the two channels.
2. 02  
### channels  
The channels to send on, for example WHATSAPP and EMAIL. Each entry can override text, html and subject for that channel only.
3. 03  
### subject, text, html  
The shared content. The subject is used by email, which also accepts an HTML body. WhatsApp uses the text.
4. 04  
### accountId (optional)  
Which connected account sends. Leave it out and your only active account on that channel is used: your WhatsApp number, your mailbox.
5. 05  
### Authorization: Bearer  
Your API key, sent as a Bearer token to https://api.unlimitedmessaging.app.

What happens next

## One message per channel, grouped by a dispatchId

The API does not merge the channels into one opaque job. Each channel becomes a real message you can follow on its own.

1. 01  
### You send one request  
A single POST /message with to and channels. No loop on your side, no second call for the other channel.
2. 02  
### One message is created per channel  
The API creates a WhatsApp message and an email message, both tagged with the same dispatchId so you can find them together.
3. 03  
### Each one leaves from your account with its own status  
The WhatsApp message goes out from your number, the email from your mailbox. Each message keeps its own status, so you know exactly how each channel went.

API request for WhatsApp and email together

1API request for WhatsApp and email together

Attachments per email at most

20Attachments per email at most

Total attachment size per email

25 MBTotal attachment size per email

Free plan, email and multi-channel included

0 EURFree plan, email and multi-channel included

Per-channel content

## Tailor the message to each channel

An email and a WhatsApp message don't read the same way. Keep one shared content and override only what differs, per channel entry.

POST /messageJSON

```
{
  "to": {
    "phone": "+33612345678",
    "email": "client@example.com"
  },
  "subject": "Your order #1042 is ready",
  "html": "<p>Hello,</p><p>Your order <strong>#1042</strong> is ready for pickup at our store.</p>",
  "channels": [
    {
      "channel": "WHATSAPP",
      "text": "Hello, your order #1042 is ready for pickup."
    },
    {
      "channel": "EMAIL"
    }
  ]
}
```

The email gets the HTML body and the subject. WhatsApp gets its own shorter text.

Good to know

### HTML becomes plain text on WhatsApp

WhatsApp has no HTML. If you only provide html and no text for the WhatsApp channel, it receives the HTML converted to plain text. Want a different wording? Set text on the WHATSAPP entry, as above. The same goes for subject and html on the EMAIL entry.

Channel by channel

## What changes between WhatsApp and email

Same request, but each channel keeps its own rules.

__How each channel handles the same POST /message.__
| WhatsAppYour own number | EmailYour own mailbox                              |                                                  |
| ----------------------- | -------------------------------------------------- | ------------------------------------------------ |
| Sent from               | Your WhatsApp number, linked by scanning a QR code | Your email address, through your own mail server |
| Recipient               | to.phone                                           | to.email                                         |
| Subject                 | Not used                                           | Required                                         |
| Body                    | text, or the HTML converted to plain text          | text and/or HTML                                 |
| Attachments             | 1 file per message                                 | Up to 20 files, 25 MB in total                   |
| Incoming replies        | Reach your WhatsApp number                         | Land in the dashboard inbox, grouped by thread   |

Only one channel

## The single-channel form still works

Not every customer gives you both a phone number and an email. For one channel, skip to and channels and use recipient: a phone number sends on WhatsApp, an email address sends by email. An email needs a subject.

As with the multi-channel form, accountId is optional: without it, your only active account on that channel is used.

POST /messageJSON

```
{
  "recipient": "client@example.com",
  "subject": "Your invoice",
  "text": "Hello, your invoice for this month is now available."
}
```

Single-channel form: recipient is an email address, so this message goes out by email.

Your number, your mailbox, free

## Your own infrastructure, at no extra cost

You bring the sender identities your customers already know. We carry the messages.

### Your own WhatsApp number

Link the number your customers already have saved by scanning a QR code. Unlimited messages at a flat monthly price, and a Free plan with no credit card.

### API, SDKs, dashboard and MCP

Call the API directly or through the TypeScript and Python SDKs, compose by channel in the dashboard, or let Claude or ChatGPT send through the send-message tool of the MCP server.

1. 01  
### Your own mailbox  
Connect it over IMAP/SMTP: Gmail with a Google app password, your own domain, or any IMAP/SMTP provider. Server settings are detected from the address.
2. 02  
### Free on every plan  
The email channel and multi-channel sending are included on every plan, the Free plan included.

Limits to keep in mind

### What to check before you send

Outlook, Hotmail and Microsoft 365 mailboxes are not supported yet: they require OAuth, which is planned for later. WhatsApp takes one file per message, while an email carries up to 20 attachments (25 MB in total). On the Free plan, emails carry a small "Sent with UnlimitedMessaging.app" footer, like WhatsApp messages; the Medium and Max plans remove it. Hard bounces are detected, and the address is then paused for 30 days on that mailbox to protect your sender reputation.

FAQ

## Questions about sending email and WhatsApp in one request

Yes. Call POST /message with to containing the recipient's phone and email, and channels set to WHATSAPP and EMAIL. The API creates one message per channel, grouped by a shared dispatchId.

Yes. The email channel and multi-channel sending are available on every plan, including the Free plan, which needs no credit card. On the Free plan, messages carry a small "Sent with UnlimitedMessaging.app" footer; the Medium and Max plans remove it.

Yours. WhatsApp messages leave from the number you linked by QR code, and emails from your own address through your own mail server, with a copy in your Sent folder. UnlimitedMessaging never provides the sending address, so your deliverability and reputation stay your own.

Each channel gets its own message with its own status, and all of them share the same dispatchId. You see how the WhatsApp message and the email each went, independently.

Yes. Each entry in channels can override text, html and subject. If the WhatsApp entry has no text, it receives the HTML converted to plain text.

Gmail with a Google app password, your own domain, or any IMAP/SMTP provider; server settings are detected from the address. Outlook, Hotmail and Microsoft 365 are not supported yet because they require OAuth, planned for later.

No. Besides the API and the TypeScript and Python SDKs, you can compose by channel in the web dashboard, with an HTML editor for email, or ask Claude or ChatGPT to send through the send-message tool of the MCP server.

Sources

## Sources & references

To check the information in this article for yourself:

1. [01UnlimitedMessaging API documentation↗UnlimitedMessaging](https://docs.unlimitedmessaging.app)
2. [02TypeScript SDK (@unlimited-messaging/sdk)↗npm](https://www.npmjs.com/package/@unlimited-messaging/sdk)
3. [03Python SDK (unlimited-messaging)↗PyPI](https://pypi.org/project/unlimited-messaging)
4. [04RFC 5322 - Internet Message Format↗IETF](https://www.rfc-editor.org/rfc/rfc5322)
5. [05Sign in with app passwords↗Google Account Help](https://support.google.com/accounts/answer/185833)

![Ilian, senior software engineer](https://ilianazz.com/images/iliazz.png)

Written by

[Ilian](https://unlimitedmessaging.app/authors/ilian) · Senior Software Engineer

A senior software engineer, he founds and runs several tech companies. He builds products around messaging APIs, automation and AI integration, and shares here what he learns while building.

[View LinkedIn profile↗](https://www.linkedin.com/in/ilianAzz/)Updated September 27, 2026

![](https://unlimitedmessaging.app/assets/logos/whatsapp.svg)![](https://unlimitedmessaging.app/assets/logos/email.svg)![](https://unlimitedmessaging.app/assets/logos/sms.svg)

## Reach your customers on WhatsApp and by email, in one call.

Link your WhatsApp number, connect your mailbox, and send your first multi-channel message on the Free plan. No credit card.

[Start for free→](https://app.unlimitedmessaging.app)

Similar articles
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fsend-from-your-own-mailbox-and-number-en.png&w=3840&q=75)Why your own mailbox and number beat a shared senderWhy sending from your own address and WhatsApp number beats a shared sender: your reputation, your identity, your replies, free on every plan.](https://unlimitedmessaging.app/articles/send-from-your-own-mailbox-and-number)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fgmail-imap-smtp-app-password-en.png&w=3840&q=75)Connect Gmail by IMAP/SMTP in 3 steps with an app passwordGmailConnect your own Gmail over IMAP/SMTP in three steps with a Google app password, free on every plan.](https://unlimitedmessaging.app/articles/gmail-imap-smtp-app-password)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fwhatsapp-api-en.png&w=3840&q=75)WhatsApp REST API: your first message from code, step by stepProgrammatic WhatsApp messaging via a simple REST API.](https://unlimitedmessaging.app/articles/whatsapp-api)
