---
title: "Get Agent Classifier Policy"
method: GET
path: "/api/v1/settings/ai-governance/agent-classifier-policy"
tags: ["AI Governance Settings"]
---

# Get Agent Classifier Policy

`GET /api/v1/settings/ai-governance/agent-classifier-policy`

## Request

- Base URL: `https://example.conductor.one`
- URL: `https://example.conductor.one/api/v1/settings/ai-governance/agent-classifier-policy`
- Auth: HTTP bearer and OAuth 2
  - Client credentials
  - Token URL: `/auth/v1/token`

Get returns the tenant's classifier policy with its ordered rules. A tenant
 that has never written a policy receives an empty policy.

## Response `200`

Successful response

- C1ApiAiGovernanceV1GetAgentClassifierPolicyResponse: The GetAgentClassifierPolicyResponse message.
  - `policy` C1ApiAiGovernanceV1AgentClassifierPolicy: AgentClassifierPolicy is the tenant's full classifier policy: the ordered rule cascade plus the no-match default.
    - `agentId` string: Optional agent scoping. Empty is the tenant-wide default policy.
    - `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.
    - `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.
    - `tenantId` string: The tenantId 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/settings/ai-governance/agent-classifier-policy/get.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)
