The flow
1
Create an analyzer
POST /analysis-agents with a name and instructions.2
Add recordings
Three ways, which you can mix:
- Upload files. Create a batch with
direct_upload, get an upload slot per file, upload to storage, then confirm the upload. - Fetch URLs. Create a batch with
csv_urls, then fetch the recordings. - Pick calls you already have. AI agent calls or dialer calls, or watch sources so new calls are analyzed automatically.
3
Analyze
analyze the ready recordings. You confirm the count first, because analysis uses credits.4
Poll
List recordings until each one is
done or failed.5
Read the results
Problems, analytics, and the analysis of one call.
Base URL and authentication
Authorization header. See Authentication to create one.
- The key works inside its own workspace. A
workspace_idin the query or body is ignored. - The key acts as the workspace owner, with the owner’s current role. If the owner has no active membership in the workspace, requests fail with
403 DA_MEMBERSHIP_REQUIRED. - Platform (system) keys are refused with
403 SYSTEM_KEY_ROUTE_DENIED. - If the key has IP addresses registered, calls from other IPs fail with
403 IP_BLOCKED. - Responses are never cached (
Cache-Control: no-store). - IDs are UUID strings. A path ID that is not a UUID returns
404 NOT_FOUND.
Permissions
Enable call_analysis on a key
New keys have call_analysis by default (the default is every module: tts, stt, memory, slm, judge, whatsapp, agents, call_analysis). Keys created before this permission existed do not have it. The key owner must turn it on:
- Dashboard: Developers → API keys, edit the key, switch on Call analysis.
- API:
PUT /developer/api/{id}with{ "permissions": { "call_analysis": true } }. List the other modules you still want in the same object, because only fields set totruegrant access.
analytics_admin grant can do everything. Things you cannot see return 404, not 403.
Response format
pagination appears only on paged lists. Errors:
Limits
Credits
Analysis uses paid speech-to-text and model credits from your workspace. Analyze requires aconfirm_count that matches the server’s count, and returns estimated_credits_usd. Repeating an analyze call never charges twice for the same recording. See Plans, credits and top-ups.
Errors
Every route can return these:Endpoints
Analyzers
List, create, get, update, archive. Sources and picked calls
Add recordings
Batches, upload slots, upload confirmation, URL fetch, analyze
Results
Recordings, problems, analytics, per-call analysis
Fix your agent
Suggest, apply and undo better AI agent instructions