WhatsApp API for developers and businesses
Send and receive WhatsApp messages from your own number with one REST request. No approval process, no templates and no per-message fees: pair with a QR code and go live in ten minutes.
POST 'https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage' \ --header 'x-maytapi-key: $TOKEN' \ --data-raw '{ "to_number": "1415xxxxx67", "type": "text", "message": "Order #10482 shipped" }' # 200 · 184 ms · ack: sent → delivered → read
2,000+
developers and businesses
24M+
daily API requests
99.98%
uptime, last 12 months
184 ms
median response time
- ✓Groups, channels, communities and stories
- ✓AI agents through the MCP servernew
- ✓Buttons, lists and every media type
- ✓Support in six languages
- ✓One flat price, no per-message fees
Three steps, about ten minutes
No number migration, no Business verification, no waiting for approval. Your phone and WhatsApp Web stay connected as usual.
-
✓✓number paired
Pair your number
Scan the QR code from the dashboard. Your existing number stays as it is — no migration needed.
-
POST /sendMessage x-maytapi-key: •••••• { "to_number": "1415xxx…", "type": "text" } 200 OK · 184 ms
Send one request
One endpoint, one header, one JSON body. No template approval, no conversation window.
-
ack: sentack: deliveredack: read
Listen with webhooks
Incoming messages, delivery and read receipts arrive at your server in real time.
Developers send the request. Customers see it in WhatsApp.
The API sends from the business's own number, so customers get updates, buttons and replies in an ordinary WhatsApp chat. The log next to the phone shows the request or webhook behind each message.
For developers
- ✓One REST endpoint for every message type
- ✓Webhooks for replies, button taps and receipts
- ✓Examples in cURL, Python, Node.js, PHP, Go and Java
For businesses
- ✓Order, shipping and appointment messages from your number
- ✓Buttons and lists customers answer with one tap
- ✓Your team replies from the shared inbox or the phone
WhatsApp API Features
Includes the group, channel and story endpoints the official Cloud API leaves out. Free-form text, media and interactive messages go out without template approval.
- ✓Group creation, participant management and group events
- ✓Channel posts and 24-hour stories
- ✓Interactive messages with buttons, lists and quick replies
- ✓Images, video, audio, documents, location and stickers
Also included on every plan
- All media and message typesImages, video, voice notes, documents, location, contacts and stickers — send and receive them all.
- Delivery and read receiptsGet sent, delivered and read events for every message through your webhook in real time.
-
Phone and WhatsApp Web stay onThe API runs as a linked device, so your team can keep using the phone and WhatsApp Web at the same time.
- Number validationCheck whether numbers are registered on WhatsApp before you send, and keep your lists clean.
- No templates or approvalsSend free-form messages right after pairing — no Meta review, no template queue.
- Low-code and no-codeBuild flows with n8n, Make or Pabbly Connect, or let an AI agent use WhatsApp through MCP.
What teams build with the WhatsApp API
The same endpoints cover everything from order notifications to AI agents.
-
E-commerce notifications
Order confirmations, shipment tracking and return status land in the customer’s WhatsApp automatically.
-
Customer support
Incoming messages flow into your CRM through webhooks and your team replies from one number.
-
Appointment reminders
Send reminders before appointments and collect confirmations or cancellations with button replies.
-
Chatbots and AI agents
With Maytapi MCP Server your AI agent converses directly over WhatsApp.
-
Group and community management
Create groups, add participants and listen to group events — endpoints the official API does not offer.
-
Agencies and SaaS
Manage multiple numbers at discounted rates and resell the service to your own customers.
- n8nnative node
- Multi-agent platformshared inbox
- Google Contactsready-made
- Maytapi MCP ServerAI agents
- Dialogflowchatbot
- Google Sheetsready-made
Connects to your stack, with or without code
Your CRM, ERP, website or SaaS product connects through REST endpoints and webhooks. If you would rather not write a backend, use the ready-made automation platforms.
- ✓Your whole team works from one number with the multi-agent platform
- ✓Number warm-up tools reduce the risk of bans
- ✓Number check and profile photo tools are built into the dashboard
Three ways to put the WhatsApp API to work
Write the integration, connect it to the tools you already use, or sell it to your own customers under your brand.
-
Developers</>
You build the integration
REST endpoints, webhooks and ready examples in cURL, Python, Node.js, PHP, Go and Java.
-
No-code teams{flow}
You connect tools
Use the native n8n node, Google Contacts sync or the MCP server for AI assistants.
-
Agencies & SaaSwhite-label
WhatsApp inside your product
Offer WhatsApp API to your customers with the Partner API — they see your brand, not ours.
Start free — no card required, test on a real WhatsApp number.
</>Start freeFree WhatsApp API Tools
Use them free, without an account. Everything runs in the browser and nothing is stored.
- *bold* WhatsApp text formatter Preview bold, italic, strikethrough and monospace formatting as you type.
- wa.me/ Chat link generator Generate click-to-chat links with a prefilled message and drop them on your site.
- [QR] WhatsApp QR code generator Download a scannable QR code for your number and message.
- \" JSON escape tool Safely escape any text you need to embed in an API body.
- ? Number checker Check whether a number is registered on WhatsApp.
- img Profile photo tool Fetch a number’s public profile photo through the API.
The same request in six languages
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "1415xxxxx67",
"type": "text",
"message": "Hello from Maytapi!"
}'
const res = await fetch("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage", {
method: "POST",
headers: { "x-maytapi-key": TOKEN, "Content-Type": "application/json" },
body: JSON.stringify({
"to_number": "1415xxxxx67",
"type": "text",
"message": "Hello from Maytapi!"
})
});
console.log(await res.json());
import requests
res = requests.post(
"https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage",
headers={"x-maytapi-key": TOKEN},
json={
"to_number": "1415xxxxx67",
"type": "text",
"message": "Hello from Maytapi!"
},
timeout=10,
)
print(res.json())
$ch = curl_init("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => ["x-maytapi-key: $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"to_number" => "1415xxxxx67",
"type" => "text",
"message" => "Hello from Maytapi!"
]),
]);
echo curl_exec($ch);
body := strings.NewReader(`{"to_number":"1415xxxxx67","type":"text","message":"Hello from Maytapi!"}`)
req, _ := http.NewRequest("POST", "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage", body)
req.Header.Set("x-maytapi-key", token)
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage"))
.header("x-maytapi-key", token)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(
"{\"to_number\":\"1415xxxxx67\",\"type\":\"text\",\"message\":\"Hello from Maytapi!\"}"))
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-maytapi-key", token);
var body = new StringContent(
"""{"to_number":"1415xxxxx67","type":"text","message":"Hello from Maytapi!"}""",
Encoding.UTF8, "application/json");
var res = await client.PostAsync("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage", body);
Console.WriteLine(await res.Content.ReadAsStringAsync());
How Maytapi differs from the Cloud API and BSPs
| Feature | Maytapi | WhatsApp Cloud API | Twilio |
|---|---|---|---|
| Approval process | No | Business verification | Business verification |
| Template requirement | No | Yes | Yes |
| Pricing model | $24 / number / mo billed annually, $29 monthly | per message | per message + platform |
| Group messaging | Yes | No | No |
| Channels and stories | Yes | No | No |
| Existing number | Paired directly | Number migrated | Number migrated |
| Time to first message | ~10 min | 1–5 days | 1–5 days |
| Official support | No | Yes | Yes |
Last updated:
Built for production load
Every number runs in its own isolated session. Failed webhook deliveries are retried automatically — three attempts within 30 minutes — and every attempt is visible in your logs.
- TLS 1.3
- webhook retries
- isolated sessions
- Uptime, last 12 months99.98%
- Median API response184 ms
- Daily request volume24M+
- Webhook retries3 attempts / 30 min
- Support response time< 24 hours
2,000+ developers and businesses build on Maytapi
Since 2021, developers and businesses have built their bots, CRM integrations and WhatsApp flows on Maytapi. Our infrastructure handles more than 24 million API requests a day.
- enEnglish
- trTürkçe
- esEspañol
- ptPortuguês
- roRomână
- ruРусский
Documentation and support in six languages.
- flat price from $24
- no per-message fees
- no approval process
- no card required
- cancel anytime
-
★★★★★fast integration
As a startup founder, I was looking for a cost-effective solution to automate our WhatsApp communications. Maytapi delivered beyond my expectations. The integration process was a breeze, and their support team is truly outstanding.
Alex M.Tech Entrepreneur
-
★★★★★unlimited messages
We were truly impressed by Maytapi's comprehensive API and rich feature set. Thanks to unlimited messaging, multi-device support, and advanced group management features, we've taken our WhatsApp automation to the next level. We've found a single solution that meets all our needs!
Sarah T.Customer Experience Manager
-
★★★★★reliable webhooks
As an experienced developer, I was impressed by the quality of Maytapi's API documentation and the reliability of their webhook system. Integrating advanced features like multi-media sending and message status tracking into our projects was incredibly easy.
David K.Senior Software Developer
White label and partner program
Agencies, SaaS products and startups can resell Maytapi under their own brand or earn by referring customers. We run the infrastructure, you own the customer relationship.
- ✓Partner API to offer WhatsApp API under your own brand
- ✓A personalised panel with your logo, name and a unique referral link
- ✓Earn 30% to 50% of first-year revenue from the customers you refer
- ✓Volume pricing from ten numbers up
One flat price per number
Flat pricing per number — no conversation window fees, no platform fees, no per-message charges. Your bill follows the number of connected numbers.
Last updated:
We offer discounted pricing from ten numbers up — get in touch.
-
$_
Sandbox
free forever
Free WhatsApp API plan, fully functional with limits
$0
Start free- Messages to up to 5 different numbers
- All endpoints available for testing
- No card required
- Technical support
- Tools and integrations
-
Most popular
{}
Developer
unlimited
Professional use and scalable solutions
$24 / number / moBilled annually. $29 / number / mo if billed monthly.
1 number → $24 / mo
Try 3 days free- Unlimited sending and receiving, media included
- Unlimited API access: groups, channels, products, webhooks
- No extra fees, no per-message charges
- Number warm-up tools
- Google Sheets, Google Contacts and Make integrations
- Profile photo and number check APIs
- Priority support
-
##
10+ numbers
volume discounts
Agencies, SaaS and multiple numbers
Custom / volume pricing
Talk to us- Discounted pricing from ten numbers up
- Multi-agent platform
- Custom terms based on volume
- Priority technical call
Prices are in USD. Taxes such as VAT are added at checkout and depend on your country.
WhatsApp API Guides
Questions before you start
Ask our support team anything over WhatsApp. Average response time is under 24 hours.
Maytapi Support
online
How long does setup take?
10:02
About ten minutes after you scan the QR code. No waiting for approval.
10:03
What is Maytapi?
Maytapi is a WhatsApp API that connects your own WhatsApp number with a QR code and lets you send and receive messages, manage groups, channels and stories, and receive events on a webhook through a REST API. It costs a flat $24 per number per month billed annually, or $29 billed monthly, with no per-message fees.
Is Maytapi the official WhatsApp Business API?
No. It is an unofficial API that uses your own number over the WhatsApp Web protocol. No Meta approval or Business Manager account is required.
Are there per-message fees?
None. You pay a flat 24 USD per number per month; message volume does not change your bill. Discounts apply from ten numbers up.
Can I keep using my phone?
Yes. The API runs through a linked-device session; your phone and WhatsApp Web stay connected and your chat history stays on your phone.
Can I send group messages?
Yes. Endpoints for creating groups, adding participants and listening to group events are all open.
Can I use it without writing code?
Yes. Number pairing and the shared inbox are set up from the dashboard. It connects to n8n, Make, Pabbly Connect, Dialogflow and Google Sheets with no code.
Which programming languages do you support?
It runs over REST, so any language that can make an HTTP request works. cURL, Python, Node.js, PHP, Go and Java examples are ready to use.
How many numbers can I connect, and are there discounts?
Each plan covers one connected WhatsApp number; add more numbers whenever you need them. From ten numbers up we offer custom volume pricing — write to info@maytapi.com.
Are there limits on sending messages?
The Developer plan has no message or API quotas. WhatsApp’s own anti-spam systems still apply, so send at a natural pace. The free Sandbox can message up to 5 different numbers in total, and the free trial up to 30 different numbers.
Is there a risk of my number being banned?
Any automation carries some risk, and bans can happen without an API too when behaviour looks like spam. Risk depends on sending patterns, number age and recipient feedback. Use the built-in warm-up tools, pace your messages and follow our ban prevention guide.
How do payments and invoices work?
Payments are processed securely by Paddle. Enter your company name and VAT number at checkout to receive a VAT invoice. You can cancel at any time, and the trial needs no card.

Get your key, send your first message in ten minutes
No approval, no templates, no card. Every endpoint is open for three days.