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

Состояние платформы

GET /v1/status

https://verify.tanba-ooh.kz/v1/status

По каждой публичной поверхности: отвечает ли она сейчас и какова ее доступность за последние 30 дней. Больше ничего не публикуется: ни названий проверок, ни хостов, ни текстов ошибок. Цифры дают проверки, которые работают на хосте самой платформы, поэтому сбой всего хоста они не видят; пилот измеряет доступность и ничего не обещает. Кэшируется на 30 секунд.

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

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

Ответы

200 Состояние.

application/json

PublicStatus

ИмяТипОбязательныйОписаниеПример
generated_atstring (date-time)даКогда посчитаны цифры."2026-10-06T09:00:00+05:00"
statusstringдаОбщее состояние публичных поверхностей. ok, degraded, down, unknown
surfacesarray of objectдаЗапись на каждую публичную поверхность.
surfaces[].idstringдаКакую поверхность описывает запись. registry, command, signing, portal, telemetry, site
surfaces[].statusstringдаОтвечает ли поверхность сейчас. up, down, unknown
surfaces[].availability_30dnumber | nullдаДоля успешных проверок за 30 дней в процентах; null, пока проверок не было.99.94
notestringдаНеизменное пояснение, как измерены цифры."Measured by probes on the platform host; no availability is promised."

Пример

{
  "generated_at": "2026-10-06T09:00:00+05:00",
  "status": "ok",
  "surfaces": [
    {
      "id": "registry",
      "status": "up",
      "availability_30d": 99.94
    }
  ],
  "note": "Measured by probes on the platform host; no availability is promised."
}

Ошибки

Ошибки приходят документом problem (application/problem+json) со стабильным полем code.

СтатусЗначение
429Превышен предел частоты; см. Retry-After.

Примеры кода

curl

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

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