---
title: "Audit trail diagnostic export"
method: GET
path: "/v1/audit/tools/diagnostic"
tags: ["System"]
---

# Audit trail diagnostic export

`GET /v1/audit/tools/diagnostic`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/audit/tools/diagnostic`
- Auth: HTTP bearer

Evidence-preserving export in file order, paged by byte offset. Remains available when sequence-based export refuses an ambiguous cursor. Returns line digests and offsets without raw record bytes. Free at every tier; requires system:control scope.

## Query parameters

- `from` integer
- `limit` integer

## Response `200`

Diagnostic page in file order

- ToolAuditDiagnosticExportPage
  - `trailId` string, required
  - `lines` ToolAuditDiagnosticLine[], required
    - `lineNumber` integer, required
    - `byteOffset` integer, required
    - `byteLength` integer, required
    - `contentDigest` string, required
    - `decoded` boolean, required
    - `seq` integer, nullable: Decoded sequence; absent or null when the line could not be decoded.
  - `nextByteOffset` integer, nullable: Next byte offset; absent or null at end of file.
  - `integrity` ToolAuditIntegrityReport, required
    - `trailId` string, required
    - `verified` boolean, required: Whether the verifier could classify the entire trail.
    - `intact` boolean, required: Meaningful only when verified is true.
    - `cursorAmbiguous` boolean, required
    - `linesRead` integer, required
    - `recordsDecoded` integer, required
    - `findings` object[], required
      - `finding` 'edited-record' | 'broken-link' | 'gap' | 'duplicate-seq' | 'fork' | 'sequence-regression' | 'undecodable-line' | 'unsupported-format', required
      - `count` integer, required
      - `seqs` integer[], required
      - `byteOffsets` integer[], required
  - `limit` integer, required
  - `contentDigest` string: SHA-256 over the WHOLE records file, not this page. The content provenance a rotation must name.
  - `byteCount` integer: Length of the whole records file in bytes.

## Other responses

- `503`: Audit writer unavailable or diagnostic read failed (audit_unavailable)

---

[API](https://skmtc.dev/modelpiper/apis/toolpiper-api.md) · [All operations](https://skmtc.dev/modelpiper/apis/toolpiper-api/llms.txt) · [OpenAPI document](https://skmtc.dev/modelpiper/apis/toolpiper-api/revisions/6722bf56385c?raw)
