REST API
Send messages, list devices, and query delivery state with predictable JSON endpoints.
WazzAPI keeps the integration layer simple: clean REST endpoints, official Python and Node.js SDKs, reliable webhooks, and the tooling you need to manage real-world WhatsApp operations.
import { WazzapiClient } from "@wazzapi/wazzapi";
const client = new WazzapiClient({ apiKey: process.env.WAZZAPI_API_KEY });
await client.messages.send({
phone_number: "+15550000000",
whatsapp_account_id: "dev_live_001",
content: "Hello from WazzAPI 👋",
});{
"devices": [
{
"id": "dev_live_001",
"name": "Primary Device",
"status": "connected",
"phone_number": "+15550000000"
}
],
"total": 1
}From your first test message to multi-number deployments, the REST API and SDKs stay consistent.
Send messages, list devices, and query delivery state with predictable JSON endpoints.
Ship WhatsApp workflows in a few lines of Python with typed helpers and sensible defaults.
Use the official @wazzapi/wazzapi package for typed Node.js and TypeScript integrations.
Receive delivery, reply, and device state events in real time with retry-friendly payloads.
Use the same primitives for transactional messaging, support, and sender selection flows.
from wazzapi import SendMessageRequest, WazzapiClient
with WazzapiClient(api_key="wz_live_••••••••") as client:
client.messages.send(
SendMessageRequest(
phone_number="+15550000000",
whatsapp_account_id="dev_live_001",
content="Order shipped ✅",
)
)import { WazzapiClient } from "@wazzapi/wazzapi";
const client = new WazzapiClient({ apiKey: process.env.WAZZAPI_API_KEY });
await client.messages.send({
phone_number: "+15550000000",
whatsapp_account_id: "dev_live_001",
content: "Hello from WazzAPI 👋",
});GET /api/v1/devices
Authorization: Bearer wz_live_••••••••
{
"devices": [
{
"id": "dev_live_001",
"name": "Support Device",
"status": "connected"
}
]
}import { WebhookHandler } from "@wazzapi/wazzapi";
const handler = new WebhookHandler(process.env.WAZZAPI_WEBHOOK_SECRET || "");
const event = handler.verifyAndParse(rawBody, request.headers);
console.log(event.event_type);Use the docs, test the API, then move from sandbox experiments to production traffic without changing your stack.