> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List runs

> Judge history, including the low-confidence review queue

Saved runs, newest first.

The filter that earns its keep is **`needs_review=true`**: it returns only runs where the judge's lowest confidence fell below `0.85`, the upstream's own escalation line. That is the queue a person should actually work through, instead of re-reading everything the model was already sure about.

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token — **your standard 60db API key** (`sk_…`), or a user JWT. There is no separate Judge credential.
</ParamField>

### Query parameters

<ParamField query="limit" type="integer" default="25">
  1–100.
</ParamField>

<ParamField query="offset" type="integer" default="0" />

<ParamField query="kind" type="string">
  `evaluate` or `extract`.
</ParamField>

<ParamField query="rubric_id" type="string">
  Only runs of one saved rubric — the whole series for that rubric.
</ParamField>

<ParamField query="needs_review" type="boolean" default="false">
  Only runs whose `min_confidence` is below `0.85`.
</ParamField>

<ParamField query="confidence_below" type="number">
  Your own threshold (0–1). Overrides `needs_review`.
</ParamField>

## Response

<ResponseField name="data" type="array">
  Each row carries `id`, `kind`, `rubric_id`, `label`, `summary`, `state_preview`, `min_confidence`, `input_tokens`, `escalated_questions`, `latency_ms`, `credits_charged` and `created_at`.

  Rows deliberately **omit** the full `request` and `result` payloads — each can be up to 32 KiB. Use [Get run](/api-reference/judge/get-run) for those.
</ResponseField>

<ResponseField name="pagination" type="object">
  `total`, `limit`, `offset`, `has_more`.
</ResponseField>

## Visibility

A run stores the content it judged, so history is **not workspace-public**. You see your own runs; workspace owners and admins see everyone's.

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.60db.ai/judge/evaluations?limit=25&needs_review=true \
    -H "Authorization: Bearer your-api-key"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.60db.ai/judge/evaluations?limit=25&needs_review=true', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer your-api-key',
    },
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.60db.ai/judge/evaluations?limit=25&needs_review=true",
      headers={
          "Authorization": "Bearer your-api-key",
      },
  )
  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": [
      {
        "id": "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
        "kind": "extract",
        "rubric_id": null,
        "label": null,
        "model": "60db-jev-extract-v1",
        "resolved_model": "a221b77a8baf4a613b8f8652661d41fa10a5641e",
        "source_model": "60db-jev-extract",
        "state_preview": "can you move my 10am appointment to friday",
        "summary": {
          "intent": "booking",
          "entities": 2,
          "operation": "reschedule"
        },
        "question_count": 0,
        "input_tokens": 0,
        "escalated_questions": 0,
        "min_confidence": 0.61,
        "latency_ms": 2,
        "credits_charged": 5.6e-07,
        "created_at": "2026-09-28T13:19:50.064Z"
      },
      {
        "id": "b2c3d4e5-f6a7-4890-bcde-f01234567890",
        "kind": "evaluate",
        "rubric_id": null,
        "label": "docs-sample",
        "model": "jev-latest",
        "resolved_model": "60db-decision-model-v1",
        "source_model": "60db-jev-source",
        "state_preview": "Agent: I cannot refund that, it is outside the window.\nCaller: This is the third time I have called about this.",
        "summary": {
          "tone": "dismissive",
          "resolved": 0.275,
          "satisfaction": 1.1592
        },
        "question_count": 3,
        "input_tokens": 84,
        "escalated_questions": 2,
        "min_confidence": 0.4681,
        "latency_ms": 4,
        "credits_charged": 1.51e-06,
        "created_at": "2026-09-28T13:19:50.017Z"
      }
    ],
    "pagination": {
      "total": 37,
      "limit": 2,
      "offset": 0,
      "has_more": true
    }
  }
  ```
</ResponseExample>
