Developers
The Replyzet WhatsApp API
Send messages, manage templates and contacts, and read conversations from your own apps with a simple REST API on the official WhatsApp Business platform.
Quick start
- 1. Connect your WhatsApp number in the dashboard.
- 2. Go to Developer → Generate API Key and copy the key.
- 3. Call the API with your key — that's it.
curl -X POST https://replyzet.com/api/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"919876543210","template":"hi","language":"en_US"}'Base URL
https://replyzet.comAuthentication
Send your key in either header:
Authorization: Bearer rz_live_…x-api-key: rz_live_…Endpoints
/api/v1/messagesSend a text message (inside the 24-hour window) or a template message (anytime).
Request body
{
"to": "919876543210",
"template": "hi",
"language": "en_US"
}Response
{ "ok": true, "messageId": "wamid.HBg…" }/api/v1/templatesList your approved WhatsApp message templates.
Response
{ "ok": true, "templates": [
{ "name": "hi", "status": "APPROVED", "language": "en_US" }
] }/api/v1/contactsList the contacts in your account.
Response
{ "ok": true, "count": 2, "contacts": [
{ "name": "Priya", "phone": "919812345678", "group_name": "VIP" }
] }/api/v1/contactsAdd or update a contact (keyed by phone).
Request body
{
"name": "Priya Sharma",
"phone": "919812345678",
"group_name": "VIP"
}Response
{ "ok": true, "contacts": [ … ] }/api/v1/conversationsRead message history grouped by contact for your connected number.
Response
{ "ok": true, "count": 1, "conversations": [
{ "phone": "919876543210", "name": "Rahul", "messages": [ … ] }
] }Outgoing webhooks
Get an HTTP POST to your URL the moment something happens in your workspace — perfect for Zapier / Make / n8n "catch hook" triggers or your own backend. Set them up under Developer → Outgoing Webhooks (up to 5 per workspace).
Events
| Event | Fires when |
|---|---|
| message.received | A customer messages your WhatsApp number (any type, media included). |
| message.sent | Your team sends a message from the inbox or via the API. |
| contact.created | A new contact appears — an inbound lead or a manual/API add. |
| campaign.completed | A broadcast campaign finishes sending (with sent/failed counts). |
| webhook.test | You press "Send test" in the dashboard. |
Delivery format
JSON POST with these headers:
Content-Type: application/json X-Replyzet-Event: message.received X-Replyzet-Webhook-Id: <uuid> X-Replyzet-Signature: sha256=<hex hmac>
{
"event": "message.received",
"timestamp": "2026-07-16T12:00:00.000Z",
"data": {
"from": "919876543210",
"name": "Priya",
"type": "text",
"body": "Hi, is this available?"
}
}Verifying the signature
Every delivery is signed with your webhook's secret (shown once at creation). Recompute and compare before trusting the payload:
// Node.js
import crypto from "node:crypto";
function verify(rawBody, header, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret)
.update(rawBody, "utf8")
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(header),
);
}Answer with a 2xx within 5 seconds. Endpoints that keep failing (20 deliveries in a row) are disabled automatically — re-enable them from the dashboard once fixed.
Errors
Every error returns { "ok": false, "error": "…" } with an HTTP status: 401 invalid/missing key, 400 bad request, 502 WhatsApp API error.
Note: free-text messages only work within the 24-hour customer service window. To message someone first (or after 24h), send an approved template.
Get your API key →Your competitors are already on WhatsApp.
Get on the official WhatsApp Business API today. Start your 14-day free trial — no setup fee, no credit card.