> ## 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.

# Get rubric

> Fetch one saved rubric and its questions

Fetch a single rubric, including the full `questions` map — enough to load it back into an editor.

A personal rubric is visible only to whoever created it; a shared one to the whole workspace.

## 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>

### Path parameters

<ParamField path="id" type="string" required>
  Rubric UUID.
</ParamField>

## Response

<ResponseField name="data" type="object">
  `id`, `name`, `description`, `model`, `questions`, `question_count`, `shared`, `is_mine`, timestamps.
</ResponseField>

<Note>
  Key order inside `questions` is not preserved — the store normalises JSON object keys. The content is identical; compare semantically rather than byte-for-byte.
</Note>

## Errors

| Status | Meaning                                                                       |
| ------ | ----------------------------------------------------------------------------- |
| `403`  | The rubric belongs to a different workspace.                                  |
| `404`  | No such rubric, it is another user's personal rubric, or the id is malformed. |

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.60db.ai/judge/rubrics/{id} \
    -H "Authorization: Bearer your-api-key"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.60db.ai/judge/rubrics/{id}', {
    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/rubrics/{id}",
      headers={
          "Authorization": "Bearer your-api-key",
      },
  )
  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "id": "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
      "name": "Docs sample 22592",
      "description": "Used to capture a real response for the docs",
      "model": "jev-latest",
      "questions": {
        "tone": {
          "type": "choice",
          "criteria": {
            "unknown": "Unclear",
            "dismissive": "Brushes off",
            "professional": "Calm"
          }
        }
      },
      "question_count": 1,
      "shared": false,
      "is_mine": true,
      "created_at": "2026-09-28T13:19:50.210Z",
      "updated_at": null
    }
  }
  ```
</ResponseExample>
