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

One open data file (served at /open/{file} on the verify host)

GET /v1/open/{file}

https://verify.tanba-ooh.kz/v1/open/{file}

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

A file of a published release, YYYY-MM.csv or YYYY-MM.json. The bytes are the ones whose hash the public ledger carries; they are never recomputed. The header X-Data-Licence carries the licence note (a draft for now). A month that is not published, and any other name, answer 404.

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

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

Параметрлер

АтауыОрныТүріМіндеттіСипаттамаМысал
fileжолstringиәThe month and the format, such as 2026-08.csv or 2026-08.json.2026-08.csv
If-None-MatchтақырыпstringжоқThe ETag of a copy you already hold; the answer is then 304 without a body."3f786850e387550fdab836ed7e6dc881de23001b3f786850e387550fdab836ed"

Жауаптар

200 The file.

text/csv

Мысал

string

application/json

OpenDataFile

АтауыТүріМіндеттіСипаттамаМысал
monthstringиәThe month the figures cover, YYYY-MM."2026-08"
basisstringиәThe trust tier of the counted plays."mtls"
licenceobjectиәThe licence note of the files. The terms of use are the city's decision; until it is made the note says so.
licence.statusstringиәdraft until the city decides. draft
licence.textobjectиәThe note in English, Russian and Kazakh.
licence.text.enstringиәEnglish text."Draft - pending the city's decision."
licence.text.rustringиәRussian text."Проект - ожидает решения города."
licence.text.kkstringиәKazakh text."Жоба - қаланың шешімін күтуде."
disclosureobjectиәThe thresholds the release was built with.
disclosure.min_operatorsintegerиәOperators a published cell needs.3
disclosure.min_advertisersintegerиәAdvertisers a published cell needs.3
disclosure.max_party_share_pctintegerиәThe most percent of a cell's plays one operator or one advertiser may hold.70
disclosure.lag_monthsintegerиәFull months between the end of a month and its release.1
cityobjectиәThe total of the whole city.
city.statusstringиәwithheld when the total would reveal a blank cell. published, withheld
city.playsintegerPlays in the month; present when published.1280450
city.on_screen_hoursnumberHours on screen in the month; present when published.3556.79
city.screensintegerScreens that played in the month; present when published.312
tablesarray of objectиәThe two tables of cells.
tables[].namestringиәName of the table."district_format"
tables[].rowsstringиәWhat the rows are."district"
tables[].colsstringиәWhat the columns are."format"
tables[].cellsarray of objectиәThe cells in the order of row, then column.
tables[].cells[].rowstringиәRow code."medeu"
tables[].cells[].colstringиәColumn code."cityboard"
tables[].cells[].statusstringиәsuppressed cells are blank on purpose. published, suppressed
tables[].cells[].playsinteger | nullиәPlays in the month; null unless published.84210
tables[].cells[].on_screen_hoursnumber | nullиәHours on screen in the month; null unless published.233.92

Мысал

{
  "month": "2026-08",
  "basis": "mtls",
  "licence": {
    "status": "draft",
    "text": {
      "en": "Draft - pending the city's decision.",
      "ru": "Проект - ожидает решения города.",
      "kk": "Жоба - қаланың шешімін күтуде."
    }
  },
  "disclosure": {
    "min_operators": 3,
    "min_advertisers": 3,
    "max_party_share_pct": 70,
    "lag_months": 1
  },
  "city": {
    "status": "published",
    "plays": 1280450,
    "on_screen_hours": 3556.79,
    "screens": 312
  },
  "tables": [
    {
      "name": "district_format",
      "rows": "district",
      "cols": "format",
      "cells": [
        {
          "row": "medeu",
          "col": "cityboard",
          "status": "published",
          "plays": 84210,
          "on_screen_hours": 233.92
        }
      ]
    }
  ]
}

304 The copy you hold is current.

Денесі жоқ.

Қателер

Қателер problem құжаты (application/problem+json) түрінде, тұрақты code өрісімен келеді.

МәртебесіМағынасы
404Open data is switched off (not_published), or the month or file is not published or does not exist (not_found).
429Rate limit; see Retry-After.

Код мысалдары

curl

curl 'https://verify.tanba-ooh.kz/v1/open/2026-08.csv'
Python
import requests

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