Unofficial WhatsApp API for your code and your team
Low-cost WhatsApp API for developers, from $6 a month
REST API and webhooks on your own number, with no Meta per-message fees — plus a web app, Chrome extension and Google Sheets add-on for your team.
- No credit card required
- 7-day free trial
- Cancel anytime
Every plan includes
curl -X POST https://api.wasenderplus.com/v1/messages \
-H "Authorization: Bearer $WS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550132",
"text": "Hi Emily, your order #4821 ships today."
}'
HTTP/1.1 202 Accepted
{ "id": "msg_8f2a91", "status": "queued" }Paste the key from your dashboard and run it, or try it in Postman.Get a free API key →
POST https://your-app.com/webhooks/whatsapp
- 200message.queued msg_8f2a91
- 200message.sent paced, gap 6 s
- 200message.delivered +1 415•••• 0132
- 200message.read
- 200message.replied “Can I pick it up instead?”
- 1Scan a QR code to link your number
- 2Send with one REST API call
- 3Get replies and receipts by webhook
WASenderPlus is an unofficial WhatsApp API for developers that runs through a linked WhatsApp Web session, not Meta’s Cloud API. Connect your number by QR code, send through a REST API, and receive replies and delivery events by webhook. Plans start at $6 a month, and your team answers replies in a shared inbox.
WhatsApp automation for developers, support teams and marketers
Three jobs, three starting points. Pick the one that sounds like your week.
“Customers message us and we answer three hours later.”
You run a small business
One number, shared by everyone who needs it. Auto-replies cover the hours nobody is watching.
See the shared inbox“I need to reach 12,000 customers on Saturday.”
You run marketing
Personalised message bodies, audience segments, paced delivery, and read receipts you can export.
See broadcasting“My list already lives in a spreadsheet.”
You run ops
Add a column, hit send from the sidebar. Delivery status and replies write back into the same sheet.
See the Sheets add-onFour surfaces, one account
One WhatsApp account: API, web app, Chrome extension and Google Sheets
Contacts, message library, opt-out list and history stay shared across every surface and your API. Pick the interface each person needs without rebuilding customer records.
Web app
Manage the shared inbox, claim conversations, and hand over chats with tags and internal notes attached.
Chrome extension
Work inside your existing WhatsApp Web tab, with sending controls connected to your current session.
Google Sheets
Use column headers as merge fields and write delivery status and replies back to each row.
Desktop & mobile
Answer assigned conversations away from the browser, with push notifications for new assignments.
For developers
WhatsApp REST API and webhooks: send, receive and track delivery
WASenderPlus works through your linked WhatsApp Web session; it is not Meta’s official Cloud API. Every plan includes the REST API and webhooks, with Bearer token authentication on every request. Numbers, pacing and opt-outs stay shared with your team.
curl -X POST https://api.wasenderplus.com/v1/messages \
-H "Authorization: Bearer $WS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550132",
"text": "Hi Emily, your order #4821 ships today."
}'const res = await fetch('https://api.wasenderplus.com/v1/messages', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WS_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: '+14155550132',
text: 'Hi Emily, your order #4821 ships today.',
}),
});import os, requests
requests.post(
"https://api.wasenderplus.com/v1/messages",
headers={"Authorization": f"Bearer {os.environ['WS_API_KEY']}"},
json={
"to": "+14155550132",
"text": "Hi Emily, your order #4821 ships today.",
},
)$ch = curl_init('https://api.wasenderplus.com/v1/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WS_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'to' => '+14155550132',
'text' => 'Hi Emily, your order #4821 ships today.',
]),
]);
curl_exec($ch);Unofficial API, not Meta’s Cloud API. Every API send passes the same pacing and opt-out checks as the web app.
Every kind of message
Send text, media, documents and voice notes through the WhatsApp API
Text, media, documents, voice notes and locations — send them from the app or from your own code.
Message types
Send to
What you get
WhatsApp API features that keep your code and your team in sync
Bulk messaging queue
Send a mass campaign as individual chats, with personalized text per contact and pacing controls on the queue.
Automated replies
Answer recurring questions with keyword responses that work like a simple chatbot, then route the customer to an agent when a person is needed.
Shared team inbox
Claim conversations, add internal notes and assign follow-ups while the customer context stays attached.
Scheduled follow-ups
Schedule a campaign ahead of time and use reply-aware follow-ups to manage ongoing conversations.
Contact records
Keep custom fields, audience tags and conversation history together before you pick recipients.
Shared opt-out list
Honour recognised opt-out keywords across every surface and the API, even when a contact is imported again.
Use cases
WhatsApp API use cases: orders, reminders, alerts and follow-ups
Start with the customer event — an order, an OTP or 2FA code, a booking — then define the message and who owns the reply. Review each workflow before automating it.
Route support conversations
Route incoming questions to a shared inbox where agents claim chats and keep the conversation history.
Send order updates
Connect order confirmation, dispatch notice and delivery update from your website or store to the customer’s current purchase.
Confirm appointments
Send a booking reminder with the appointment details and a clear way to ask for a change.
Qualify incoming leads
Use keyword replies to collect qualifying details before the conversation is assigned to sales.
Follow up with customers
Segment consenting customers by purchase history and invite a reply with a relevant follow-up.
Recover abandoned carts
Send a consenting shopper the cart link, then check the current purchase state before another reminder.
Live in an afternoon
Connect your WhatsApp number and send your first API message
Link your sending number
Link your WhatsApp number — personal or Business app — by QR code. No Meta business verification needed; a spare number makes a good sandbox for testing.
Import consenting recipients
Bring recipients from CSV, Google Sheets, Shopify or WooCommerce, keeping consent sources on the contact records.
Preview each message
Map merge fields, prepare body variants and preview the exact message each recipient will receive.
Monitor the paced queue
Watch delivered, read and replied statuses per recipient, and pause the run whenever you need to review it.
Built-in CRM
WhatsApp CRM: the customer record behind every reply
Every reply arrives with the customer record behind it: purchase details, consent source and agent notes. Your team reads the context before answering, without switching tools. See how it works as a WhatsApp CRM.
- Fill contact fields and tags from your spreadsheet or store data
- Read conversation history alongside broadcasts and automated replies
- Check each contact’s consent source and current opt-out status
- Keep assignment notes attached when another agent takes over
- Reuse saved audience segments for later campaigns
- Last order
- #4821 · $84.50
- Opted in
- Checkout · 12 Mar
- Assigned to
- Rachel K.
- Last reply
- 4 minutes ago
Free WhatsApp tools to prepare your messages
Prepare chat links, check numbers and format messages before your first campaign — no account needed.
By sector
WhatsApp automation set up for your industry
Each industry page ships with the four features that matter for it and message copy you can clone.
WhatsApp integrations: Shopify, WooCommerce, Zapier, n8n and Sheets
Why teams move their WhatsApp sending to WASenderPlus
“First response went from three hours to four minutes, with the same two people answering.”
“12,000 messages went out on a Saturday. Two people opted out and nothing got flagged.”
“Our admissions list lives in Sheets. Now the sheet sends and logs the replies itself.”
WhatsApp API pricing: $6 a month, unlimited messages
Every plan unlocks every feature, the REST API and all four ways to send, with unlimited messages. Plans differ only in how many numbers you connect.
Solo
For a solo founder or developer
- 1 connected WhatsApp number
- Unlimited messages
- Every feature and all four apps
Team
MOST CHOSENFor a team sharing one inbox
- 3 connected WhatsApp numbers
- Unlimited messages
- Every feature and all four apps
Scale
For high-volume senders
- 10 connected numbers with rotation
- Unlimited messages
- Every feature and all four apps
Included in every plan
Four ways to send
- Web app & shared inbox
- Chrome extension
- Google Sheets add-on
- Desktop & mobile apps
For developers
- REST API
- Delivery & reply webhooks
- n8n and Zapier
- Shopify & WooCommerce
For your team
- Unlimited agents
- Unlimited messages
- Auto-reply, scheduling & drip
- Contacts & CRM
7-day free trial on every plan, no credit card, cancel anytime. WASenderPlus runs on WhatsApp Web through your own number, not Meta’s Cloud API — so there are no per-message fees, and we pace sends to protect your number.
Deliverability
No message cap — pacing that protects your WhatsApp number
These are WASenderPlus’s default queue settings, not sending limits published by WhatsApp. They apply to each connected number’s session instance, whether a message comes from your code or the app. No tool is truly anti-ban: random delays between sends and a gradual warm-up lower the risk, they do not remove it. Blocks, reports and automated bulk messaging can all contribute to account restrictions. Review the sending limits guide before queuing campaigns. These defaults do not prevent restrictions or replace consent.
Every plan has unlimited messages — no monthly cap. WASenderPlus controls pace instead: a new number sends slower and speeds up as it warms. If a run would go faster than your number can safely handle, we flag it first and tell you why.
| Number age | Suggested per day | Gap between sends |
|---|---|---|
| Week 1 | 250 | 20–40s |
| Week 2–3 | 800 | 12–25s |
| Month 2 | 2,500 | 6–11s |
| Warmed, low reports | 6,000 | 4–8s |
Switching?
Switching WhatsApp API providers? Compare first
Moving from other WhatsApp APIs or platforms? Compare endpoints, documentation, reliability and pricing first — we note where they beat us.
WhatsApp API support: guides, live chat and status
Get your WhatsApp API key and send your first message today
No card. 7 days. API included from $6/mo.
WhatsApp API questions, answered
What is the WhatsApp API and how do I use it?
A WhatsApp API lets your software send messages and receive events without anyone opening a chat. WASenderPlus’s API is unofficial and runs through your linked WhatsApp Web session, not Meta’s Cloud API. You send and schedule through a REST API on your connected numbers. Webhooks bring replies and delivery updates back into your system.
How do I send my first API message?
Connect your number and create an API key. Then send an HTTPS POST with the key in the Authorization header. The JSON body holds the recipient and the text, sent to a test contact who has opted in. Check the response, then watch for the delivery event.
Is the WhatsApp API free?
Not free, but it is not an add-on either. The REST API and webhooks come with every plan, starting at $6/mo, with unlimited messages. The 7-day trial needs no card. When you compare providers, check per-message fees, extra numbers and your own hosting — WASenderPlus charges no per-message fees.
How do I get and protect my API key?
Create the key as the API docs describe. Keep it on your server in an environment variable, as the examples do. Never put it in browser code, a repository or a screenshot. Rotate it straight away if it leaks or a team member with access leaves.
How do I send WhatsApp messages from PHP?
Adapt the PHP example on this page. It uses cURL, reads the key from an environment variable and builds the body with json_encode. With Guzzle, keep the same endpoint, headers and fields. Add a timeout, check the response and handle errors before you send from production code.
How do webhooks deliver replies and delivery updates?
You set a URL, and WASenderPlus posts delivered, read, replied and opted-out events to it. Verify each request as the API docs describe, and match it to the right message and contact. Make the handler safe to run twice, because the same event can arrive more than once.
What is the difference between the Cloud API, a Web gateway and the Business App?
The Cloud API is Meta’s official hosted platform, with onboarding and approved templates. Meta prices it per message, with rates that vary by message category and country. A Web gateway works through a linked WhatsApp Web session. The Business App is the phone app for one person. WASenderPlus is an unofficial API of the gateway kind: it links your number by QR code, not through Meta.
Which message types can I send?
Text, images and video, PDF documents, voice notes, contact cards and locations. The code examples on this page send text. The API docs list which formats each endpoint accepts before you build media into an integration.
How should I handle failed requests and timeouts?
Read the HTTP status and the response body before retrying. A timeout does not tell you whether the message was accepted. Store your own event ID with each send and reconcile before trying again. Check the opt-out list and the order state first, too.
When do I need approved WhatsApp message templates?
Meta-approved templates belong to the official WhatsApp Business Platform. There they are required to start conversations outside the customer service window. Saved templates in WASenderPlus are reusable message bodies, not Meta approvals. An unofficial API like WASenderPlus does not need them.
Can I send OTP codes over WhatsApp?
An API key authorises your software; a one-time password verifies your customer. The two are separate workflows. You can send a code as a normal message. Before you design a login flow around WhatsApp, check delivery speed in the API docs. Keep SMS or email as a fallback.
Can I automate ecommerce order and delivery notifications?
Yes. Connect order, payment and shipping events to WhatsApp messages from Shopify, WooCommerce or your own backend. Check consent and relevance before each send. Cancel a notice when the order is cancelled or already resolved, rather than retrying it blindly.
Can I message someone without saving them as a contact?
Yes. With the API you put the phone number in the request body. Nobody has to save the contact on a phone first. You still need their consent and a correctly formatted international number. A click-to-chat link is different: it only opens a chat for the customer to start.
Can I schedule messages and personalise each one?
Yes. Use merge fields and up to 3 body variants, and preview the exact text each contact will see. Then schedule the run from the app or through the API. Every send, whichever way it starts, goes through the same pacing and opt-out checks.
Can I keep my existing WhatsApp number?
Yes. You scan a QR code once and keep using WhatsApp on your phone as before. Your chats stay where they are. WASenderPlus adds the API, shared conversations, sending controls and contact history on top of the number you already use.
Can API messaging get my number restricted?
It can. WhatsApp says it uses automated detection and user reports to find unwanted bulk messaging. Any unofficial API or third-party automation carries account risk. Pacing controls your workload but cannot replace consent. Message people who opted in, honour every withdrawal, and read how to avoid a WhatsApp ban before your first campaign.
How many messages can I send per day?
There is no message cap on any plan — what WASenderPlus manages is pace. A fresh number starts at about 250 sends a day and climbs to about 6,000 once it is warm and reports stay low. These are queue defaults that protect your number, not limits published by WhatsApp. The full ladder is on sending limits.
What happens when someone replies STOP?
The contact is suppressed on the web app, extension, Sheets and API within seconds. It stays suppressed after a re-import, so your code cannot message them by mistake. Opt-out keywords are matched in 9 languages. See the opt-in rules for collecting consent.
How is the Chrome extension different from the API?
The extension works inside your own WhatsApp Web tab and paces sends for someone working by hand. The REST API lets your own code send messages and receive events. Both use the same connected number, contacts, pacing and opt-out list. Both work through the linked WhatsApp Web session, not Meta’s Cloud API.
Is this the same as “WhatsApi”, a “wsp API” or a “whats app” sender?
Yes. People search for a WhatsApp API under many spellings — WhatsApi, whatapp, whstapp, whatup, wats, or wsp, the Spanish chat shorthand. They all mean the same thing: sending and receiving WhatsApp messages from your own code. Many developers look for a free API; WASenderPlus is not free, but the 7-day trial needs no card.
Build your WhatsApp API integration around the complete workflow
Connect your backend to WhatsApp messaging and team replies
A WhatsApp messaging API lets your backend send messages from events, such as an order, a booking or a sign-up. Nobody has to open a chat. With WASenderPlus your application shares connected numbers, pacing and suppression checks with the people answering customers.
When a customer replies, the agent needs the original message and the customer’s context. Keep that on the WhatsApp CRM record, and compare the messaging workflows that match your application. Decide who owns each reply before you switch on automated follow-ups.
Choose your connection model before you choose a tool
Three models sit behind the words “WhatsApp API”. Meta’s WhatsApp Cloud API runs through the Business Platform, with onboarding and approved templates. Meta prices it per message, with rates that vary by message category and country. A WhatsApp Web gateway drives a linked session instead. The WhatsApp Business App is the phone app itself, built for one person answering chats.
WASenderPlus is an unofficial WhatsApp API: it links your number with a QR code and works through that WhatsApp Web session. You can send from your code, the web app, the Chrome extension or Sheets. Setup takes minutes, with no template approval and no Meta message fees. The session has to stay connected, and account restrictions remain possible.
Send your first authenticated request
Start with a connected number and a test recipient who has opted in. The examples above make an HTTPS POST with a bearer token in the Authorization header. The JSON body holds the recipient in to and the message in text.
Keep the API key on the server, never in browser code, repositories or screenshots. A successful response means the request was accepted, not that the message was delivered. Delivery arrives later as a webhook event or in the message status.
Send from PHP with cURL or Guzzle
The PHP example uses the cURL extension, reads the key from an environment variable and encodes the payload with json_encode. Keep the recipient in the request body exactly as shown, and send from a server, never from the browser.
With Guzzle through Composer, keep the same endpoint, headers and fields. In Laravel, Symfony or WordPress, set a request timeout, inspect the response and catch exceptions. Do that before you connect live order events to a queue worker. Log failures with enough context to replay them safely.
Handle webhooks as events, not final outcomes
Webhooks report delivered, read, replied and opted-out events to a URL you configure. Match each event to the outbound message and the contact before you update a record or start more work.
Build the handler to accept the same event twice and events that arrive out of order. Verify each request as the API docs describe, respond quickly, and do the heavy processing in a queue. Log failures so you can replay them later.
Pick message formats and templates per channel
Plan each conversation around the format it needs: text, an image, a PDF invoice, a voice note or a location pin. In the web app, the extension and Sheets these sit side by side in one run, each personalised per contact.
Saved templates in WASenderPlus are reusable message bodies, not Meta-approved templates. An unofficial API does not need template approval. If you also run the official Cloud API elsewhere, its template rules still apply there. For API sends, the API docs list which formats each endpoint accepts.
Turn ecommerce events into notifications customers expect
Map purchase, payment, fulfilment and shipping events to separate messages. Shopify, WooCommerce or your own backend should supply the order context. That way agents never rebuild it by hand when a customer replies.
Check relevance before every send: cancel a dispatch notice if the order was cancelled, and route delivery exceptions to support. Confirm consent is still valid. A retry should look at the current order state, not the state when the first attempt failed.
Join API broadcasts to inbox ownership
A broadcast-to-reply workflow starts with an audience, an API-triggered message and a shared number. When a reply arrives it lands on the contact record. The agent who picks it up sees the original message, the order and the consent source.
Assignment and internal notes in the team inbox handle the handover between people. If your code also sends to the same customers, track which system owns the conversation. That stops an automated follow-up from landing on top of an agent’s reply.
Carry consent through imports, API calls and suppression
Record the consent source, the date and the purpose before you import a contact. A phone number captured at checkout does not say what the customer agreed to receive. The glossary defines each term so your team uses them the same way.
Opt-outs are matched in 9 languages and stay suppressed after a re-import. For API integrations, check withdrawals again before a scheduled send or a retry. Require a fresh opt-in before messaging someone who said stop, and keep withdrawal records for later audits. U.S. businesses should also check applicable federal and state rules before automating promotional messages.
Treat pacing as queue management, not account protection
Plan bulk sending around consent, the age of the number and WASenderPlus’s default workload settings. Pacing controls when each message leaves the queue. It cannot stop a recipient from blocking or reporting you. WhatsApp also says it detects unwanted automated and bulk messaging, so restrictions remain possible with any unofficial API.
The defaults warm a new number over 2 weeks and space sends 4–40 seconds apart. They are WASenderPlus queue settings, not limits published by WhatsApp. Watch queue delays during the first campaigns, and read the sending guides before you scale a list.
Separate the subscription from messaging charges
Compare the workspace subscription with what an official provider would charge. Check Meta’s current per-message rates by message category and country. Providers bill in different ways, so a cheaper plan can cost more once message fees are added.
WASenderPlus starts at $6/mo with the REST API and webhooks included. The Team plan at $19/mo covers a team of any size with no per-agent billing. Add hosting and monitoring to the estimate before comparing the total with another tool.
Prepare credentials, retries and reconnects for production
Before launch, name an owner for key rotation and secret storage, and redact phone numbers from request logs. Keep separate keys for staging and production so a test run can never reach real customers.
Store the business event with each send so a retry cannot message the same customer twice. Test what happens when the linked session reconnects and when an opt-out arrives mid-campaign. Test the case where an agent has already answered the customer, too.