---
title: "List Classifier Templates"
method: POST
path: "/api/v1/classifier_templates/list"
tags: ["Classifier Templates"]
---

# List Classifier Templates

`POST /api/v1/classifier_templates/list`

## Request

- Base URL: `https://example.conductor.one`
- URL: `https://example.conductor.one/api/v1/classifier_templates/list`
- Auth: HTTP bearer and OAuth 2
  - Client credentials
  - Token URL: `/auth/v1/token`

List returns classifier templates for the tenant, paginated.

## Request body

- C1ApiAiGovernanceV1ListClassifierTemplatesRequest: The ListClassifierTemplatesRequest message.
  - `latestOnly` boolean: When true, only the latest version of each template id is returned.
  - `pageSize` integer: The pageSize field.
  - `pageToken` string: The pageToken field.

## Response `200`

Successful response

- C1ApiAiGovernanceV1ListClassifierTemplatesResponse: The ListClassifierTemplatesResponse message.
  - `nextPageToken` string: The nextPageToken field.
  - `templates` C1ApiAiGovernanceV1ClassifierTemplate[], nullable: The templates field.
    - `applicableType` 'CLASSIFIER_TYPE_UNSPECIFIED' | 'CLASSIFIER_TYPE_AGENT' | 'CLASSIFIER_TYPE_GATEWAY' | 'CLASSIFIER_TYPE_BOTH': The applicableType field.
    - `createdAt` string, date-time, nullable
    - `defaultDenyReason` string: The defaultDenyReason field.
    - `defaultOutcome` 'AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED' | 'AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED' | 'AGENT_CLASSIFIER_RULE_OUTCOME_DENIED': The defaultOutcome field.
    - `deletedAt` string, date-time, nullable
    - `description` string: The description field.
    - `displayName` string: The displayName field.
    - `distribution` 'TEMPLATE_DISTRIBUTION_UNSPECIFIED' | 'TEMPLATE_DISTRIBUTION_COPY' | 'TEMPLATE_DISTRIBUTION_LINKED': The distribution field.
    - `frameworkTags` string[], nullable: Compliance-framework identifiers this template maps to (e.g. "owasp-llm-top-10"). Plain strings for customer extensibility, not an enum.
    - `hooks` C1ApiAiGovernanceV1HookSpec[], nullable: The hooks field.
      - `celFilter` string: The celFilter field.
      - `description` string: The description field.
      - `displayName` string: The displayName field.
      - `enabled` boolean: The enabled field.
      - `eventType` 'HOOK_SPEC_EVENT_TYPE_UNSPECIFIED' | 'HOOK_SPEC_EVENT_TYPE_PRE_TOOL_USE' | 'HOOK_SPEC_EVENT_TYPE_POST_TOOL_USE' | 'HOOK_SPEC_EVENT_TYPE_PRE_OUTPUT': Event the stamped hook fires on. When UNSPECIFIED, instantiation falls back to post_hook. Required to mint a pre-output hook, which post_hook cannot express.
      - `key` string: The key field.
      - `patternKind` 'HOOK_BUILT_IN_PATTERN_KIND_UNSPECIFIED' | 'HOOK_BUILT_IN_PATTERN_KIND_PII_REDACTION' | 'HOOK_BUILT_IN_PATTERN_KIND_CREDIT_CARD_BLOCKING' | 'HOOK_BUILT_IN_PATTERN_KIND_QUERY_SCOPE_LIMIT' | 'HOOK_BUILT_IN_PATTERN_KIND_WRITE_AUTHORIZATION' | 'HOOK_BUILT_IN_PATTERN_KIND_SENSITIVE_FILE_GUARD' | 'HOOK_BUILT_IN_PATTERN_KIND_TOOL_OUTPUT_SIZE_GUARD' | 'HOOK_BUILT_IN_PATTERN_KIND_SECRETS_MASKING' | 'HOOK_BUILT_IN_PATTERN_KIND_LINK_FILTER' | 'HOOK_BUILT_IN_PATTERN_KIND_ENCODED_CONTENT_GUARD' | 'HOOK_BUILT_IN_PATTERN_KIND_PROMPT_INJECTION_SCAN': The patternKind field.
      - `postHook` boolean: false = pre-tool-use, true = post-tool-use. Superseded by event_type when the latter is set to a non-UNSPECIFIED value.
      - `priority` integer: The priority field.
    - `id` string: The id field.
    - `isLatest` boolean: The isLatest field.
    - `managedBy` 'MANAGED_BY_UNSPECIFIED' | 'MANAGED_BY_TENANT' | 'MANAGED_BY_SYSTEM': The managedBy field.
    - `presetTier` 'PRESET_TIER_UNSPECIFIED' | 'PRESET_TIER_SHADOW' | 'PRESET_TIER_BALANCED' | 'PRESET_TIER_STRICT': Non-UNSPECIFIED only on the three system presets (Shadow/Balanced/Strict); identifies and strictness-orders them for the default-classifier picker.
    - `requiredParams` C1ApiAiGovernanceV1TemplateParam[], nullable: The requiredParams field.
      - `description` string: The description field.
      - `displayName` string: The displayName field.
      - `key` string: The key field.
      - `required` boolean: The required field.
      - `type` 'TEMPLATE_PARAM_TYPE_UNSPECIFIED' | 'TEMPLATE_PARAM_TYPE_GRANT_POLICY' | 'TEMPLATE_PARAM_TYPE_HOOK_FUNCTION' | 'TEMPLATE_PARAM_TYPE_STRING': The type field.
    - `rules` C1ApiAiGovernanceV1AgentClassifierRule[], nullable: The rules field.
      - `action` 'AGENT_CLASSIFIER_RULE_ACTION_UNSPECIFIED' | 'AGENT_CLASSIFIER_RULE_ACTION_EVALUATE_HOOKS' | 'AGENT_CLASSIFIER_RULE_ACTION_BLOCK': The action field.
      - `celCondition` string: Empty matches every tool call.
      - `denyReason` string: The denyReason field.
      - `description` string: The description field.
      - `displayName` string, required: The displayName field.
      - `id` string: Stable rule identifier. Leave empty on a rule being added; the server assigns one.
      - `mode` 'AGENT_CLASSIFIER_RULE_MODE_UNSPECIFIED' | 'AGENT_CLASSIFIER_RULE_MODE_ENFORCE' | 'AGENT_CLASSIFIER_RULE_MODE_OBSERVE' | 'AGENT_CLASSIFIER_RULE_MODE_DISABLED': The mode field.
      - `outcome` 'AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED' | 'AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED' | 'AGENT_CLASSIFIER_RULE_OUTCOME_DENIED': The outcome field.
      - `postHookIds` string[], nullable: The postHookIds field.
      - `preHookIds` string[], nullable: The preHookIds field.
      - `preOutputHookIds` string[], nullable: Hook ids of event type HOOK_EVENT_TYPE_PRE_OUTPUT curated by this rule, evaluated against the assistant's outgoing response rather than a tool call. Parallel to pre_hook_ids/post_hook_ids.
      - `sourceTemplateId` string: Rule template this rule was composed from via AddClassifierRuleFromTemplate. Empty for hand-authored rules; drives the "from template / Custom" provenance chip. Cleared once the rule diverges from its template.
      - `systemManaged` boolean: system_managed is true for rules the platform inserts and manages (currently: the baseline fallback rule appended at the end of every policy's rule list). system-managed rules cannot be created, updated, or deleted through the admin API — the frontend renders them read-only. Persisted user rules always serialize with system_managed = false.
      - `toolGateIds` string[], nullable: The toolGateIds field.
    - `templateVersion` string: The templateVersion field.
    - `tenantId` string: The tenantId field.
    - `toolGates` C1ApiAiGovernanceV1ToolGateSpec[], nullable: The toolGates field.
      - `builtInPattern` 'TOOL_GATE_BUILT_IN_PATTERN_UNSPECIFIED' | 'TOOL_GATE_BUILT_IN_PATTERN_DESTRUCTIVE_ACTION' | 'TOOL_GATE_BUILT_IN_PATTERN_EXTERNAL_SEND' | 'TOOL_GATE_BUILT_IN_PATTERN_THIRD_PARTY_CONNECTOR' | 'TOOL_GATE_BUILT_IN_PATTERN_FINANCE_ACTION' | 'TOOL_GATE_BUILT_IN_PATTERN_INFRA_MUTATION' | 'TOOL_GATE_BUILT_IN_PATTERN_DB_WRITE': Built-in pattern selector; when set, cel_expression is resolved from the registry at instantiation.
      - `celExpression` string: The celExpression field.
      - `description` string: The description field.
      - `displayName` string: The displayName field.
      - `enabled` boolean: The enabled field.
      - `grantPolicyParamKey` string: The grantPolicyParamKey field.
      - `key` string: The key field.
      - `priority` integer: The priority field.
    - `updatedAt` string, date-time, nullable

## Changes

- **2026-10-06** `918a4e749f56`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/classifier_templates/list/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) - [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conductorone/apis/c1-api/revisions/fe943bedf41b?raw)
