---
title: "Get a complete policy version"
method: GET
path: "/redaction/policies/{name}/versions/{version}"
tags: ["redaction-policies"]
---

# Get a complete policy version

`GET /redaction/policies/{name}/versions/{version}`

## Request

- Base URL: `https://developer.qaip.com/api/v1`
- URL: `https://developer.qaip.com/api/v1/redaction/policies/{name}/versions/{version}`
- Auth: API key in header `x-api-key`

Returns the canonical definition for the requested version. Required scope: `policy:redaction:manage`.

## Response `200`

Complete policy version

- RedactionPolicyVersion
  - `name` string, required
  - `source` 'BUILT_IN' | 'TENANT', required
  - `version` string, required
  - `status` 'DRAFT' | 'ACTIVE' | 'ARCHIVED', required
  - `schemaVersion` integer, required
  - `description` string, nullable, required
  - `definition` RedactionPolicyDefinition, required
    - `enabledCategories` string[], required
    - `businessConfidential` RedactionPolicyBusinessConfidential, required
      - `definition` string, required
      - `include` RedactionPolicyBusinessTarget[], required
        - `text` string, required
        - `mode` 'exact' | 'value_clause' | 'exact_or_value_clause', required
      - `exclude` string[], required
      - `examples` string[], required
  - `contentDigest` string, required
  - `createdAt` string, date-time, nullable, required
  - `activatedAt` string, date-time, nullable, required
  - `archivedAt` string, date-time, nullable, required

## Other responses

- `400`: Bad Request - policy schema, normalization, size, quota, cursor, or path validation failed
- `401`: Unauthorized - Authentication failed
- `403`: Forbidden - requires an API key with the `policy:redaction:manage` scope; Dashboard bearer authentication is rejected
- `404`: Not Found - name/version is unknown, inactive where required, or belongs to another tenant
- `502`: The application proxy could not obtain an upstream response before forwarding response headers. The error code is unavailable and retryable is false: upstream side effects may have completed, so a 502 alone does not make retrying safe. Check the operation's idempotency and recovery contract before retrying. A failure after streaming has started instead aborts the stream without appending this JSON body. CDN or load-balancer generated errors may have a different body and are not described by this response.
- `503`: Service Unavailable - tenant redaction policy store is unavailable

## Changes

- **2026-09-17** `2489c6f1a9d8`: 9 info
  - added the non-success response with the status `502`
  - added the optional property `error/code` to the response with the `401` status
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/details` to the response with the `401` status
  - …5 more
- **2026-08-03** `8e90404f8bf2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/qlonolink/apis/qaip-apis/changes/redaction/policies/:name/versions/:version/get.md)

---

[API](https://skmtc.dev/qlonolink/apis/qaip-apis.md) - [All operations](https://skmtc.dev/qlonolink/apis/qaip-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/qlonolink/apis/qaip-apis/revisions/2489c6f1a9d8?raw)
