TAŇBA-OOH Developers

Latest rounds of random inspection visits

GET /v1/spot-checks

https://verify.tanba-ooh.kz/v1/spot-checks

The newest 30 rounds, newest first. A round is the sample of structures an inspector will visit on one working day. The platform draws the secret of a round the day before and publishes only its hash here (commitment), which enters the public ledger the same day. After 7 days the secret and the sample become public (GET /v1/spot-checks/{day}) and anyone can recompute the sample. Served on the verify and app hosts, cached for 60 seconds.

Authentication

None. This call is public.

Responses

200 The rounds.

application/json

NameTypeRequiredDescriptionExample
itemsarray of SpotRoundItemyesRounds, newest day first.
items[].daystring (date)yesThe Asia/Almaty working day of the round."2026-10-15"
items[].commitmentstringyesHex SHA-256 of the secret of the round."6f1ed002ab5595859014ebf0951522d9a1f6a7a9e8b6dbd2d4f1d43fb3ac4a43"
items[].revealedbooleanyesTrue once the secret and the sample are public.false
items[].reveal_afterstring (date)yesThe first day on which the secret and the sample are public: seven days after the round."2026-10-22"
items[].urlstringyesWhere the full round is."/v1/spot-checks/2026-10-15"

Example

{
  "items": [
    {
      "day": "2026-10-15",
      "commitment": "6f1ed002ab5595859014ebf0951522d9a1f6a7a9e8b6dbd2d4f1d43fb3ac4a43",
      "revealed": false,
      "reveal_after": "2026-10-22",
      "url": "/v1/spot-checks/2026-10-15"
    }
  ]
}

Errors

Errors are problem documents (application/problem+json) with a stable code.

StatusMeaning
429Rate limit; see Retry-After.

Code samples

curl

curl 'https://verify.tanba-ooh.kz/v1/spot-checks'
Python
import requests

response = requests.get(
    "https://verify.tanba-ooh.kz/v1/spot-checks",
)
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/spot-checks", 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))
}