Skip to main content

ZeroVoice Quickstart

Go from zero to your first outbound call in under 10 minutes.

Prerequisites

  • An AINative account with ZeroVoice enabled
  • A provisioned phone number (or use the default caller ID)
  • A valid JWT token or API key

1. Check the system is healthy

curl https://your-zerovoice-instance.up.railway.app/health/ready

Response:

{
"status": "healthy",
"db": { "ok": true },
"twilio": { "ok": true, "account_status": "active" }
}

2. Authenticate

# Option A: Login to get a JWT
curl -X POST https://your-instance/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com", "password": "your-password"}'

# Option B: Use an API key
# Pass X-API-Key header instead of Authorization

Set the token for subsequent requests:

export TOKEN="eyJ..."

3. List your phone numbers

curl -H "Authorization: Bearer $TOKEN" \
https://your-instance/api/v1/numbers

4. Place an outbound call

curl -X POST https://your-instance/api/v1/calls/outbound \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+18317773598",
"to_number": "+15551234567",
"record": true
}'

Response:

{
"id": "a1b2c3d4-...",
"from_number": "+18317773598",
"to_number": "+15551234567",
"status": "queued",
"direction": "outbound"
}

5. Send an SMS

curl -X POST https://your-instance/api/v1/sms/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+18317773598",
"to_number": "+15551234567",
"body": "Hi! This is a test from ZeroVoice."
}'

6. Create a contact

curl -X POST https://your-instance/api/v1/contacts \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Jamie Carter",
"phone": "+15551234567",
"email": "jamie@example.com",
"company": "Northwind Solar",
"tags": ["demo", "priority"]
}'

Next steps