Skip to main content

1. Get your API Key

1

Create an account

Sign up at app.zavu.dev
2

Create a project

Projects organize your messaging by application or environment
3

Generate an API key

Go to SettingsAPI KeysCreate Key
Your API key will only be shown once. Store it securely in your environment variables.

2. Configure a Sender

Before sending messages, you need at least one sender configured with a phone number.
  1. Go to Senders in your dashboard
  2. Click Add Sender
  3. Configure your SMS and/or WhatsApp phone numbers
  4. Set as default if this is your primary sender

3. Send your first message

Using cURL

curl -X POST https://api.zavu.dev/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+56912345678",
    "text": "Hello from Zavu!",
    "channel": "sms"
  }'

Using Node.js

npm install @zavu/node
import { Zavu } from '@zavu/node';

const zavu = new Zavu(process.env.ZAVU_API_KEY);

const message = await zavu.messages.send({
  to: '+56912345678',
  text: 'Hello from Zavu!',
  channel: 'sms'
});

console.log('Message sent:', message.id);

Using Python

pip install zavu
from zavu import Zavu
import os

zavu = Zavu(os.environ['ZAVU_API_KEY'])

message = zavu.messages.send(
    to='+56912345678',
    text='Hello from Zavu!',
    channel='sms'
)

print(f'Message sent: {message.id}')
Success! You should receive a 202 Accepted response with the message details.

Understanding the Response

{
  "message": {
    "id": "msg_abc123xyz",
    "to": "+56912345678",
    "channel": "sms",
    "status": "queued",
    "text": "Hello from Zavu!",
    "createdAt": "2024-01-15T10:30:00Z"
  }
}
FieldDescription
idUnique message identifier
toRecipient phone number
channelChannel used (sms, whatsapp, etc.)
statusCurrent status: queued, sending, delivered, failed
textMessage content
createdAtTimestamp of creation

4. Check message status

Messages are sent asynchronously. Check the status:
curl https://api.zavu.dev/v1/messages/msg_abc123xyz \
  -H "Authorization: Bearer YOUR_API_KEY"
Or set up webhooks to receive real-time status updates.

Next Steps