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

Реестр сертифицированных моделей плееров (по адресу /certified на хосте verify)

GET /v1/certified

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

Перечисляет модели, у которых есть действующий сертификат лаборатории сертификации, и ничего больше. С Accept: application/json (или ?format=json) приходит JSON, иначе HTML-страница. Кэшируется на 60 секунд.

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

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

Параметры

ИмяГдеТипОбязательныйОписаниеПример
formatзапросstringнетУкажите json, чтобы получить JSON вместо страницы или подписанного файла. jsonjson

Ответы

200 Действующие сертификаты.

application/json

ИмяТипОбязательныйОписаниеПример
itemsarray of objectдаДействующие сертификаты.
items[].vendorstringдаИзготовитель модели плеера."Example Devices"
items[].modelstringдаНазвание модели."XP-100"
items[].classstringдаКласс, для которого выдан сертификат (модель плеера), или уровень (продукт CMS). A, B, C, C1, C2
items[].spec_versionstringдаВерсия спецификации соответствия, по которой проверена модель."1.0"
items[].valid_untilstring (date)даПоследний день действия сертификата."2027-06-30"

Пример

{
  "items": [
    {
      "vendor": "Example Devices",
      "model": "XP-100",
      "class": "A",
      "spec_version": "1.0",
      "valid_until": "2027-06-30"
    }
  ]
}

text/html

Ошибки

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

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

Примеры кода

curl

curl 'https://verify.tanba-ooh.kz/v1/certified' \
  -H 'Accept: application/json'
Python
import requests

response = requests.get(
    "https://verify.tanba-ooh.kz/v1/certified",
    headers={
        "Accept": "application/json",
    },
)
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/certified", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Accept", "application/json")
	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))
}