Ga naar inhoud

Verify the evidence chain

GET
/api/v1/evidence/chain/verify
curl --request GET \
--url https://example.com/api/v1/evidence/chain/verify \
--cookie bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3E

Recomputes every hash of the chain and says whether it is unbroken, with the head and the last anchor.

OK.

Media typeapplication/json
object
ok
required

The chain is unbroken.

boolean
entries
required
integer format: int64
head
string | null
head_seq
integer | null format: int64
first_broken_seq

Where the chain breaks, if it does.

integer | null format: int64
last_anchor
One of:
null

Example generated

{
"ok": true,
"entries": 1,
"head": "example",
"head_seq": 1,
"first_broken_seq": 1,
"last_anchor": {
"id": "example",
"seq": 1,
"head": "example",
"anchored_at": "2026-04-15T12:00:00Z",
"receipt": "example",
"qualified": "example"
}
}

No valid session, DPoP-bound token or API key.

Media typeapplication/json

The body of every failed call to a management API.

object
error
required
object
code
required

Stable, machine-readable: invalid_request, unauthenticated, forbidden, not_found, conflict, upstream_unavailable, unavailable, internal, or a more specific code of the operation.

string
message
required

For people; may change between versions.

string

Example

{
"error": {
"code": "not_found",
"message": "unknown negotiation"
}
}

The caller lacks the role this operation needs; or a change with the session cookie came from a page of another site (cross_site_request, decisions #83).

Media typeapplication/json

The body of every failed call to a management API.

object
error
required
object
code
required

Stable, machine-readable: invalid_request, unauthenticated, forbidden, not_found, conflict, upstream_unavailable, unavailable, internal, or a more specific code of the operation.

string
message
required

For people; may change between versions.

string

Example

{
"error": {
"code": "not_found",
"message": "unknown negotiation"
}
}