TAŇBA-OOH Developers

Registry of certified player models (served at /certified on the verify host)

GET /v1/certified

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

Lists the models that hold a valid certificate of the certification lab, and nothing else. Send Accept of application/json (or ?format=json) for JSON, anything else gets the HTML page. Cached for 60 seconds.

Authentication

None. This call is public.

Parameters

NameInTypeRequiredDescriptionExample
formatquerystringnoSet to json to get JSON instead of the page or the signed file. jsonjson

Responses

200 The valid certificates.

application/json

NameTypeRequiredDescriptionExample
itemsarray of objectyesThe valid certificates.
items[].vendorstringyesManufacturer of the player model."Example Devices"
items[].modelstringyesName of the model."XP-100"
items[].classstringyesClass the certificate was issued for (a player model), or the level (a CMS product). A, B, C, C1, C2
items[].spec_versionstringyesVersion of the conformance specification the model was tested against."1.0"
items[].valid_untilstring (date)yesLast day the certificate is valid."2027-06-30"

Example

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

text/html

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/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))
}