Most voice AI platforms give you a dashboard and a prayer. You configure agents through a UI, launch campaigns with a button, and hope for the best. The moment you want voice inside your own product — a call triggered from your CRM, transcripts flowing into your data warehouse, campaigns launched by your backend — you hit a wall.
Talkif was built API-first. Every feature in the dashboard is backed by a REST endpoint. If you can click it, you can code it. Here's a tour of what that unlocks — with the full API reference carrying the details.
Start a call from anywhere
The core action: your system decides someone should get a call, and Talkif makes it happen. A deal closes in your CRM, a reminder window opens, a webhook fires — one request places the call:
bashcurl -X POST https://api.talkif.ai/api/v1/accounts/{accountId}/calls \
-H "Authorization: Bearer tif_live_..." \
-d '{
"toNumber": "+14155551234",
"fromNumber": "+14155550100",
"flowId": "flow_abc123",
"contactId": "contact_xyz789"
}'The response tells you whether the call started immediately or was queued behind current capacity — including its queue position and an estimated wait.
Get everything back after the call
Every completed call exposes its full record: the transcript turn by turn, an AI-generated analysis (summary, sentiment, extracted action items, outcome), audio-quality metrics, a cost breakdown, and a time-limited link to the recording. Pull it all with one request, or just the piece you need:
bashGET /accounts/{accountId}/calls/{callId}/details # everything
GET /accounts/{accountId}/calls/{callId}/transcript # just the transcript
GET /accounts/{accountId}/calls/{callId}/recording # link to the audioThis is how calls become structured data in your system of record instead of rows in someone else's dashboard.
Contacts are a real data layer
Contacts support full create/read/update/delete, bulk import from CSV or JSON, tags, custom fields, and search by phone number (handy for identifying inbound callers). Everything you store on a contact becomes available to your agents — when the agent picks up, it already knows who it's talking to, via dynamic prompts.
Campaigns: outbound calling at scale
For high-volume outbound, you create a campaign, attach contacts (individually or by filter — say, everyone tagged renewal-due), and start it. Talkif handles the scheduling, retries, pacing, and progress tracking. Pause and resume any time.
One detail worth knowing: each contact's data is frozen when they join the campaign. If a record changes mid-campaign, the calls still use the data from enrollment — so retries stay consistent and nothing drifts mid-flight.
Flows: treat conversation design like code
Flows — the conversation logic your agents run — have a full lifecycle API: create, validate, publish, list versions, roll back. Validation catches broken node references and unreachable steps before you publish. You can wire this into your CI pipeline: validate on every change, publish on merge, roll back on failure. Conversation design with version control, because it deserves it.
And the rest of the platform
Everything else is programmable too:
- Phone numbers — search, purchase, and connect numbers to flows for inbound handling. Works with managed Twilio, your own Twilio account (BYOC), or any SIP trunk.
- Analytics — call volumes, cost trends, success-rate heatmaps, per-flow performance. Chart-ready data for Grafana, Looker, or your own dashboards.
- Do-Not-Call compliance — check numbers before dialing, add and bulk-import DNC entries. Talkif also checks automatically before every outbound call.
- Schedules — timezone-aware calling windows ("US business hours") that you attach to campaigns.
- Prompt templates — create reusable templates, resolve them with real data, or have AI generate one from a plain-language description.
- Model discovery — list available AI providers and voices, preview a voice before committing. LLMs from OpenAI, Anthropic, Azure, Google, and Grok; voices from ElevenLabs and Cartesia; speech recognition from Deepgram, AssemblyAI, Soniox, and more — mixed and matched per flow.
API keys you can actually scope
Keys use the tif_live_ prefix and authenticate as standard Bearer tokens. Each key gets granular scopes — calls:read, contacts:*, campaigns:write, and so on across 12 resource types — so you can mint a key that only reads transcripts and touches nothing else. Keys also support IP allowlists, expiration dates, and per-key usage tracking. Keys are hashed at rest and shown exactly once at creation — store yours somewhere safe. Details: docs.talkif.ai/developer/api-keys.
The boring parts, done properly
Errors follow one consistent shape — a machine-readable code, a human-readable message, per-field validation details, and a requestId you can hand to support. Rate-limit responses tell you exactly how long to wait.
Rate limits allow a 1000-request burst, then 60 requests per minute sustained.
List endpoints paginate with limit and offset (default 20 per page, max 100) and always return the total count.
Patterns people actually build
- CRM-triggered calls — deal stage changes → your middleware →
POST /calls, with the contact's CRM data flowing into the agent's prompt. - Post-call pipelines — fetch transcripts and analysis for completed calls, push them to your warehouse.
- Campaign orchestration — your scheduler decides when; Talkif handles the calling.
- Compliance automation — nightly DNC sync, recording pulls for audit, analytics exports for reporting.
- Flow CI/CD — validate and publish flows from your deployment pipeline, roll back on failure.
Start here
The interactive reference — every endpoint, every field, generated straight from the source code — is at docs.talkif.ai/reference. The raw OpenAPI 3.1 spec lives at https://api.talkif.ai/api/v1/openapi.json.