---
title: "Validate and canonically hash a policy document"
method: POST
path: "/v1/policies/validate"
tags: ["Policies"]
---

# Validate and canonically hash a policy document

`POST /v1/policies/validate`

## Request

- Base URL: `https://api.thrd.email`
- URL: `https://api.thrd.email/v1/policies/validate`
- Auth: HTTP bearer

Requires bearer scope policies:manage. Does not persist state.

## Request body

- object
  - `document` union, required
    - object
      - `version` '1.0', required
      - `name` string, required
      - `defaults` object, required
        - `unknownAction` 'review', required
        - `evaluationError` 'review', required
        - `criticalEvaluationError` 'deny', required
      - `rules` object[], required
    - string: Bounded YAML or JSON source. YAML snake_case defaults and reason_codes are normalized.

## Response `200`

Normalized document, engine version and SHA-256 policy hash

- object
  - `valid` true, required
  - `engine_version` string, required
  - `policy_hash` string, required
  - `document` object, required

## Other responses

- `400`: Invalid policy document

---

[API](https://skmtc.dev/thrd/apis/thrd-agent-email-api.md) · [All operations](https://skmtc.dev/thrd/apis/thrd-agent-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrd/apis/thrd-agent-email-api/revisions/d8a88129cd34?raw)
