Latest daily audit anchors
GET /v1/audit-anchors
https://verify.tanba-ooh.kz/v1/audit-anchors
The newest 30 anchors, newest first. Each day the signer signs the head of the audit chain with the status key; the chain of anchors (prev_anchor_hash) and the signed files let anyone check that earlier audit entries were not changed. Served on the verify and app hosts, cached for 60 seconds.
Authentication
None. This call is public.
Responses
200 The anchors.
application/json
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
items | array of AuditAnchorItem | yes | The anchors, newest first. | |
items[].day | string (date) | yes | The Asia/Almaty day the anchor covers. | "2026-10-05" |
items[].env | string | yes | Environment the anchor belongs to. test, prod | |
items[].first_id | integer | yes | Number of the first audit event of the day. | 15021 |
items[].last_id | integer | yes | Number of the last audit event of the day. | 15874 |
items[].event_count | integer | yes | Number of audit events of the day. | 854 |
items[].head_hash | string | yes | SHA-256 of the last audit event of the day, hex. | "b958946e30b0a4e6e69434dde89c1b1d7b631bc091ff027b0668027f7dc07bf7" |
items[].prev_anchor_hash | string | yes | SHA-256 of the previous anchor body, hex; 64 zeros for the first. | "672d8fb820c1922f71e00aff2be44d87bb1bef45300381ed434814cb4c6a6b65" |
items[].signed_at | string | yes | When the anchor was signed. | "2026-10-06T00:05:12+05:00" |
items[].url | string | yes | Address of the signed anchor. | "/v1/audit-anchors/2026-10-05" |
Example
{
"items": [
{
"day": "2026-10-05",
"env": "test",
"first_id": 15021,
"last_id": 15874,
"event_count": 854,
"head_hash": "b958946e30b0a4e6e69434dde89c1b1d7b631bc091ff027b0668027f7dc07bf7",
"prev_anchor_hash": "672d8fb820c1922f71e00aff2be44d87bb1bef45300381ed434814cb4c6a6b65",
"signed_at": "2026-10-06T00:05:12+05:00",
"url": "/v1/audit-anchors/2026-10-05"
}
]
}
Errors
Errors are problem documents (application/problem+json) with a stable code.
| Status | Meaning |
|---|---|
| 429 | Rate limit; see Retry-After. |
Code samples
curl
curl 'https://verify.tanba-ooh.kz/v1/audit-anchors'
Python
import requests
response = requests.get(
"https://verify.tanba-ooh.kz/v1/audit-anchors",
)
print(response.status_code, response.text)
Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://verify.tanba-ooh.kz/v1/audit-anchors", nil)
if err != nil {
panic(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(data))
}