---
title: "✨ Data quality: confusion matrix"
method: GET
path: "/api/projects/{id}/analytics/data-quality/agreement-analysis/confusion-matrix"
tags: ["Stats"]
---

# ✨ Data quality: confusion matrix

`GET /api/projects/{id}/analytics/data-quality/agreement-analysis/confusion-matrix`

<Card href="https://humansignal.com/goenterprise">
        <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
        <p style="margin-top: 10px; font-size: 14px;">
            This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
        </p>
    </Card>
Returns label confusion matrix with precision, recall, and top confusion pairs. In `ground_truth` mode the matrix is directional: rows are GT labels (actual), columns are annotator labels (predicted). In `all` and `accepted` modes — where no canonical "actual vs predicted" axis exists — the matrix is symmetric. When a task has multiple GT annotations the most recently updated one is used. `top_confusion_pairs.rate` is the share of off-diagonal mass.

## Path parameters

- `id` integer, required

## Query parameters

- `from_name` string
- `mode` 'accepted' | 'all' | 'ground_truth'

## Response `200`

- DataQualityAgreementConfusionMatrix
  - `labels` string[], required
  - `matrix` array[], required
    - integer[]
  - `precision` number[], required
  - `recall` number[], required
  - `top_confusion_pairs` DataQualityConfusionPair[], required
    - `actual` string, required
    - `count` integer, required
    - `from_name` string
    - `label` string, required
    - `rate` number, double, required

---

[API](https://skmtc.net/humansignal/apis/label-studio-api.md) · [All operations](https://skmtc.net/humansignal/apis/label-studio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/humansignal/label-studio-api/revisions/1b113b8df950/schema)
