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
| Атауы | Түрі | Міндетті | Сипаттама | Мысал |
|---|---|---|---|---|
month | string | иә | The month the figures cover, YYYY-MM. | "2026-08" |
basis | string | иә | The trust tier of the counted plays. | "mtls" |
licence | object | иә | The licence note of the files. The terms of use are the city's decision; until it is made the note says so. | |
licence.status | string | иә | draft until the city decides. draft | |
licence.text | object | иә | The note in English, Russian and Kazakh. | |
licence.text.en | string | иә | English text. | "Draft - pending the city's decision." |
licence.text.ru | string | иә | Russian text. | "Проект - ожидает решения города." |
licence.text.kk | string | иә | Kazakh text. | "Жоба - қаланың шешімін күтуде." |
disclosure | object | иә | The thresholds the release was built with. | |
disclosure.min_operators | integer | иә | Operators a published cell needs. | 3 |
disclosure.min_advertisers | integer | иә | Advertisers a published cell needs. | 3 |
disclosure.max_party_share_pct | integer | иә | The most percent of a cell's plays one operator or one advertiser may hold. | 70 |
disclosure.lag_months | integer | иә | Full months between the end of a month and its release. | 1 |
city | object | иә | The total of the whole city. | |
city.status | string | иә | withheld when the total would reveal a blank cell. published, withheld | |
city.plays | integer | Plays in the month; present when published. | 1280450 | |
city.on_screen_hours | number | Hours on screen in the month; present when published. | 3556.79 | |
city.screens | integer | Screens that played in the month; present when published. | 312 | |
tables | array of object | иә | The two tables of cells. | |
tables[].name | string | иә | Name of the table. | "district_format" |
tables[].rows | string | иә | What the rows are. | "district" |
tables[].cols | string | иә | What the columns are. | "format" |
tables[].cells | array of object | иә | The cells in the order of row, then column. | |
tables[].cells[].row | string | иә | Row code. | "medeu" |
tables[].cells[].col | string | иә | Column code. | "cityboard" |
tables[].cells[].status | string | иә | suppressed cells are blank on purpose. published, suppressed | |
tables[].cells[].plays | integer | null | иә | Plays in the month; null unless published. | 84210 |
tables[].cells[].on_screen_hours | number | 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 өрісімен келеді.
| Мәртебесі | Мағынасы |
|---|---|
| 404 | Open data is switched off (not_published), or the month or file is not published or does not exist (not_found). |
| 429 | Rate 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))
}