---
title: "Get Crowd Bt"
method: GET
path: "/api/v1/analytics/rankings/{ranking_id}/crowd-bt"
tags: ["Analytics"]
---

# Get Crowd Bt

`GET /api/v1/analytics/rankings/{ranking_id}/crowd-bt`

## Request

- Base URL: `https://app.aimrank.io` (the document declares no server; this is the origin it was published from)
- URL: `https://app.aimrank.io/api/v1/analytics/rankings/{ranking_id}/crowd-bt`
- Auth: none declared

CrowdBT joint fit — entity scores + annotator reliability η.

Chen et al. 2013, "Pairwise Ranking Aggregation in a Crowdsourced
Setting." Each annotator k gets a learned reliability parameter
η_k ∈ [0, 1] alongside the BT entity scores. Versus AimRank's
operational κ-weighting (Layer 4): same goal, fitted jointly via
L-BFGS-B instead of computed post-hoc against majority consensus.

Use this when:
- You want a principled per-annotator quality signal (not threshold-
  based) for downstream κ-weighted DPO training
- Your data has identifiable annotators with ≥ ``min_votes_per_annotator``
  votes each
- Anti-correlated raters (η < 0.5) need to surface explicitly, not
  collapse into "noisy"

Falls back to ``converged=false`` with a reason when data is too
sparse — see ``services/crowd_bt.py`` for the failure modes.

## Path parameters

- `ranking_id` string, required

## Query parameters

- `min_votes_per_annotator` integer
- `min_votes_per_entity` integer
- `max_iterations` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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