---
title: "Get Policy At Version"
method: GET
path: "/policies/{policy_id}/versions/{version_id}"
---

# Get Policy At Version

`GET /policies/{policy_id}/versions/{version_id}`

Get the reconstructed policy state at a specific version.

The policy state is reconstructed by applying version diffs in reverse.

Docs: [Guide](https://docs.grayswan.ai/policy-management/policies) |
[API Reference](https://docs.grayswan.ai/api-reference/policies/get-policy-at-version)

Raises:
    ResourceNotFoundError: If the policy or version does not exist.

## Path parameters

- `policy_id` string, required
- `version_id` string, required

## Response `200`

Successful Response

- PolicyVersionDetailResponse — Response for single version with reconstructed state.
  - `id` string, required
  - `policy_id` string, required
  - `operation` string, required
  - `timestamp` string, date-time, nullable
  - `user_id` string, nullable
  - `policy_state` PolicyDetailResponse, required — Full policy response with all fields.
    - `id` string, required
    - `name` string, required
    - `description` string, nullable
    - `rules` object, required
    - `rule_modes` object
    - `mode` string, nullable
    - `pre_violation_threshold` number, nullable
    - `pre_jb_threshold` number, nullable
    - `post_violation_threshold` number, nullable
    - `post_violation_jb_threshold` number, nullable
    - `scanners_config` object, nullable
    - `block_message` string, nullable
    - `is_preset` boolean
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/grayswan/apis/gray-swan-ai-api.md) · [All operations](https://skmtc.net/grayswan/apis/gray-swan-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/grayswan/gray-swan-ai-api/versions/6ef1ea32ff13/schema)
