REST API for voice agents, inbound calls, and leads. Base URL: https://cloudvoiceai-do.adamfrankwoodward.workers.dev
Note: Outbound dialing via API is temporarily disabled until carrier (A2P) registration completes. Inbound agents on your phone numbers work today.
Create an API key in Settings → Developer. Pass it on every request:
Authorization: Bearer cvk_live_xxxxxxxx
# or
X-API-Key: cvk_live_xxxxxxxx
All requests are scoped to your organization. Keys are shown once at creation — store them securely.
List your agents.
curl https://cloudvoiceai-do.adamfrankwoodward.workers.dev/api/v1/agents \
-H "Authorization: Bearer cvk_live_..."
Create an agent. Body is a JSON agent config (name, biz_name, system_prompt, greeting, voice/niche fields, …).
List recent calls (id, agent, duration, disposition, cost, recording_key).
Read tenant-scoped usage totals, answered/failed calls, duration, prepaid billable minutes, cost, engine buckets, and daily buckets. The reporting window accepts 1, 7, 14, 30, 60, or 90 days.
Place an outbound call that bridges to an agent. Currently returns outbound_disabled until platform enables outbound. Inbound PSTN to your numbers is supported.
| Field | Type | Notes |
|---|---|---|
to | string | Destination, E.164 (required) |
agent_id | string | Agent snapshot id (optional) |
engine | string | edge | gemini | cloudflare |
curl -X POST .../api/v1/calls/outbound \
-H "Authorization: Bearer cvk_live_..." \
-H "Content-Type: application/json" \
-d '{"to":"+14155551234","engine":"edge"}'
List or create leads. POST requires name; optional email, phone, company, status, source. Creating a lead fires the lead.created webhook.
Configure outbound webhooks in Settings → Integrations. Events call.completed and lead.created POST { event, org_id, data, sent_at }; if a signing secret is set, an X-CloudVoice-Signature (HMAC-SHA256 over the body) header is included.
Supply approved provider keys and your own SignalWire carrier in Settings → Developer. Edge can use configured STT/LLM/TTS providers; Gemini Live and CloudVoice use their integrated realtime pipelines. When a supported credential is present, it is encrypted at rest (AES-256-GCM).
Define tools your agent can call mid-call (Settings → Developer). CloudVoice POSTs { tool, arguments } to your URL and feeds the JSON response back to the model.
CloudVoice AI · cloudvoiceai.com