API

Call object reference

Normalized call record structure returned by REST endpoints and webhooks.

Complete payload example

json
{
  "call": {
    "id": "6702b3c4d5e6f7a8b9c0d1e2",
    "agentId": "6701a2b3c4d5e6f7a8b9c0d1",
    "agentName": "Clinical Appointment Coordinator",
    "direction": "outbound",
    "status": "completed",
    "callerNumber": "+918000000001",
    "calledNumber": "+919876543210",
    "voip": {
      "from": "+918000000001",
      "to": "+919876543210",
      "direction": "outbound"
    },
    "startedAt": "2026-09-18T10:15:00.000Z",
    "endedAt": "2026-09-18T10:16:32.000Z",
    "durationSeconds": 92,
    "transcription_text": "Customer: Hello?\n\nAgent: Hi, this is Dr. Patel's clinic calling to confirm your appointment for tomorrow at 4 PM.\n\nCustomer: Yes, I will be there.\n\nAgent: Great, thank you!",
    "transcript": [
      {
        "role": "assistant",
        "text": "Hi, this is Dr. Patel's clinic calling to confirm your appointment for tomorrow at 4 PM.",
        "timestamp": "2026-09-18T10:15:02.000Z",
        "interrupted": false
      },
      {
        "role": "user",
        "text": "Yes, I will be there.",
        "timestamp": "2026-09-18T10:15:12.000Z",
        "interrupted": false
      }
    ],
    "recordingUrl": "https://api.vozon.ai/api/v1/calls/6702b3c4d5e6f7a8b9c0d1e2/recording",
    "providers": {
      "llm": { "provider": "openai", "model": "gpt-4o-mini", "totalTokens": 1240 },
      "stt": { "provider": "sarvam", "model": "saarika:v2", "seconds": 92 },
      "tts": { "provider": "sarvam", "model": "bulbul:v1", "characters": 540 }
    },
    "usage": {
      "llmTokens": 1240,
      "sttSeconds": 92,
      "ttsCharacters": 540,
      "avgResponseLatencyMs": 410,
      "responseLatencyP50Ms": 380,
      "responseLatencyP90Ms": 590,
      "responseLatencyP95Ms": 680,
      "responseLatencyP99Ms": 820
    },
    "billing": {
      "chargedCredits": 4.5,
      "providerCost": 2.1,
      "platformFee": 2.4,
      "currency": "INR"
    },
    "sentiment": { "score": 0.88, "label": "positive" },
    "endReason": "agent_completed",
    "structuredOutput": {
      "confirmed": true,
      "rescheduled": false,
      "appointmentTime": "2026-09-19T16:00:00Z"
    },
    "metadata": { "customerId": "cust_8829" }
  }
}

Detailed field reference

FieldTypeDescription
idstringStable unique call identifier.
directionstring'inbound', 'outbound', or 'web'.
statusstring'completed', 'failed', 'in-progress', 'ringing', 'busy', 'no-answer', 'canceled'.
durationSecondsintegerTotal connected call duration in seconds.
voipobjectCaller and called numbers with E.164 formatting.
transcription_textstringFull concatenated conversation transcript.
transcriptarrayTimestamped dialog turns with role, content, and interruption flags.
recordingUrlstringDirect streaming URL for call audio recording with Range header support.
usageobjectLLM tokens, STT seconds, TTS characters, and latency percentiles (p50/p90/p95/p99).
billing.chargedCreditsnumberExact wallet deduction in organization currency (e.g. INR).
sentimentobjectSentiment score (-1.0 to 1.0) and label (positive, neutral, negative).
structuredOutputobjectData extracted by the agent (e.g. dates, booking status, custom entities).
metadataobjectArbitrary correlation keys provided when triggering the call.