API reference
Everything the dashboard does is available over HTTPS. Authenticate with a workspace API key from the Keys page; keys carry scopes (agents:read, agents:write, calls:read, calls:write, numbers:write). Base URL https://voiceflint.com.
curl -H "Authorization: Bearer vf_live_..." https://voiceflint.com/api/v1/agentsAgents
List agents
GET /api/v1/agents
Create an agent
POST /api/v1/agents
curl -X POST https://voiceflint.com/api/v1/agents \
-H "Authorization: Bearer vf_live_..." -H "content-type: application/json" \
-d '{"name":"Front desk","systemPrompt":"You book appointments for Acme Dental.","preset":"balanced","region":"us-east","tools":[{"name":"book","description":"Book a slot","parameters":{"type":"object","properties":{"day":{"type":"string"}},"required":["day"]},"url":"https://example.com/book"}]}'Calls
Place an outbound call
POST /api/v1/calls
curl -X POST https://voiceflint.com/api/v1/calls -H "Authorization: Bearer vf_live_..." -H "content-type: application/json" \
-d '{"agentId":"<uuid>","to":"+14155550123","metadata":{"crmId":"42"}}'List calls
GET /api/v1/calls?agentId=&limit=
Get a call
GET /api/v1/calls/:id
Erase a call
DELETE /api/v1/calls/:id
Numbers
List numbers
GET /api/v1/numbers
Webhooks
Add an endpoint under Keys. Each delivery is a JSON POST signed with HMAC-SHA256 of the raw body using your signing secret.
POST https://example.com/voiceflint
X-Voiceflint-Event: call.completed
X-Voiceflint-Signature: sha256=<hex hmac>
{"event":"call.completed","createdAt":"2026-09-09T12:00:00Z","data":{"id":"...","status":"completed","durationSec":252,"cost":{"total":0.1867,"charged":0.0},"latency":{"e2eP50":740,"e2eP95":910},"transcript":[{"role":"user","text":"..."}]}}Web widget
Enable the widget on an agent to get a public key, then drop one script tag on any page. Visitors talk to the agent over WebRTC; calls appear in your dashboard with the same receipt.
<script src="https://voiceflint.com/widget.js" data-agent="pk_..." data-label="Talk to us"></script>Or mint tokens yourself from a server with POST /api/public/token and connect with livekit-client.