Send call data from your voice AI platform to Tuner for analysis. This endpoint accepts call transcripts and metadata, then processes them through Tuner’s evaluation pipeline.
Authorization header as a Bearer token.Use Tuner API key (tr_api_...) or user session token. Find your API key in Workspace Settings > API Keys.
Your Agent ID configured in Tuner. Get this value from Agent Settings > Agent Connection > Agent ID.
Request schema for public call creation.
Unique call identifier from your provider (used for idempotency).
1 - 200Call channel/type from your provider (e.g., 'phone_call', 'web_call').
1 - 100Unified call timeline. Each item represents either a user message, agent message, node transition, or a tool event. Include timing either as word-level ("words") or segment-level ("start_ms + end_ms" or "duration_ms")
1Call start time as Unix epoch. Accepts either seconds or milliseconds.
Call end time as Unix epoch. Accepts either seconds or milliseconds. Must be greater than or equal to start_timestamp.
Publicly reachable recording URL (audio file or provider recording link).
1 - 1024The version of the agent that handled this call (e.g. 3).
x >= 0Diarized plain-text transcript (fallback for display/search). If omitted, we derive it from transcript_with_tool_calls when possible.
Call duration in milliseconds. If omitted, we compute it from start_timestamp and end_timestamp.
Provider call status at ingest time. Preferred values: 'call_ended'.
100Why the call ended (e.g. user_hangup, agent_hangup).
100Caller phone number in E.164 format when available (e.g., '+14155550123').
50Whether the call was successful
User sentiment label. Must be one of [positive, neutral, negative, unknown]
50Whether the call reached voicemail
Dynamic variables collected during the call (free-form JSON)
Total call cost in cents (e.g. 125 for $1.25). Client sends cents; frontend converts from dollars for UX.
Provider-native analysis payload (free-form JSON; stored as-is)
Call-level metadata (e.g. context, custom attributes). Supports structured ai_models and usage_token fields; extra keys are also accepted. Merged into general_meta_data_raw for storage. If both are sent, keys are merged; general_meta_data_raw keys win on collision.
Use to store any extra metadata payload as a JSON object
Multi-channel recording URL (separate speaker channels), if available.
1024