---
title: "Get Call Quality Metrics"
method: GET
path: "/developer/call-quality-metrics"
tags: ["Developer", "Developer - Call Quality"]
---

# Get Call Quality Metrics

`GET /developer/call-quality-metrics`

Get time-bucketed call quality metrics across all customers.

Buckets by Call.created_at (UTC date_trunc) so quality maps to when the
call happened, not when it was graded. Rates are null (not 0) when the
denominator is 0 so charts can show gaps instead of fake zeros.

## Query parameters

- `period` string
- `customer_id` string, uuid, nullable — Filter to one customer; omit for all customers

## Response `200`

Successful Response

- CallQualityMetricsResponse — Time-bucketed call quality metrics from the grading system
  - `period` string, required — Requested period: 7d|30d|90d|all
  - `bucket` string, required — Bucket granularity used: day|week|month
  - `customer_id` string, uuid, nullable — Customer filter applied, or null for all customers
  - `summary` CallQualitySummary, required — Whole-window grading aggregates
    - `total_calls` integer, required
    - `graded_calls` integer, required
    - `graded_pct` number, nullable, required
    - `quality_a` integer, required
    - `quality_b` integer, required
    - `quality_c` integer, required
    - `quality_f` integer, required
    - `quality_ungraded` integer, required
    - `gpa` number, nullable, required
    - `goal_accomplished_pct` number, nullable, required
    - `caller_hung_up_pct` number, nullable, required
  - `buckets` CallQualityBucket[] — Chronological, gap-filled buckets
    - `bucket_start` string, date-time, required — Inclusive start of the bucket (UTC)
    - `total_calls` integer, required
    - `graded_calls` integer, required
    - `quality_a` integer, required
    - `quality_b` integer, required
    - `quality_c` integer, required
    - `quality_f` integer, required
    - `quality_ungraded` integer, required
    - `gpa` number, nullable — Mean of A=4/B=3/C=2/F=0 over graded calls; null if none graded
    - `goal_accomplished` integer, required
    - `goal_not_accomplished` integer, required
    - `goal_accomplished_pct` number, nullable — Null when no calls have goal data
    - `caller_hung_up` integer, required
    - `caller_hung_up_pct` number, nullable — Null when no calls are graded
    - `graded_pct` number, nullable — Null when the bucket has no calls

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/openintake/apis/fastapi.md) · [All operations](https://skmtc.dev/openintake/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openintake/fastapi/revisions/4a81645b59f6/schema)
