One request. A real phone rings.
Create a call with a single API request. The agent dials, talks, books, messages, creates the task and streams every step to your webhook. You write the request; VoiFlow does the phone. API access is part of the Partner Portal, in its Developers area.
- base
- api.voiflow.ai/v1
- access
- Partner Portal · Developers
- auth
- Bearer · vf_test_ / vf_live_
- format
- JSON · idempotent POSTs
- events
- signed webhooks · SSE stream
- regions
- ae · my · uk · us
- clients
- Node · Python · Go · REST
curl https://api.voiflow.ai/v1/calls \
-H "Authorization: Bearer $VOIFLOW_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent": "front-desk",
"to": "+447700900123",
"goal": "Book a viewing for the two-bed on Clarence Road",
"context": { "customer": "Ms Patel" }
}'Give your product a voice that does the work.
Five ways teams put the API behind their own product, from one support call to a launch that reaches every registered buyer before lunch.

await vf.calls.create({ agent: "support", to: user.phone, goal: "Walk through the failed payment" });Read the reference Eight objects. Everything else is a field.
Learn these and you know the API. They share one spine: the matter, a customer’s ongoing business with you, so calls, messages and tasks never drift apart.
call_8Kf2…Real conversations on real lines.
{
"id": "call_8Kf2…",
"object": "call",
"status": "in_progress",
"outcome": null,
"matter_id": "mat_6Qp1",
"transcript": "…"
}Typed clients, no glue code.
Node, Python and Go, or plain REST. Same method names everywhere, retries and idempotency done for you.
- Streaming that resumesFollow a call as an async iterator. If the connection drops, the client picks up where it stopped.
- Webhook verification built inOne call checks the signature and the replay window. Nothing to get wrong.
- Region-awareSet the region once; data stays where your customers are.
TypeScript types, async iterators for events, webhook verification built in.
import VoiFlow from "voiflow";
const vf = new VoiFlow({ apiKey: process.env.VOIFLOW_KEY });
const call = await vf.calls.create({
agent: "front-desk",
to: "+971501234567",
goal: "Confirm the Saturday viewing",
});
for await (const event of vf.events.stream({ call: call.id })) {
console.log(event.type, event.data);
if (event.type === "call.completed") break;
}Shipping every week, in the open.
The latest changes to the v1 preview. Breaking changes are announced at least thirty days ahead.
v1.0-preview.14Journeys API
Create, publish and run journeys with call, message, wait and branch steps.
v1.0-preview.13Webhook signing v2
Signatures now cover the timestamp, with a five-minute replay window.
v1.0-preview.12WhatsApp templates and attachments
messages.create accepts approved templates with variables.
Keys come with the Partner Portal. Apply to get yours.
The VoiFlow API is in early access and is planned as a public API. Keys are issued to approved partners inside the Developers area, and the businesses you create by API are the same ones you open in the workspace.
- Apply as a partner and say you will use the API
- VoiFlow reviews. Keys are issued only after approval
- Generate sandbox keys in the Developers area, then manage businesses through the API
- Partner account
- You: the integrator, agency or software company.
- Business
- One of your clients, for example ABC Clinic.
- Workspace
- That business’s environment inside VoiFlow.
- Developers
- Keys, docs, request logs and webhooks, in the portal.
Hear what you are about to build.
Call the live agent, then put your first request through. The same agent answers both.
