---
title: "Get a policy's details."
method: GET
path: "/api/policies/{policyName}/details"
tags: ["Policies"]
---

# Get a policy's details.

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

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/policies/{policyName}/details`
- Auth: HTTP bearer

Returns a policy's name, description, notes, current revision, entity tag, whether it is a built-in managed policy, and when it was created and last updated: everything except the policy itself. The ETag header carries the entity tag too, for If-Match. A name starting with managed_ returns that managed policy's details. Admins may read another user's by passing that user's username as owner. Requires the `policies:read` scope.

## Path parameters

- `policyName` string, required

## Query parameters

- `owner` string

## Headers

- `Authorization` string, required

## Response `200`

The policy's details.

- PolicyDetailsResponse
  - `description` string
  - `name` string
  - `created` string, date-time
  - `etag` string: Identifies the policy together with its description and notes, and changes when any of them does; the revision alone does not change when only the details do. The ETag header carries the same value, quoted. Send it in If-Match to make a replace, a details change, or a rollback conditional.
  - `lastUpdated` string, date-time
  - `managed` boolean
  - `notes` string
  - `revision` integer

## Other responses

- `400`: Bad Request
- `401`: The Authorization header is absent or the API key is not recognized.
- `403`: Insufficient scope, disabled API, or access denied.
- `404`: There is no such policy, or the owner does not exist or the caller may not reach it.
- `406`: No representation matches Accept.
- `413`: Content Too Large
- `415`: Unsupported Media Type
- `500`: Internal Server Error
- `503`: Service Unavailable

## Changes

- **2026-10-11** `adb70fdccccb`: 1 info
  - added the optional property `etag` to the response with the `200` status
- **2026-10-10** `c4f85daa9208`: 15 info
  - added the optional property `field` to the response with the `400` status
  - added the optional property `field` to the response with the `401` status
  - added the optional property `field` to the response with the `404` status
  - added the optional property `field` to the response with the `413` status
  - …11 more
- **2026-10-05** `4082c17721d8`: 6 breaking, 6 info
  - removed the media type `*/*` for the response with the status `400`
  - removed the media type `*/*` for the response with the status `401`
  - removed the media type `*/*` for the response with the status `413`
  - removed the media type `*/*` for the response with the status `415`
  - …8 more
- **2026-10-05** `fde4cd72aeb0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/philterd/apis/philter-api/changes/api/policies/:policyName/details/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.dev/philterd/apis/philter-api/revisions/aa3d7ad1aab4?raw)
