---
title: "List retained versions of a policy."
method: GET
path: "/api/policies/{policyName}/versions"
tags: ["Policy Versions"]
---

# List retained versions of a policy.

`GET /api/policies/{policyName}/versions`

Returns a summary of each retained snapshot for the named policy, ordered by revision descending (most recent first). Each entry carries the revision number, the timestamp the snapshot was captured, and its content hash. Admins may browse another user's history via the owner parameter. Requires the `policies:read` scope.

## Path parameters

- `policyName` string, required

## Query parameters

- `owner` string
- `offset` integer
- `limit` integer

## Headers

- `Authorization` string, required

## Response `200`

Array of version summaries, most recent first.

- PolicyVersionSummary[]
  - `capturedTimestamp` string, date-time
  - `contentHash` string
  - `revision` integer

## Other responses

- `400` — The policy name is missing.
- `401` — The Authorization header is absent or the API key is not recognized.
- `404` — The named policy does not exist, or a non-admin caller named another user as owner.
- `413` — Content Too Large
- `415` — Unsupported Media Type
- `500` — Internal Server Error
- `503` — Service Unavailable

## Changes

- **2026-08-04** `ee79a60eea42` — 1 info
  - added the non-success response with the status `415`
- **2026-08-03** `e46672d44401` — 1 info
  - added the non-success response with the status `413`

[Change history](https://skmtc.dev/philterd/apis/philter-api/changes/api/policies/:policyName/versions/get.md)

---

[API](https://skmtc.dev/philterd/apis/philter-api.md) · [All operations](https://skmtc.dev/philterd/apis/philter-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/philterd/philter-api/revisions/d90a12a66fa6/schema)
