Последние ежедневные печати полученной статистики показов
GET /v1/stats-seals
https://verify.tanba-ooh.kz/v1/stats-seals
Технический текст справочника написан на английском.
Новейшие 30 печатей, сначала самые свежие. Каждый день по Алматы, вскоре после полуночи, платформа запечатывает одним корнем Меркла пакеты статистики, полученные накануне, подписывает корень ключом статуса и записывает печать в публичный реестр в день ее создания. Публичны только счета и корень. Выдается на хостах verify и app, кэшируется на 60 секунд.
Аутентификация
Не требуется. Вызов открытый.
Ответы
200 The seals.
application/json
| Имя | Тип | Обязательный | Описание | Пример |
|---|---|---|---|---|
items | array of StatsSealItem | да | Seals, newest day first. | |
items[].day | string (date) | да | The sealed Asia/Almaty receive day. | "2026-10-13" |
items[].batch_count | integer | да | Number of accepted statistics batches received on the day. | 4812 |
items[].record_count | integer | да | Number of play records in those batches. | 96240 |
items[].root | string | да | Hex Merkle root over the batches; SHA-256 of the empty string when the day has none. | "0f59838f53129a98e19ac704aa86cde6d83fc6cce9c56106370a60cbd6341fa3" |
items[].url | string | да | Where the full seal is. | "/v1/stats-seals/2026-10-13" |
Пример
{
"items": [
{
"day": "2026-10-13",
"batch_count": 4812,
"record_count": 96240,
"root": "0f59838f53129a98e19ac704aa86cde6d83fc6cce9c56106370a60cbd6341fa3",
"url": "/v1/stats-seals/2026-10-13"
}
]
}
Ошибки
Ошибки приходят документом problem (application/problem+json) со стабильным полем code.
| Статус | Значение |
|---|---|
| 429 | Превышен предел частоты; см. Retry-After. |
Примеры кода
curl
curl 'https://verify.tanba-ooh.kz/v1/stats-seals'
Python
import requests
response = requests.get(
"https://verify.tanba-ooh.kz/v1/stats-seals",
)
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/stats-seals", 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))
}