Verify the chain and its signed checkpoints
const url = 'https://example.com/v1/audit/verify';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/audit/verify \ --header 'Authorization: Bearer <token>'Verifies the ledger chain structurally and verifies every signed checkpoint against the engine key. The verification is not itself recorded, so it does not grow the chain it inspects.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters ”Target tenant id; required when the principal can act in more than one tenant.
Responses
Section titled “ Responses ”OK
object
object
Sequence of the first broken link, 0 when intact.
Links walked.
object
Signed checkpoints found.
Sequence of the first checkpoint that failed verification, 0 when none.
Highest sequence a valid checkpoint attests.
Strict: true only once at least one checkpoint exists AND every signature and link verified. It is false BOTH for an unattested ledger and for a tampered one — read status to tell them apart.
“no-checkpoints” for the empty case, else the first failure.
The three answers (core/audit CheckpointStatus): verified, verified BAD, or pending — nothing attested yet, which is NOT a failure and must not be rendered as one.
The overall verdict: the structural chain verified over at least one link, and the checkpoints are not in a failed state. A ledger with nothing attested yet is still ok.
Example
{ "checkpoints": { "status": "ok" }}Bad request
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}Unauthenticated
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}Forbidden
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}Not found
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}Conflict / setup required
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}Rate limited
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}