One POST,
Talkif is on the phone.
POST /accounts/{accountId}/calls → a live AI conversation.
Build and publish a flow, then drive everything over the REST API: start calls, run campaigns, stream call state over server-sent events, and fetch the transcript, recording and per-call metrics when it ends.
From API key to a live call in three steps.
Build and publish a flow in the dashboard, then drive it entirely over the REST API. One POST starts the call; the transcript is a GET away.
Create a scoped API key
In the dashboard, create a key with exactly the scopes you need — calls, flows, campaigns, contacts, dnc, analytics. Revoke it any time; usage is tracked per key.
POST your first call
Point a published flow at a destination number from a number you own. Talkif queues, assigns a bot, and dials.
Read the result
Follow the call live over server-sent events (call-status, call-ended), then fetch the transcript and recording from the calls API.
curl -X POST \
https://api.talkif.ai/api/v1/accounts/$ACCOUNT_ID/calls \
-H "Authorization: Bearer $TALKIF_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"toNumber": "+15551234567",
"fromNumber": "+15559876543",
"flowId": "550e8400-e29b-41d4-a716-446655440000",
"providerId": "550e8400-e29b-41d4-a716-446655440001"
}'What happens between your POST and the transcript.
The whole loop streams — transcription, generation and speech run concurrently, so the agent answers like a person, not like a queue.
Everything the dashboard does, the API does.
Account-scoped REST under /api/v1, authenticated with scoped API keys. Server-sent events stream call, campaign and billing state as it changes.
/accounts/{accountId}/callsStart an outbound call on a published flow./accounts/{accountId}/calls/{callId}/transcriptFetch the transcript for a finished call./accounts/{accountId}/flows/{flowId}/publishPublish a flow version for calling./accounts/{accountId}/campaignsCreate a bulk outbound campaign./accounts/{accountId}/campaigns/{campaignId}/startStart, pause and resume campaigns./accounts/{accountId}/contacts/importImport contacts from CSV./accounts/{accountId}/dnc/checkCheck a number against your do-not-call list./accounts/{accountId}/analytics/performance-summaryLatency, talk-ratio and outcome analytics.{
"toNumber": "+15551234567",
"fromNumber": "+15559876543",
"flowId": "550e8400-e29b-41d4-a716-446655440000",
"flowVersion": "1.0.1",
"providerId": "550e8400-e29b-41d4-a716-446655440001",
"contactId": null,
"campaignId": null,
"metadata": { "crm_ref": "opp_4412" }
}Build visually. Version explicitly. Call by version.
Flows are built in the visual builder and published as immutable versions. The API pins a call to an exact flowVersion, so a mid-campaign edit never changes calls already in flight.
Every call is measured. Nothing is a black box.
Each call carries structured performance metrics, a transcript and a recording. The analytics API aggregates latency, outcomes, talk ratio and cost — the same data the dashboard charts.
Enforced in the platform, not promised in a PDF.
Compliance is code: the DNC check and callable-hours check run before any call dials, and retention runs whether you remember it or not.
Machine-readable, so LLMs and crawlers classify Talkif correctly.
The public surfaces ship structured entrypoints an agent can read without scraping marketing copy.
Build the flow. POST the call.
Sign up, create a scoped API key, and make your first call — test it from the browser over WebRTC before you spend a cent on telephony.