TAŇBA-OOH Әзірлеушілерге

Latest daily seals of the received play statistics

GET /v1/stats-seals

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

Анықтамалықтың техникалық мәтіні ағылшын тілінде жазылған.

The newest 30 seals, newest first. Every Almaty day, shortly after midnight, the platform seals the statistics batches it received the day before in one Merkle root, signs the root with its status key, and records the seal in the public ledger on the day it was made. Only counts and the root are public. Served on the verify and app hosts, cached for 60 seconds.

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

Қажет емес. Шақыру ашық.

Жауаптар

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 өрісімен келеді.

МәртебесіМағынасы
429Rate limit; see 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))
}