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

# Query Judgments

Use this API to list judgments by metadata only, with no semantic search. Use it when you want to enumerate decisions by decision value, reviewer, content type, or thread instead of ranking by similarity.

# Endpoint

`POST https://api.velt.dev/v2/memory/judgments/query`

# Headers

<ParamField header="x-velt-api-key" type="string" required>
  Your API key.
</ParamField>

<ParamField header="x-velt-auth-token" type="string" required>
  Your [Auth Token](/security/auth-tokens).
</ParamField>

# Body

#### Params

<ParamField body="data" type="object" required>
  <Expandable title="properties">
    <ParamField body="organizationId" type="string">
      Narrow to one organization.
    </ParamField>

    <ParamField body="documentId" type="string">
      Narrow to one document. Requires `organizationId`.
    </ParamField>

    <ParamField body="decision" type="string">
      Filter by decision value, e.g. `approve` or `reject`.
    </ParamField>

    <ParamField body="judgeType" type="string">
      `human` or `agent`.
    </ParamField>

    <ParamField body="contentType" type="string">
      Filter by the reviewed content type.
    </ParamField>

    <ParamField body="reviewerId" type="string">
      Filter by the deciding user.
    </ParamField>

    <ParamField body="annotationId" type="string">
      When set, returns the judgments for that one comment thread. Requires `organizationId`.
    </ParamField>

    <ParamField body="limit" type="integer">
      1 to 100. Defaults to 20.
    </ParamField>
  </Expandable>
</ParamField>

## **Example Requests**

#### List a reviewer's rejections

```JSON theme={null}
{
  "data": {
    "decision": "reject",
    "reviewerId": "u_sarah",
    "limit": 20
  }
}
```

# Response

Each record includes the reasoning, decision, confidence, `judgeType`, `contentType`, who decided (`actionUser`), timestamps, and scope ids. An `agent` block is present when an AI agent decided. `total` reports the match count.

#### Success Response

```JSON theme={null}
{
  "result": {
    "results": [
      {
        "recordId": "act_8f3...",
        "reasoning": "Approved after fixing the citation.",
        "decision": "approve",
        "confidence": 0.81,
        "judgeType": "human",
        "contentType": "marketing-copy",
        "actionUser": { "userId": "u_sarah", "name": "Sarah Lee", "email": "sarah@acme.com" },
        "createdAt": 1731432000000,
        "organizationId": "org_eu",
        "documentId": "doc_42",
        "agent": null
      }
    ],
    "total": 37
  }
}
```

#### Failure Response

```JSON theme={null}
{
  "error": {
    "message": "ERROR_MESSAGE",
    "status": "INVALID_ARGUMENT"
  }
}
```

<ResponseExample>
  ```js theme={null}
  {
    "result": {
      "results": [
        {
          "recordId": "act_8f3...",
          "reasoning": "Approved after fixing the citation.",
          "decision": "approve",
          "confidence": 0.81,
          "judgeType": "human",
          "contentType": "marketing-copy",
          "actionUser": { "userId": "u_sarah", "name": "Sarah Lee", "email": "sarah@acme.com" },
          "createdAt": 1731432000000,
          "organizationId": "org_eu",
          "documentId": "doc_42",
          "agent": null
        }
      ],
      "total": 37
    }
  }
  ```
</ResponseExample>
