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
- API Reference — Full endpoint documentation
- MCP Bridge — Let your AI agents make calls
- Authentication — JWT details and API keys