Unified WhatsApp REST API
One API key, one JSON format, both engines. Send every message type, run bulk and template campaigns, manage contacts and groups, upload media, and pull delivery and usage reports.
The Same Request Works on Meta Cloud API and Web QR
Each API key is linked to one of your WhatsApp instances. Wabiss detects whether it's an Official Meta Cloud API number or a Web QR number and routes the request automatically.
Switch engines later without changing a line of your integration code. Every response includes the message ID, status, and remaining credits.
x-api-key header â no OAuth setup.
curl -X POST https://app.wabiss.com/api/v1/send/text \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "919876543210", "message": "Your order #1042 has shipped đ" }' // Response { "success": true, "data": { "messageId": "66f1c...", "apiType": "meta", "status": "sent", "credits": { "remaining": 4821 } } }
Everything the API Can Do
All endpoints live under /api/v1. See the full documentation for request fields and examples.
- â
/send/text&/send/image - â
/send/document&/send/audio - â
/send/location - â
/send/buttons&/send/list
- â
/send/template - â
/send/template-bulk - â
/send/bulk(text to many numbers) - â List & create Meta templates
- â
/message/:idstatus by ID or wamid - â
/report/messages - â
/report/templates - â
/report/usage
- â
/contact/checkâ is it on WhatsApp? - â
/contacts&/chats - â Contact info & profile picture
- â List & create groups
- â Add, remove & list members
- â Send a message to a group
- â
/instance/status - â
/instance/qrfor Web QR linking - â
/media/upload(file, URL, or base64)
Contact, chat, and WhatsApp group endpoints are available on Web QR instances. Template endpoints apply to Meta Cloud API instances.
From Sign-Up to First Message in 4 Steps
POST /api/v1/send/text with the key in the x-api-key header.How the API Works
Everything a developer â or a business owner briefing one â needs to know before integrating.
API keys and instances
Every API key belongs to one WhatsApp instance (one phone number). Messages sent with that key always go out from that number. Need to send from several numbers? Create one key per number.
Keys can be capped by number of messages or by wallet amount, and usage is tracked per key â ideal when you give keys to clients, freelancers, or separate projects.
One request format for both engines
Wabiss detects whether the key's instance is a Meta Cloud API number or a Web QR number and translates your request automatically. Your code stays the same if you switch engines later.
Consistent responses
Every response has the same shape: success, a requestId for support tickets, a timestamp, a human-readable message, and a data object. Send responses include the message ID, WhatsApp message ID, engine type, status, and remaining credits.
Errors return success: false with an error message, a machine-readable code, and field-level details when validation fails (for example, "to is required").
Sending templates and bulk messages
- Templates: send
to,templateName, andtemplateParams(body variables). Button and header values are supported too. - Template bulk: one request with a
recipientsarray â each recipient can have its own variables, so every customer gets a personalised message. - Text bulk: send the same text to a
numbersarray. On Web QR numbers, each request is limited to a safe batch size (50 recipients by default) to protect your number â split larger lists into batches.
Credits and billing
Each successful send uses your plan credits or wallet balance, and the response tells you what's left. If a send fails, the charge for that message is returned automatically.
Webhooks: receiving messages
Set a webhook URL on your instance and Wabiss will POST incoming customer messages to your server in real time, so your system can reply, create tickets, or update your CRM. On Meta Cloud API numbers, delivery and read events are forwarded too.
Fair-use rate limits
The API applies a fair-use request limit to keep the platform fast for everyone. If you exceed it, you'll receive a RATE_LIMITED error with standard rate-limit headers telling you when to retry.
Which Endpoints Work on Which Engine
| Capability | Meta Cloud API | Web QR |
|---|---|---|
| Text, image, document, audio, location | â | â |
| Buttons & lists | â | â |
| Approved templates (single & bulk) | â | â (not needed on Web QR) |
| Text bulk send | â | â in safe batches |
| Message status & reports | â | â |
| Number check | â Not offered by Meta | â |
| Contacts, chats & profile pictures | â | â |
| WhatsApp group management | â | â |
| Media upload | â | â |
Developer Questions, Answered
Any language that can make HTTPS requests â Node.js, Python, PHP, Java, C#, Go, and no-code tools like Zapier, Make, or n8n. The API uses plain JSON over HTTPS.
Only call the API from your server, never from browser JavaScript or a mobile app where users could see the key. If a key leaks, delete it and create a new one from your dashboard.
Yes. Call GET /api/v1/message/:id with the Wabiss message ID or WhatsApp message ID from the send response to get its current status.
Connect a Web QR instance with a spare phone number and send test messages to your own numbers. Set a small spending cap on the test key so experiments can't use too many credits.
The API documentation lists every endpoint with its fields, sample requests, and sample responses.