---
title: "Get judge stats"
method: GET
path: "/v1/projects/{project_id}/judges/{judge_id}/stats"
tags: ["judges"]
---

# Get judge stats

`GET /v1/projects/{project_id}/judges/{judge_id}/stats`

## Request

- Base URL: `https://api.connic.co`
- URL: `https://api.connic.co/v1/projects/{project_id}/judges/{judge_id}/stats`
- Auth: HTTP bearer

Average scores over completed evaluations, per-criterion averages over the 100 most recent ones, the failure count, and token usage and cost across all of the judge's evaluations.

Required permission: `judges.view`.

## Path parameters

- `project_id` string, uuid, required
- `judge_id` string, uuid, required

## Query parameters

- `convert_costs_to` 'EUR' | 'USD', nullable: Convert token costs to EUR or USD at the daily ECB reference rate of each model call

## Response `200`

Successful Response

- JudgeStatsResponse: Aggregate scores, token usage and cost for one judge.
  - `avg_score` number, nullable: Average overall score of completed evaluations; null when none have completed.
  - `avg_max_score` number, nullable: Average overall maximum score of completed evaluations; null when none have completed.
  - `total_evaluated` integer: Number of completed evaluations.
  - `total_failed` integer: Number of failed evaluations.
  - `criteria_averages` JudgeCriterionAverage[]: Per-criterion averages over the 100 most recent completed evaluations, in rubric order.
    - `name` string, required
    - `avg_score` number, required: Average points for this criterion over the evaluations in `count`.
    - `max_score` number, required: Maximum points for this criterion, as recorded on the latest evaluation.
    - `count` integer, required: Number of evaluations included in the average.
  - `total_tokens` integer: Input, output and thinking tokens across all of the judge's evaluations.
  - `total_input_tokens` integer: Input tokens across all evaluations, including cached ones.
  - `total_output_tokens` integer: Output tokens across all evaluations.
  - `total_thinking_tokens` integer: Reasoning tokens across all evaluations.
  - `total_cached_input_tokens` integer: Input tokens served from the provider's cache; part of `total_input_tokens`.
  - `total_audio_input_tokens` integer: Audio part of `total_input_tokens`.
  - `total_audio_output_tokens` integer: Audio part of `total_output_tokens`.
  - `total_audio_cached_input_tokens` integer: Audio part of `total_cached_input_tokens`.
  - `total_audio_thinking_tokens` integer: Audio part of `total_thinking_tokens`.
  - `total_audio_usage_missing` boolean: True when at least one model call did not report its audio token split, so audio totals may be low.
  - `avg_tokens_per_eval` number: Average `total_tokens` per evaluation with recorded usage, rounded to one decimal; 0 when there is none.
  - `token_cost` PublicTokenCostResponse: Token cost in each model's pricing currency, or in one currency when `convert_costs_to` is set.
    - `amounts` object, required: Total cost keyed by currency code (`EUR` or `USD`), as a decimal string with 12 decimal places. Only currencies with a nonzero amount are included.
    - `breakdown` object, required: Cost split by token type and by agent versus judge, keyed by currency code.
    - `coverage` PublicTokenCostCoverageResponse, required: How many model calls could be priced.
      - `complete` boolean, required: True when every model call could be priced.
      - `call_count` integer, required: Model calls covered by the report.
      - `priced_call_count` integer, required: Calls included in the cost amounts.
      - `unpriced_call_count` integer, required: Calls without a known price or without reported token usage. They are left out of the amounts.
      - `unpriced_models` string[], required: Models of the unpriced calls.
    - `converted_to` string, nullable: Currency the amounts were converted to at the daily ECB reference rate of each call. Present only when `convert_costs_to` is set.
    - `native_amounts` object, nullable: Totals in each model's pricing currency before conversion, as decimal strings keyed by currency code. Present only when `convert_costs_to` is set.

## Other responses

- `401`: Missing or invalid API key.
- `403`: The API key lacks the required permission or access to the environment.
- `404`: The resource does not exist in this project.
- `422`: Validation Error
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/connic/apis/connic-api.md) · [All operations](https://skmtc.dev/connic/apis/connic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/connic/apis/connic-api/revisions/482932da5fbe?raw)
