---
title: "Verify transaction integrity"
method: GET
path: "/v1/verify/{transactionId}"
tags: ["trust"]
---

# Verify transaction integrity

`GET /v1/verify/{transactionId}`

## Request

- Base URL: `https://api.strale.io`
- URL: `https://api.strale.io/v1/verify/{transactionId}`
- Auth: none declared

Recompute a transaction's SHA-256 content hash and walk the recorded chain backward from it, up to a bounded depth. Public, no auth required.

## Path parameters

- `transactionId` string, uuid, required

## Query parameters

- `depth` integer

## Response `200`

Verification result

- object
  - `transaction_id` string, uuid
  - `verified` boolean: True if hash is valid and chain has no broken links
  - `hash_valid` boolean: True if recomputed hash matches stored hash
  - `chain` object
    - `length` integer
    - `verified_links` integer
    - `broken_links` integer
    - `reaches_genesis` boolean
    - `chain_start_date` string, date, nullable
    - `chain_end_date` string, date
    - `max_depth` integer
    - `truncated` boolean: F-A-012: true when the chain walk stopped at max_depth before reaching genesis. False when the walk completed (reached genesis, hit a missing link, or the chain was shorter than max_depth).
    - `truncated_reason` string, nullable: Human-readable reason string (e.g. 'max_depth_reached (N=50)') when truncated=true, otherwise null.
  - `transaction_metadata` object
    - `created_at` string, date-time
    - `capability_slug` string, nullable
    - `transparency_marker` string
    - `data_jurisdiction` string
    - `status` string
  - `methodology_url` string, uri

## Other responses

- `404`: Transaction not found.
- `429`: Rate limit exceeded (F-A-012: 10 req/min per IP). Retry after the window resets.

---

[API](https://skmtc.dev/strale/apis/strale-api-2.md) · [All operations](https://skmtc.dev/strale/apis/strale-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/strale/apis/strale-api-2/revisions/a5293878cfc6?raw)
