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

# List criteria groups

> List shared criteria groups for one agent.

List shared criteria groups for one agent.

This route is not paginated. Other shared query DTO fields do not filter this list.

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token containing your workspace API key. The key needs `read` scope.
</ParamField>

## Query parameters

<ParamField query="botId" type="string" required>
  Agent UUID. The agent must belong to the workspace.
</ParamField>

<ParamField query="folderId" type="string">
  Collection UUID used to filter results. Collections use the `folders` routes.
</ParamField>

## Response

Returns an array of criteria groups with `caseCount`.

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api-prod.usefini.com/v2/test-suite/criteria-groups/public?botId=00000000-0000-4000-8000-000000000001' \
    --header 'Authorization: Bearer fini_your_api_key'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api-prod.usefini.com/v2/test-suite/criteria-groups/public?botId=00000000-0000-4000-8000-000000000001", {
    method: "GET",
    headers: {
      Authorization: "Bearer fini_your_api_key",
    },
  });
  if (!response.ok) throw new Error(await response.text());
  const result = await response.json();
  ```

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

  response = requests.request(
      "GET",
      "https://api-prod.usefini.com/v2/test-suite/criteria-groups/public?botId=00000000-0000-4000-8000-000000000001",
      headers={"Authorization": "Bearer fini_your_api_key"},
  )
  response.raise_for_status()
  result = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  [
    {
      "id": "00000000-0000-4000-8000-000000000003",
      "companyId": "00000000-0000-4000-8000-000000000011",
      "botId": "00000000-0000-4000-8000-000000000001",
      "name": "Refund checks",
      "criteria": [
        {
          "id": "00000000-0000-4000-8000-000000000012",
          "companyId": "00000000-0000-4000-8000-000000000011",
          "defaultCriterionId": null,
          "name": "No handoff",
          "type": "deterministic",
          "condition": {
            "scope": "SCALAR",
            "predicate": {"left": {"path": "escalated", "dataType": "boolean"}, "operator": "==", "right": {"value": false}}
          },
          "blocking": true,
          "judgePrompt": null,
          "passPrompt": null,
          "failPrompt": null,
          "isActive": true,
          "createdAt": "2026-10-12T10:00:00.000Z",
          "updatedAt": "2026-10-12T10:00:00.000Z"
        }
      ],
      "revision": 1,
      "createdAt": "2026-10-12T10:00:00.000Z",
      "updatedAt": "2026-10-12T10:00:00.000Z",
      "caseCount": 1
    }
  ]
  ```
</ResponseExample>


## Related topics

- [Overview](/en/api-reference/test-suite.md)
- [Get criteria group](/en/api-reference/get-test-suite-criteria-group.md)
- [Create criteria group](/en/api-reference/create-test-suite-criteria-group.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.