---
title: "Verify a tamper-evident audit export"
method: POST
path: "/audit/verify"
---

# Verify a tamper-evident audit export

`POST /audit/verify`

## Request

- Base URL: `https://getsanction.com/api/v1`
- URL: `https://getsanction.com/api/v1/audit/verify`
- Auth: API key in header `x-mgmt-key`

AUDIT-1: POST an export document exactly as GET /audit/export returned it. Sanction recomputes the hash chain from the document's own decisions and re-checks the signature — self-contained, no database read. `valid: false` names the first broken link (`broken_at`) so tampering is located, not just detected. Owner-gated on the wallet named in the document.

## Request body

- object: An export from GET /audit/export

## Response `200`

Verification result

- object
  - `valid` boolean
  - `signature_valid` boolean
  - `chain_valid` boolean
  - `count` integer
  - `head` string
  - `broken_at` object
    - `seq` integer
    - `id` string
    - `reason` string

## Other responses

- `400`: Not a Sanction audit export
- `401`: Management key required
- `503`: Signing not configured

---

[API](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api.md) · [All operations](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api/revisions/c645a9e4b72d?raw)
