API Integration

WhatsApp Messaging Built for Developers

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.

Node.js quickstart
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 endpoint
{
  "devices": [
    {
      "id": "dev_live_001",
      "name": "Primary Device",
      "status": "connected",
      "phone_number": "+15550000000"
    }
  ],
  "total": 1
}
Platform

Everything needed for a production-grade integration.

From your first test message to multi-number deployments, the REST API and SDKs stay consistent.

Core feature

REST API

Send messages, list devices, and query delivery state with predictable JSON endpoints.

Core feature

Python SDK

Ship WhatsApp workflows in a few lines of Python with typed helpers and sensible defaults.

Core feature

Node.js SDK

Use the official @wazzapi/wazzapi package for typed Node.js and TypeScript integrations.

Core feature

Webhooks

Receive delivery, reply, and device state events in real time with retry-friendly payloads.

Examples

Common workflows in Python, TypeScript, and raw HTTP.

Use the same primitives for transactional messaging, support, and sender selection flows.

Send a message (Python)
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 ✅",
        )
    )
Send a message (Node.js)
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 👋",
});
List devices
GET /api/v1/devices
Authorization: Bearer wz_live_••••••••

{
  "devices": [
    {
      "id": "dev_live_001",
      "name": "Support Device",
      "status": "connected"
    }
  ]
}
Verify a webhook
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);

Start building with real examples today.

Use the docs, test the API, then move from sandbox experiments to production traffic without changing your stack.