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. 1. Connect your WhatsApp number in the dashboard.
  2. 2. Go to Developer → Generate API Key and copy the key.
  3. 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.com

Authentication

Send your key in either header:

Authorization: Bearer rz_live_…x-api-key: rz_live_…

Endpoints

POST/api/v1/messages

Send 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…" }
GET/api/v1/templates

List your approved WhatsApp message templates.

Response

{ "ok": true, "templates": [
  { "name": "hi", "status": "APPROVED", "language": "en_US" }
] }
GET/api/v1/contacts

List the contacts in your account.

Response

{ "ok": true, "count": 2, "contacts": [
  { "name": "Priya", "phone": "919812345678", "group_name": "VIP" }
] }
POST/api/v1/contacts

Add or update a contact (keyed by phone).

Request body

{
  "name": "Priya Sharma",
  "phone": "919812345678",
  "group_name": "VIP"
}

Response

{ "ok": true, "contacts": [ … ] }
GET/api/v1/conversations

Read 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

EventFires when
message.receivedA customer messages your WhatsApp number (any type, media included).
message.sentYour team sends a message from the inbox or via the API.
contact.createdA new contact appears — an inbound lead or a manual/API add.
campaign.completedA broadcast campaign finishes sending (with sent/failed counts).
webhook.testYou 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.