One WhatsApp API. Signed webhooks. Groups included.
Send and receive WhatsApp messages from your code for $25 a number, flat. Run groups and communities, and get a signed webhook for everything that happens on the number. Free sandbox, forever, no card.
- Free sandbox, forever
- No card for the sandbox
- Unlimited messages on paid numbers
Unlimited messages on every paid number, with no per-message fees.
WhatsApp sets its own rules for each number. Send to people who agreed to hear from you.
CHANNEL=YOUR_CHANNEL_ID
URL=https://api.hellohop.app/v1/sessions/$CHANNEL
curl -X POST "$URL/messages/text" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "66XXXXXXXXX",
"text": "Hello from HelloHop"}'const channel = "YOUR_CHANNEL_ID";
const base = "https://api.hellohop.app/v1/sessions";
const res = await fetch(
`${base}/${channel}/messages/text`,
{
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "66XXXXXXXXX",
text: "Hello from HelloHop",
}),
},
);
console.log(await res.json());Independent WhatsApp API for developers
- Signed webhooks that survive your downtime
- Groups and communities
- MCP server
- Health per number
What the API covers
Signed webhooks that survive your downtime.
An "outcome unknown" state.
If WhatsApp does not confirm a send, the API answers 504
send_unconfirmedand tells you the message may have gone out. You decide whether to resend. We never resend for you.Messages.
Text with replies and mentions, polls, contact cards, reactions, deletes and read receipts.
Media.
Send images, video, audio, voice notes and documents from a URL. Download media you receive.
Groups and communities.
Test deliveries.
Fire a signed test event at your endpoint from the API before you write receiver code. Nothing is sent to WhatsApp.
Health per number.
MCP server.
Let an AI agent send messages and read groups through tools instead of hand-written calls.
Free sandbox, forever.
Signed webhooks that survive your downtime.
Every delivery is signed with HMAC-SHA256 over the raw body. The delivery id stays the same across retries, so you can deduplicate. Events go into a durable outbox before they count as handled, and events your endpoint never accepted are parked for inspection instead of dropped.
Groups and communities.
Create groups, add and remove people, set the subject, description and permissions, pull invite links, and create groups inside a community. Per-person results tell you who was added and who was not, and why.
Health per number.
Five readings: whether the number can send, age, saved contacts, replies, and its proxy. Each shows the evidence behind it and when it was measured.
Free sandbox, forever.
One sandbox channel per account for testing: 180 messages a day, 10 new chats a month, and more. Real numbers have no send cap from us.
Start freeSend your first WhatsApp message in about five minutes
Create an account.
Enter your email and we send a sign-in link. No password. Every account gets a free sandbox channel.
Connect your number.
Add a channel, open WhatsApp on the phone, go to Linked devices and scan the QR code. The channel goes live and hands you its API token.
Call the API.
Send a message with the request above, point a webhook at your server, and fire a test event to check your receiver.
Want a second number? Add another channel. Nothing else changes.
Get your free sandboxWhat comes back
ExamplePOST /v1/sessions/{name}/messages/text
{
"id": "3EB0XXXXXXXXXXXX",
"chat_jid": "[email protected]",
"timestamp": "2026-01-01T09:00:00Z",
"status": "server_ack"
}POST your webhook URL
x-wagate-event: message.status
x-wagate-delivery: 9f2c…e41a
x-wagate-signature: 5b1d…c07e
{
"id": "evt_XXXXXXXX",
"type": "message.status",
"session": "YOUR_CHANNEL_ID",
"timestamp": "2026-01-01T09:00:02Z",
"payload": {
"ids": [
"3EB0XXXXXXXXXXXX"
],
"chat_jid": "[email protected]",
"recipient_jid": "[email protected]",
"status": "delivered",
"timestamp": "2026-01-01T09:00:02Z"
}
}POST /v1/sessions/{name}/groups/{group}/participants
{
"results": [
{
"jid": "[email protected]",
"status": "ok",
"matched_by": "a"
},
{
"jid": "[email protected]",
"status": "error_403",
"error": "not authorized: the target's privacy settings block being added, or we are not admin",
"matched_by": "a"
},
{
"jid": "[email protected]",
"status": "unknown",
"error": "WhatsApp's answer could not be matched to this participant, so the change may or may not have applied; read the group before retrying",
"matched_by": "unknown"
}
]
}What comes back
One request sends it. The reply carries the message id and status. Delivery and read receipts follow as signed webhooks.
HelloHop vs. the other ways to get a WhatsApp API
| Feature | HelloHop | Unofficial WhatsApp APIs | Self-hosted gateways | Official Cloud API |
|---|---|---|---|---|
| Flat price per number: unlimited messages, no per-message fees, nothing extra to buy | Yes | Partial | Yes (you pay hosting) | No Per message |
| Live in minutes: just scan a QR | Yes | Yes | No Run your own server | No Business verification |
| Add people to groups and communities, see who got in | Yes | Partial | Groups only | No |
| Signed webhooks | Yes | No | Partial | Partial |
| Tells you when a send's outcome is unknown | Yes | No | No | No |
| Number health, with the evidence behind it | Yes | Partial (one score) | No | One quality rating |
| Free sandbox that never expires | Yes | Partial (trials) | Yes (self-run) | Capped test number |
| Everything else you'd expect | ||||
| Delete a message you sent, for everyone | Yes | Partial | Partial | No |
| Reactions | Yes | Partial | Yes | Partial |
| Polls | Yes | Partial | Yes | No |
| Contact cards | Yes | Partial | Yes | Partial |
| Group moderation: remove members, promote and demote admins, lock a group to admins | Yes | Partial | Partial | Partial (remove only) |
| Check which numbers are on WhatsApp before you send | Yes | Partial | Partial | No |
| Number warm-up built in | Yes | Partial | No | n/a |
✗ = not found in public docs. Partial = some providers, or a limited version. Based on the public docs of 21 providers reviewed in October 2026. Only the official route is sanctioned by Meta. HelloHop is independent and not affiliated with WhatsApp or Meta.
WhatsApp sets its own rules for each number. Send to people who agreed to hear from you.
One flat price per number. Cheaper as you grow.
Yearly saves about 20%.
1 to 4 channels
$25
per channel per month
or $240 per year
Start free5 to 9 channels
$20
per channel per month
or $192 per year
Start free10 or more channels
$11
per channel per month
or $106 per year
Start free
A channel is one WhatsApp number. Each channel includes:
- Unlimited messages. No per-message fees.WhatsApp sets its own rules for each number. Send to people who agreed to hear from you.
- Send and receive, with replies and mentions
- Groups and communities
- Signed webhooks, the delivery log and test sends
- The health panel and warm-up ramp
- Your own API URL and token
Every account also gets one free sandbox channel, for testing, forever. A card is needed only when you add a real number.
No per-message fee. No sales call to find the number.
When your total crosses 5 or 10 channels, in either direction, every channel moves to the new price at its next renewal. No mid-cycle charge or credit.
Cancel whenever you like. Your channel keeps working until the end of the period you paid for, then it stops. We delete it 30 days later.
Support
Our support chat is on every page and in the console. Maya, our AI assistant, answers first so you get a reply right away. Josh is our human support desk: a person on the team reads the thread and follows up, usually within a few hours, and any human reply is labeled "Josh (Human)". Replies also go to your email so you do not miss them.
Prefer email? [email protected].
FAQ
What is HelloHop?
HelloHop is an API that puts a WhatsApp number behind HTTP calls and webhooks. You send and receive messages, run groups and communities, and get a signed webhook for every event on the number. Pricing is a flat $25 a month per number, dropping to $20 and $11 as you add numbers.
Is HelloHop an official WhatsApp product?
No. HelloHop is an independent API and is not affiliated with WhatsApp or Meta. It links your number the way WhatsApp Web links a device, so there are no message templates to get approved and no per-conversation fees. The trade is that the number is a real WhatsApp account, so how you use it matters.
Is my number safe?
The number stays on your phone, and it stays yours. HelloHop sends through the linked session only when you tell it to, and we do not cap or throttle paid numbers, so pacing is up to you. WhatsApp can still restrict a number that behaves badly, which is why each number has a health panel with five readings and the evidence behind them.
How do I send a WhatsApp message with an API?
Link your number by scanning a QR code, then POST to /v1/sessions/<channel>/messages/text with your token, the recipient's phone number and the text. The response returns a message id and a status of server_ack. Delivery and read receipts arrive later as webhooks.
How are HelloHop webhooks signed?
Every delivery carries an X-Wagate-Signature header: the lowercase hex HMAC-SHA256 of the raw request body, keyed with your receiver's secret. A retry keeps the same X-Wagate-Delivery id, so you can verify the signature and skip duplicates. Code for Node and Python is in the docs.
What happens if my server is down or a send is not confirmed?
Events are written to a durable outbox and retried, and events your endpoint never accepted are parked for inspection. If WhatsApp does not confirm a send, you get 504 send_unconfirmed, meaning the message may have gone out. Check before you resend.
Can I manage WhatsApp groups and communities through the API?
Yes. You can create groups, add and remove participants, set the subject, description and permissions, get invite links, and create groups inside a community. Each add returns a per-person result with the reason when someone could not be added.
Can I send images, video and documents?
Yes. Send images, video, audio, voice notes and documents from a URL, with captions and file names. You can also download media you receive.
Can I use my existing number?
Yes. One number is one channel. An established number with a real address book usually starts out healthier than a fresh SIM. Open WhatsApp on the phone now and then so the linked session does not expire.
What do I get free?
Every account gets one free sandbox channel, forever, with no card. Its daily and monthly allowances, counted in Bangkok time (UTC+7): 180 messages a day, 10 new chats a month, 20 number checks a day, 5 group adds a day, and 1,500 API calls a month. A request that would go over an allowance is refused whole, before anything is sent.
When do I need a card?
Only when you add a real number. The sandbox never asks for one. A real channel starts at $25 a month, or $240 a year, and has no send cap from us.
Are there message limits?
Paid numbers have no daily send cap and no message allowance from us. The free sandbox channel has daily and monthly allowances, listed under "What do I get free?". API requests are rate limited to protect the service, and the 429 response tells you which limit you hit and how long to wait.
How do I cancel?
Cancel a channel from Account, Plan and billing in the console. The channel keeps working until the end of the period you paid for, then stops, and we delete it 30 days later. The Terms include a seven-day cancellation right.
How do I get help?
Use the chat on this site or in the console, or email [email protected]. Maya, our AI assistant, answers first, and Josh, our human desk, follows up.