TAŇBA-OOH Разработчикам

Последние ежедневные печати полученной статистики показов

GET /v1/stats-seals

https://verify.tanba-ooh.kz/v1/stats-seals

Технический текст справочника написан на английском.

Новейшие 30 печатей, сначала самые свежие. Каждый день по Алматы, вскоре после полуночи, платформа запечатывает одним корнем Меркла пакеты статистики, полученные накануне, подписывает корень ключом статуса и записывает печать в публичный реестр в день ее создания. Публичны только счета и корень. Выдается на хостах verify и app, кэшируется на 60 секунд.

Аутентификация

Не требуется. Вызов открытый.

Ответы

200 The seals.

application/json

ИмяТипОбязательныйОписаниеПример
itemsarray of StatsSealItemдаSeals, newest day first.
items[].daystring (date)даThe sealed Asia/Almaty receive day."2026-10-13"
items[].batch_countintegerдаNumber of accepted statistics batches received on the day.4812
items[].record_countintegerдаNumber of play records in those batches.96240
items[].rootstringдаHex Merkle root over the batches; SHA-256 of the empty string when the day has none."0f59838f53129a98e19ac704aa86cde6d83fc6cce9c56106370a60cbd6341fa3"
items[].urlstringда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))
}