Skip to content
BookifyCall
Developer docs: Analytics

Analytics

Aggregates over calls: volumes, minutes, outcomes, AI performance.

Call counts, minutes, outcomes and daily buckets for a periodLink to Call counts, minutes, outcomes and daily buckets for a period

GET/analytics/summary

`outcomes` counts analysed calls by AI outcome. `daily` buckets use the organization timezone.

Scope
calls:read

Query parameters

periodstring
One of: 1d, 7d, 30d, 90d · Default: 30d
agentIdstring
Only this agent's calls (must be within the key's scope)
curl "https://bookifycall.com/api/v1/external/analytics/summary" \
  -H "X-API-Key: $BOOKIFYCALL_API_KEY"
Example response · 200
{
  "success": true,
  "data": {
    "period": "7d",
    "from": "2026-10-09T12:00:00.000Z",
    "to": "2026-10-16T12:00:00.000Z",
    "timezone": "America/New_York",
    "calls": {
      "total": 96,
      "byDirection": {
        "inbound": 81,
        "outbound": 15
      },
      "byStatus": {
        "completed": 88,
        "failed": 8
      },
      "minutes": 302,
      "avgDurationSeconds": 189
    },
    "outcomes": {
      "appointment_booked": 31,
      "information_provided": 40,
      "message_taken": 9,
      "transferred": 6
    },
    "appointmentsBooked": 31,
    "newLeads": 22,
    "daily": [
      {
        "date": "2026-10-15",
        "calls": 14,
        "minutes": 44,
        "booked": 5,
        "missed": 1
      },
      {
        "date": "2026-10-16",
        "calls": 9,
        "minutes": 27,
        "booked": 3,
        "missed": 0
      }
    ]
  }
}

AI performance across analysed callsLink to AI performance across analysed calls

GET/insights/summary

Score, resolution and handoff rates, sentiment, top intents and unanswered questions.

Scope
calls:read

Query parameters

periodstring
One of: 7d, 30d, 90d · Default: 30d
agentIdstring
Only this agent's calls (must be within the key's scope)
curl "https://bookifycall.com/api/v1/external/insights/summary" \
  -H "X-API-Key: $BOOKIFYCALL_API_KEY"
Example response · 200
{
  "success": true,
  "data": {
    "period": "30d",
    "timezone": "America/New_York",
    "totals": {
      "endedCalls": 350,
      "analyzedCalls": 341
    },
    "avgAiScore": 86.4,
    "resolutionRate": 78.2,
    "handoffRate": 9.1,
    "followUpsNeeded": 27,
    "sentiment": {
      "positive": 210,
      "neutral": 112,
      "negative": 19
    },
    "topIntents": [
      {
        "label": "book_appointment",
        "count": 140
      }
    ],
    "topUnansweredQuestions": [
      {
        "question": "Do you accept my insurance?",
        "count": 6,
        "lastAskedAt": "2026-01-15T16:30:00.000Z",
        "callId": "00000000-0000-4000-8000-000000000001",
        "callType": "inbound"
      }
    ],
    "policyFlags": [],
    "scoreTrend": [
      {
        "date": "2026-10-16",
        "avgScore": 88,
        "calls": 9
      }
    ]
  }
}
Next: Calls