---
title: "List Policies"
method: GET
path: "/v1/routing/policies"
tags: ["routing"]
---

# List Policies

`GET /v1/routing/policies`

List every routing policy in force, from config.yml and from storage.

Every scope at once, global and user-scoped alike: this is the master-key
management view, not what any one caller resolves.

## Query parameters

- `workspace_id` string, uuid, nullable — Only stored policies in this workspace. Config-file policies are always included. Every stored policy is in the deployment's default workspace today, because name uniqueness and the resolution cache are both deployment-wide, so this narrows to one workspace and finds the rest empty until those are scoped (otari-ai#1643).

## Response `200`

Successful Response

- PolicyResponse[]
  - `created_at` string, nullable
  - `is_dynamic` boolean
  - `name` string, required
  - `source` string, required
  - `spec` object, required
  - `updated_at` string, nullable
  - `user_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.net/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/866dfb3fb7eb/schema)
