UltraMsg alternative: how WaAPI compares
Both link your own number by QR code and charge per number, not per message. UltraMsg costs $39 a month for each number, WaAPI $10 — and WaAPI’s API also manages groups, runs polls and reaches channels.
$10 per number / month · No per-message fees · Cancel anytime
At a glance
Same setup, about a quarter of the price
Sending and receiving messages work on both. UltraMsg stops at sending to groups and reading them; channels, communities, status, labels and calls are not in its docs.
|
UltraMsg
Independent, own number by QR
|
WaAPI
Independent · flat rate
|
|
|---|---|---|
| How it connects | Your own number, linked by scanning a QR code; no pairing code in the docs. Its terms say the service is not supported or approved by WhatsApp Inc. | A number that runs the app, linked by QR code or pairing code |
| Price per number | $39 a month or $390 a year per instance; one instance is one number | $10 a month for every number |
| Free option | 3 days free, 100 messages a day | Test free for 3 days without a card; messages go only to your own test number |
| Messages | Text up to 4,096 characters, image, sticker, document, audio, voice note, video, contact, vCard, location, reaction, delete | Text, media, contacts, location, polls, reactions, edits, deletes, forwards |
| Groups | Send to a group; read the group list and a group's details. No endpoints to create or manage groups | Create groups, manage participants and settings, invites and join requests |
| Channels, communities, status, labels, calls | Not in the docs | Channels, communities, status posts, labels; calls in beta |
| Webhooks | Four switches: message received, message created, delivery and read receipts, media download | Per instance, with the events you choose; signed with your secret |
| SDKs and tools | PHP SDK and examples in many languages; Pabbly, Pipedream and Integrately; Make through a community app | Packages for PHP, Laravel, Python, Node.js; n8n node; Zapier in early access; hosted MCP server with 142 tools |
| Pacing | 1 second between messages by default, up to 15 seconds once 10 or more wait in the queue. Own advice: 6 to 12 messages a minute | On by default: 1–2 s between messages, 20 new conversations an hour, 60 a day per number; can be switched off |
As of November 2026, read on each provider’s own pages. Sources: UltraMsg pricing · UltraMsg FAQ · Terms · API docs · Sending text · Instance settings · PHP SDK · Make app
UltraMsg pricing
$39 or $390 an instance, $10 a number
UltraMsg bills each instance — one number — at $39 a month or $390 a year, with no fee per message. WaAPI bills $10 a month per number and has no yearly plan; the last column is twelve monthly payments.
| Numbers | UltraMsg monthly | UltraMsg yearly | WaAPI monthly | WaAPI, 12 months |
|---|---|---|---|---|
| 1 | $39 / month | $390 / year | $10 / month | $120 |
| 3 | $117 / month | $1,170 / year | $30 / month | $360 |
| 5 | $195 / month | $1,950 / year | $50 / month | $600 |
| 10 | $390 / month | $3,900 / year | $100 / month | $1,200 |
As of November 2026, read on each provider’s own pages. Sources: UltraMsg pricing · UltraMsg FAQ
Which one fits
UltraMsg or WaAPI?
When UltraMsg is the better choice
- Your code already runs on UltraMsg's PHP SDK or one of its Pabbly, Pipedream or Integrately connectors, and sending and receiving is all you need.
- You would rather set one fixed delay between messages yourself than have new conversations counted against a budget.
When WaAPI fits better
- The price matters: $10 a month per number instead of $39.
- You create and run groups, send polls, or work with channels, communities, status, labels or calls through the API.
- You build with n8n, Zapier or an AI agent over MCP, or link numbers by pairing code.
Beyond sending text
Where the two APIs part
Groups you run, not only read
UltraMsg’s docs have three group endpoints, all of them for reading: the list of groups, their ids and one group’s details. A message can go to a group id. WaAPI also creates groups, adds and removes participants, changes settings, and handles invite links and join requests.
Polls, edits and forwards
UltraMsg sends text of up to 4,096 characters, images, stickers, documents, audio, voice notes, video, contacts, vCards, locations and reactions, and can delete a message. Polls, edits and forwards are not in its docs. On WaAPI you create a poll and read its votes, edit a sent message and forward one.
The rest of the app
Channels, communities, status, labels and calls do not appear in UltraMsg’s docs. WaAPI creates, searches and subscribes to channels, builds communities and posts to them, publishes status updates, sets labels on chats and, in beta, places and answers calls.
A delay you set, or a budget you get
UltraMsg waits 1 second between messages by default and up to 15 seconds once 10 or more are queued, and its FAQ advises 6 to 12 messages a minute. WaAPI paces each number too, and also counts how many people you write to for the first time: 20 an hour, 60 a day.
Preventing restrictions and getting unlockedTools around the API
UltraMsg publishes a PHP SDK and code examples for many languages, lists Pabbly, Pipedream and Integrately as integrations, and reaches Make through a community app. Its site names no n8n node, Zapier app or MCP server. WaAPI ships packages for PHP, Laravel, Python and Node.js, its own n8n node, Zapier in early access, and a hosted MCP server with 142 tools for AI agents.
How the MCP server worksSwitching
Moving from UltraMsg
- 1. Log the instance out. UltraMsg’s logout frees the number. Scan the QR code of a new WaAPI instance, or type in a pairing code instead.
- 2. Rename three fields. UltraMsg takes
token,toandbodyas request parameters. On WaAPI the token goes into the Authorization header,tobecomeschatIdandbodybecomesmessage. - 3. Pick the webhook events. Instead of UltraMsg’s four on/off switches, choose the events per instance and check the signature with your secret.
curl --request POST \
--url https://waapi.app/api/v1/instances/123/client/action/send-message \
--header 'authorization: Bearer your-api-token' \
--header 'content-type: application/json' \
--data '{
"chatId": "[email protected]",
"message": "Your parcel left our warehouse this morning."
}'
<?php
$instanceId = 123;
$apiToken = 'your-api-token';
$ch = curl_init("https://waapi.app/api/v1/instances/{$instanceId}/client/action/send-message");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'authorization: Bearer ' . $apiToken,
'content-type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'chatId' => '[email protected]',
'message' => 'Your parcel left our warehouse this morning.',
]),
]);
echo curl_exec($ch);
import requests
instance_id = 123
api_token = "your-api-token"
response = requests.post(
f"https://waapi.app/api/v1/instances/{instance_id}/client/action/send-message",
headers={"authorization": f"Bearer {api_token}"},
json={
"chatId": "[email protected]",
"message": "Your parcel left our warehouse this morning.",
},
)
print(response.json())
const instanceId = 123;
const apiToken = 'your-api-token';
fetch(`https://waapi.app/api/v1/instances/${instanceId}/client/action/send-message`, {
method: 'POST',
headers: {
authorization: `Bearer ${apiToken}`,
'content-type': 'application/json',
},
body: JSON.stringify({
"chatId": "[email protected]",
"message": "Your parcel left our warehouse this morning.",
}),
})
.then((res) => res.json())
.then(console.log);
Limits
Limits and sending safely
There is no cap on how many messages you send. In our experience, what gets numbers restricted is contacting many people who never wrote to you — so send protection is on by default for every new number.
What counts as a new conversation: a person who has never written to your number and whom you have not messaged in the last 7 days. Replies to people who wrote to you first and messages to groups and channels never count, and a follow-up within those 7 days doesn’t count twice.
Need more? Spread new contacts across several numbers, or switch send protection off for a number after confirming the warning — at your own risk.
Flat rate, simple
No message quota and no per-message fees; new contacts are paced by send protection. Media, groups, channels, SDKs and MCP included. Cancel anytime.
- No per-message fees
- No per-user fees
- No setup fee
- Cancel anytime
UltraMsg vs. WaAPI: questions
Price, groups and moving a number.
-
Yes. In November 2026 UltraMsg listed $39 a month or $390 a year per instance, and one instance is one number. WaAPI costs $10 a month per connected number. Neither charges per message.
-
On WaAPI, yes: create groups, add and remove participants, change settings, share invite links and answer join requests. UltraMsg’s docs cover sending to a group and reading the group list and details, with no endpoints to create or manage groups.
-
Its site names neither. It lists Pabbly, Pipedream and Integrately as integrations, and a community app connects it to Make. WaAPI has its own n8n node and a hosted MCP server with 142 tools.
-
Yes. Log the instance out on UltraMsg, then link the same number to a WaAPI instance by QR code or pairing code. The account behind the number stays the same.
Run your number for $10 a month, not $39
Test free for 3 days · No credit card.