Skip to main content

Welcome to Zavu

Zavu is a unified messaging API that lets you send SMS, WhatsApp, Telegram, Email, and Voice messages with a single integration. No need to manage multiple providers or complex channel-specific logic.

Why Zavu?

One Single API. Every Message.

Single integration for SMS, WhatsApp, Telegram, Email, and Voice. Same payload, automatic channel handling.

Smart Routing

ML-powered channel selection reduces messaging costs up to 80%.

Automatic Fallback

Message fails on WhatsApp? We automatically retry via SMS.

Real-time Webhooks

Delivery status updates, inbound messages, and more.

Send a Message

import Zavudev from '@zavudev/sdk';

const zavu = new Zavudev({
  apiKey: process.env['ZAVUDEV_API_KEY'], // This is the default and can be omitted
});

await zavu.messages.send({
  to: "+14155551234",
  text: "Your order #1234 has shipped!"
});
import os
from zavudev import Zavudev

zavu = Zavudev(
    api_key=os.environ.get("ZAVUDEV_API_KEY"),  # This is the default and can be omitted
)

result = zavu.messages.send(
    to="+14155551234",
    text="Your order #1234 has shipped!"
)
print(f"Message ID: {result.message.id}")
require "zavudev"

client = Zavudev::Client.new(api_key: ENV["ZAVUDEV_API_KEY"])

result = client.messages.send(
  to: "+14155551234",
  text: "Your order #1234 has shipped!"
)
puts result.message.id
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/zavudev/sdk-go"
	"github.com/zavudev/sdk-go/option"
)

func main() {
	client := zavudev.NewClient(option.WithAPIKey(os.Getenv("ZAVUDEV_API_KEY")))

	result, _ := client.Messages.Send(context.TODO(), zavudev.MessageSendParams{
		To:   zavudev.String("+14155551234"),
		Text: zavudev.String("Your order #1234 has shipped!"),
	})
	fmt.Println("Message ID:", result.Message.ID)
}
<?php
$client = new Zavudev\Client(apiKey: getenv('ZAVUDEV_API_KEY'));

$result = $client->messages->send([
    'to' => '+14155551234',
    'text' => 'Your order #1234 has shipped!',
]);
echo $result->message->id;
curl -X POST https://api.zavu.dev/v1/messages \
  -H "Authorization: Bearer zv_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155551234",
    "text": "Your order #1234 has shipped!"
  }'
That’s it. Zavu automatically selects the best channel based on cost, deliverability, and recipient preferences.

How It Works

  1. You send a message - Just specify the recipient and content
  2. Zavu picks the channel - Our ML model selects the optimal channel (SMS, WhatsApp, Telegram, Email, or Voice)
  3. Message is delivered - We handle retries and fallbacks automatically
  4. You get notified - Webhooks inform you of delivery status

Channels

ChannelBest For
SMSUniversal reach, time-sensitive alerts, no internet required
WhatsAppRich media, high engagement, cost-effective in many regions
TelegramBot messaging, tech-savvy audiences, large file sharing
MessengerFacebook Page conversations, Marketplace buyer chats
EmailTransactional emails, long-form content, attachments
VoiceText-to-speech calls, urgent alerts, phone verification

Next Steps

Quickstart

Send your first message in 5 minutes

Authentication

Get your API keys

Sending Messages

Learn the different ways to send messages

API Reference

Explore all endpoints