# client.judge_classes

> client.judge_classes — the judgeClasses operations.

`client.judge_classes` — the `judgeClasses` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.judge_classes.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    scope_kind: Literal['tenant', 'project', 'agent'] | None = None,
    project_id: str | UUID | None = None,
    agent_id: str | UUID | None = None,
    timeout: float | None = None,
) -> JudgeClassCollectionPage
```

List judge classes. `GET /v1/judge-classes`

Live classes, newest first, cursor-paginated. `?scopeKind=tenant|project|agent` (with `projectId` / `agentId`) narrows to one scope.

## `client.judge_classes.create()`

```python signature
create(
    body: CreateJudgeClassBody | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> JudgeClass
```

Create a judge class. `POST /v1/judge-classes`

A named kind of judge with a weight, scoped to the tenant, a project, or an agent in a project. Names are unique among the live classes of a scope. Needs `admin` on the tenant (tenant scope) or the project.

## `client.judge_classes.get()`

```python signature
get(judge_class_id: str | UUID, /, *, timeout: float | None = None) -> JudgeClass
```

Fetch a judge class. `GET /v1/judge-classes/{judgeClassId}`

Also returns a retired class (`unregisteredAt` set): judgments keep naming theirs.

## `client.judge_classes.update()`

```python signature
update(
    judge_class_id: str | UUID,
    body: UpdateJudgeClassBody | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> JudgeClass
```

Change a judge class's weight or description. `PATCH /v1/judge-classes/{judgeClassId}`

## `client.judge_classes.unregister()`

```python signature
unregister(
    judge_class_id: str | UUID,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
) -> UnregisterJudgeClassResult
```

Retire a judge class. `POST /v1/judge-classes/{judgeClassId}/unregister`

No new judgments may name it; existing judgments keep it.
