---
title: "List active dynamic policies"
method: GET
path: "/api/v1/policies/dynamic"
tags: ["Dynamic Policies"]
deprecated: true
---

# List active dynamic policies

`GET /api/v1/policies/dynamic`

## Request

- Base URL: `https://orchestrator.getaxonflow.com`
- URL: `https://orchestrator.getaxonflow.com/api/v1/policies/dynamic`
- Auth: none declared
- TypeScript: <https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/docs/api/v1/policies/dynamic/get.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

Returns the active dynamic policies visible to the CALLING tenant:
the tenant's own policies plus the shared global/default baseline.
Policies owned by other tenants are never returned in the same
response, and requests without a resolvable tenant are rejected
with 401 (fail closed).

The tenant scope is read from the `X-Tenant-ID` header. When the
request arrives through the AxonFlow Agent, that header is set from
the validated credential and overwrites any client-supplied value,
so the caller cannot choose the scope. The orchestrator itself does
not authenticate this route, so a caller with direct network access
to the orchestrator can name a tenant — deploy the orchestrator on a
private network behind the Agent.

## Response `200`

List of dynamic policies visible to the calling tenant

- DynamicPolicy[]
  - `id` string
  - `name` string
  - `description` string
  - `enabled` boolean
  - `type` string: Policy type — narrower-than-category dimension surfaced on list/CRUD responses (e.g. risk, content, user, cost).
  - `category` string: Policy category. Dynamic policies use a `dynamic-` prefix (dynamic-risk, dynamic-compliance, dynamic-security, dynamic-cost, dynamic-access).
  - `tier` 'system' | 'organization' | 'tenant': Policy tier. Dynamic policies default to `tenant`; organization-tier policies require Enterprise.
  - `priority` integer: Evaluation priority — lower values evaluate first. Useful when multiple dynamic policies match the same request.
  - `created_at` string, date-time: When the dynamic policy was first inserted.
  - `updated_at` string, date-time: When the dynamic policy was last modified.
  - `conditions` object[]
    - `field` string
    - `operator` '==' | '!=' | '>' | '<' | '>=' | '<=' | 'contains' | 'matches'
    - `value` unknown
  - `actions` object[]
    - `type` 'block' | 'allow' | 'rate_limit' | 'redact' | 'alert'
    - `reason` string
    - `limit` integer

## Other responses

- `401`: Tenant scope could not be resolved (missing gateway-stamped X-Tenant-ID); the endpoint fails closed and returns no policy data

---

[API](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api.md) - [All operations](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/revisions/f408ef3ec9dd?raw)
