---
title: "Get Tool Latency Stats"
method: GET
path: "/api/v1/voice-agents/{voice_agent_id}/tool-latency-stats"
tags: ["voice-agent-metrics"]
---

# Get Tool Latency Stats

`GET /api/v1/voice-agents/{voice_agent_id}/tool-latency-stats`

Per-tool execution-latency distribution for an agent over 30 days.

Tool turns are the worst-latency turns; this surfaces the p95 offenders
(ordered slowest-first) so we know which tool to speed up.

## Path parameters

- `voice_agent_id` string, uuid, required

## Response `200`

Successful Response

- ToolLatencyStatsResponse
  - `tools` ToolLatencyStat[]
    - `tool_name` string, required
    - `duration` StageLatencyStat — Distribution of one pipeline stage's latency (avg + percentiles). Percentiles come from Postgres ``percentile_cont`` over the same rows the average is computed on. Latency is a tail problem — the average hides the slow turns callers actually feel — so p95/p99 are the numbers that matter.
      - `avg_ms` integer, nullable
      - `p50_ms` integer, nullable
      - `p95_ms` integer, nullable
      - `p99_ms` integer, nullable
    - `sample_count` integer
    - `success_rate` number

## Other responses

- `422` — Validation Error

## Changes

> 26 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/voice-agents/:voice_agent_id/tool-latency-stats/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4df7b22a7dae?raw)
