---
title: "Verify the ledger seal"
description: "Requires a workspace-bound API key with `ledger:read`. Recomputes the SHA-256 seal for lines after `afterSeq`. Checks canonical JSON, line hashes, consecutive `seq` values, and each `prev` reference to the previous line. Rules that look up earlier records are enforced at append time and by the offline checker over a full export."
canonical: https://y2.dev/docs/api/reference/ontology-ledger/verifyLedgerV2/
---

Endpoint Reference[Ontology Ledger](https://y2.dev/docs/api/reference/ontology-ledger)

# Verify the ledger seal

Requires a workspace-bound API key with \`ledger:read\`. Recomputes the SHA-256 seal for lines after \`afterSeq\`. Checks canonical JSON, line hashes, consecutive \`seq\` values, and each \`prev\` reference to the previous line. Rules that look up earlier records are enforced at append time and by the offline checker over a full export.

`GET https://api.y2.dev/api/v2/ledger/verify`

- Operation ID: `verifyLedgerV2`
- Required scopes: `ledger:read`
- Contract: https://y2.dev/openapi.json

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `afterSeq` | query | integer | No | Return lines with seq greater than this. Start at 0. |
| `limit` | query | integer | No |  |

## Responses

| Status | Description | Body |
| --- | --- | --- |
| 200 | Seal verification for the window. | `LedgerVerifyResponse` |
| 400 | Invalid request parameters |  |
| 401 | Missing or invalid API key |  |
| 403 | Insufficient permissions or access denied |  |
| 429 | Rate limit exceeded (per-key or per-account aggregate) |  |
| 500 | Internal server error |  |

### 200 response fields

| Field | Type | Description |
| --- | --- | --- |
| `data` | object |  |
| `data.ok` | boolean |  |
| `data.checked` | integer |  |
| `data.problems[]` | array of object |  |
| `meta` | `LedgerSeqWindowMeta` |  |
| `meta.afterSeq` | integer |  |
| `meta.nextAfterSeq` | integer |  |
| `meta.hasMore` | boolean |  |
