Skip to main content
GET
/
analytics
/
overview
Analytics Overview
curl --request GET \
  --url https://api.example.com/analytics/overview
{
  "period": {
    "start_date": "<string>",
    "end_date": "<string>"
  },
  "summary": {
    "total_calls": 123,
    "connected_calls": 123,
    "failed_calls": 123,
    "success_rate": 123,
    "total_duration_seconds": 123,
    "avg_duration_seconds": 123
  },
  "performance": {
    "avg_carrier_lag_ms": 123,
    "avg_ai_latency_ms": 123,
    "avg_gateway_processing_ms": 123,
    "avg_total_latency_ms": 123,
    "p95_latency_ms": 123,
    "p99_latency_ms": 123
  },
  "quality": {
    "avg_packet_loss_percent": 123,
    "avg_jitter_ms": 123,
    "codec_distribution": {
      "G711": 123,
      "G722": 123
    }
  },
  "by_provider": [
    {
      "provider": "<string>",
      "call_count": 123,
      "success_rate": 123,
      "avg_latency_ms": 123
    }
  ],
  "by_trunk": [
    {
      "trunk_id": "<string>",
      "trunk_name": "<string>",
      "call_count": 123,
      "success_rate": 123
    }
  ],
  "timeseries": [
    {
      "timestamp": "<string>",
      "calls": 123,
      "avg_latency_ms": 123,
      "success_rate": 123
    }
  ]
}

Overview

Retrieve aggregated analytics and statistics across all calls.

Request

start_date
string
ISO 8601 date to start from (default: 7 days ago)
end_date
string
ISO 8601 date to end at (default: today)
trunk_id
string
Filter to specific trunk
granularity
string
Data granularity: daily, hourly (default: daily)

Example Request

curl -X GET "https://api.telepathvoice.com/v1/analytics/overview?start_date=2024-03-01&end_date=2024-03-05" \
  -H "Authorization: Bearer sk_live_abc123def456..." \
  -H "Content-Type: application/json"

Python Example

import requests
from datetime import datetime, timedelta

API_KEY = "sk_live_abc123def456..."
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Get analytics for past 7 days
end_date = datetime.now().date()
start_date = end_date - timedelta(days=7)

response = requests.get(
    "https://api.telepathvoice.com/v1/analytics/overview",
    headers=headers,
    params={
        "start_date": start_date.isoformat(),
        "end_date": end_date.isoformat()
    }
)

analytics = response.json()

Response

period
object
Time period for these metrics
start_date
string
Period start (ISO 8601)
end_date
string
Period end (ISO 8601)
summary
object
Overall statistics
total_calls
integer
Total calls in period
connected_calls
integer
Successfully connected calls
failed_calls
integer
Failed calls
success_rate
number
Percentage successful (0-100)
total_duration_seconds
integer
Sum of all call durations
avg_duration_seconds
integer
Average call duration
performance
object
Performance metrics
avg_carrier_lag_ms
integer
Average carrier lag
avg_ai_latency_ms
integer
Average AI response time
avg_gateway_processing_ms
integer
Average gateway processing
avg_total_latency_ms
integer
Average end-to-end latency
p95_latency_ms
integer
95th percentile latency
p99_latency_ms
integer
99th percentile latency
quality
object
Audio quality metrics
avg_packet_loss_percent
number
Average packet loss
avg_jitter_ms
integer
Average jitter
codec_distribution
object
Breakdown by codec
G711
number
Percentage using G.711
G722
number
Percentage using G.722
by_provider
array
Metrics broken down by AI provider
provider
string
AI provider name
call_count
integer
Calls for this provider
success_rate
number
Success rate for this provider
avg_latency_ms
integer
Average latency for this provider
by_trunk
array
Metrics broken down by trunk
trunk_id
string
Trunk identifier
trunk_name
string
Friendly name
call_count
integer
Calls for this trunk
success_rate
number
Success rate for this trunk
timeseries
array
Data points over time (if granularity=daily/hourly)
timestamp
string
ISO 8601 timestamp
calls
integer
Calls in this period
avg_latency_ms
integer
Average latency
success_rate
number
Success rate for period

Example Response

{
  "period": {
    "start_date": "2024-03-01",
    "end_date": "2024-03-05"
  },
  "summary": {
    "total_calls": 5234,
    "connected_calls": 5087,
    "failed_calls": 147,
    "success_rate": 97.2,
    "total_duration_seconds": 892134,
    "avg_duration_seconds": 170
  },
  "performance": {
    "avg_carrier_lag_ms": 78,
    "avg_ai_latency_ms": 234,
    "avg_gateway_processing_ms": 21,
    "avg_total_latency_ms": 333,
    "p95_latency_ms": 612,
    "p99_latency_ms": 845
  },
  "quality": {
    "avg_packet_loss_percent": 0.31,
    "avg_jitter_ms": 8,
    "codec_distribution": {
      "G711": 23.4,
      "G722": 76.6
    }
  },
  "by_provider": [
    {
      "provider": "openai",
      "call_count": 3142,
      "success_rate": 98.1,
      "avg_latency_ms": 287
    },
    {
      "provider": "elevenlabs",
      "call_count": 2092,
      "success_rate": 95.8,
      "avg_latency_ms": 401
    }
  ],
  "by_trunk": [
    {
      "trunk_id": "conn_abc123xyz",
      "trunk_name": "Customer Support",
      "call_count": 3421,
      "success_rate": 97.9
    }
  ],
  "timeseries": [
    {
      "timestamp": "2024-03-01",
      "calls": 1047,
      "avg_latency_ms": 328,
      "success_rate": 97.1
    },
    {
      "timestamp": "2024-03-02",
      "calls": 1053,
      "avg_latency_ms": 335,
      "success_rate": 97.4
    }
  ]
}

Usage Examples

Daily Performance Report

def daily_performance_report(api_key):
    """Generate daily performance report"""
    from datetime import datetime

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    today = datetime.now().date()

    response = requests.get(
        "https://api.telepathvoice.com/v1/analytics/overview",
        headers=headers,
        params={
            "start_date": today.isoformat(),
            "end_date": today.isoformat()
        }
    )

    data = response.json()['summary']

    print(f"Daily Report for {today}")
    print(f"Total Calls: {data['total_calls']}")
    print(f"Success Rate: {data['success_rate']:.1f}%")
    print(f"Avg Duration: {data['avg_duration_seconds']}s")

Compare Provider Performance

def compare_providers(api_key):
    """Compare performance across AI providers"""
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    response = requests.get(
        "https://api.telepathvoice.com/v1/analytics/overview",
        headers=headers
    )

    providers = response.json()['by_provider']

    print("Provider Comparison")
    print("-" * 60)
    print(f"{'Provider':<20} {'Calls':<10} {'Success':<10} {'Latency':<10}")
    print("-" * 60)

    for p in providers:
        print(f"{p['provider']:<20} {p['call_count']:<10} {p['success_rate']:>8.1f}% {p['avg_latency_ms']:>9}ms")

Monitor Trend Over Time

def monitor_performance_trend(api_key, days=30):
    """Monitor performance trend over N days"""
    from datetime import datetime, timedelta

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    end_date = datetime.now().date()
    start_date = end_date - timedelta(days=days)

    response = requests.get(
        "https://api.telepathvoice.com/v1/analytics/overview",
        headers=headers,
        params={
            "start_date": start_date.isoformat(),
            "end_date": end_date.isoformat(),
            "granularity": "daily"
        }
    )

    timeseries = response.json()['timeseries']

    # Find trend
    if len(timeseries) > 1:
        first_week = timeseries[:7]
        last_week = timeseries[-7:]

        first_avg = sum(d['avg_latency_ms'] for d in first_week) / len(first_week)
        last_avg = sum(d['avg_latency_ms'] for d in last_week) / len(last_week)

        trend = "improving" if last_avg < first_avg else "degrading"
        print(f"Latency is {trend}")
        print(f"  First week: {first_avg:.0f}ms")
        print(f"  Last week: {last_avg:.0f}ms")

Detect Anomalies

def detect_anomalies(api_key):
    """Detect performance anomalies"""
    from statistics import mean, stdev

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    response = requests.get(
        "https://api.telepathvoice.com/v1/analytics/overview",
        headers=headers,
        params={"granularity": "hourly"}
    )

    timeseries = response.json()['timeseries']
    latencies = [d['avg_latency_ms'] for d in timeseries]

    if len(latencies) < 10:
        return

    avg = mean(latencies)
    std = stdev(latencies)

    print(f"Normal latency: {avg:.0f}ms ± {std:.0f}ms")
    print("\nAnomalies detected:")

    for point in timeseries:
        if abs(point['avg_latency_ms'] - avg) > 2 * std:
            print(f"  {point['timestamp']}: {point['avg_latency_ms']}ms")

See Also