List the screens of the market
GET /api/v1/market/inventory
https://app.tanba-ooh.kz/api/v1/market/inventory
Анықтамалықтың техникалық мәтіні ағылшын тілінде жазылған.
Scope read:inventory. Every active structure with what an exchange needs to describe it in a bid request: its code, the operator as publisher, the venue type (OpenOOH 1.2 and the mapped 1.1 id), location, district, format, class, screen size, spot and loop length, whether a player has reported in the last 24 hours, the sellers the operator has authorised, and a ready-to-copy OpenRTB 2.6 dooh and device.geo fragment. There are no prices, no availability, no audience and no client names. Free for registered participants and the same for every one of them. With since only structures changed after that instant are returned (a change of their authorised sellers, including a window that began or ended, counts), including decommissioned ones (status decommissioned) so that a copy can drop them; keep as_of of the last answer as the next since. The answer carries an ETag; send it back in If-None-Match to get 304.
Аутентификация
Authorization тақырыбындағы API кілті немесе консоль сеансы.
Рұқсат: read:inventory
Параметрлер
| Атауы | Орны | Түрі | Міндетті | Сипаттама | Мысал |
|---|---|---|---|---|---|
since | сұрау | string (date-time) | жоқ | Return only structures changed after this instant (RFC 3339). | 2026-10-14T00:00:00+05:00 |
If-None-Match | тақырып | string | жоқ | The ETag of a copy you already hold; the answer is then 304 without a body. | "6f1c0a7d5b2e49c8a3d1e7f0" |
Жауаптар
200 The screens.
application/json
InventoryList
| Атауы | Түрі | Міндетті | Сипаттама | Мысал |
|---|---|---|---|---|
as_of | string (date-time) | иә | The instant the answer was read; use it as the next since. | "2026-10-14T10:00:00+05:00" |
items | array of InventoryItem | иә | Screens ordered by code. | |
items[].code | string | иә | Structure code; use it as dooh.id and imp.tagid. | "ALM-0001" |
items[].unos_id | string | null | иә | Identifier in the national outdoor advertising register, when the operator has recorded it. | "UNOS-4711" |
items[].status | string | иә | decommissioned appears only in answers with since. active, decommissioned | |
items[].operator | object | иә | The operator that runs the screen, the publisher in a bid request. | |
items[].operator.id | string (uuid) | иә | Id of the operator organisation. | "0b6f9d0e-6c1e-4a6a-9d55-0f8a6a6f3c11" |
items[].operator.name | string | иә | Legal name of the operator. | "Almaty Outdoor LLP" |
items[].operator.domain | string | null | иә | Domain of the operator, when recorded. | "almaty-outdoor.example" |
items[].venue_type | object | null | иә | Venue type; null when neither the structure nor its format has one. | |
items[].venue_type.v12 | integer | иә | Id in the OpenOOH venue taxonomy 1.2. | 304 |
items[].venue_type.v11 | integer | null | иә | Id of the official mapping to OpenOOH 1.1; send this one with venuetypetax 5. | 301 |
items[].venue_type.code | string | иә | String code of the type in the 1.2 taxonomy. | "outdoor.spectacular" |
items[].lat | number | иә | Latitude in degrees. | 43.238 |
items[].lng | number | иә | Longitude in degrees. | 76.945 |
items[].district | string | иә | District code from the reference list. | "medeu" |
items[].format | string | иә | Format code from the reference list. | "cityboard" |
items[].class | string | иә | Class of the screen. A, B, C | |
items[].outdoor | boolean | иә | True for outdoor formats. | true |
items[].screen | object | иә | Size of the screen in pixels. | |
items[].screen.w | integer | null | иә | Width in pixels; null when unknown. | 1920 |
items[].screen.h | integer | null | иә | Height in pixels; null when unknown. | 1080 |
items[].slot_seconds | integer | null | иә | Length of one spot in seconds. | 10 |
items[].loop_seconds | integer | null | иә | Length of the loop in seconds. | 120 |
items[].compliance | object | иә | What the platform knows about the screen's player. | |
items[].compliance.connected | boolean | иә | True when a player of the screen reported in the last 24 hours. | true |
items[].authorised_sellers | array of object | иә | Sellers whose declaration is valid today, from the structure's own list and from the operator's list for all of its structures. | |
items[].authorised_sellers[].seller_id | string (uuid) | иә | Id of the seller organisation. The account to match with sellers.json is seller_account_id. | "5d3f3e0a-2a53-4b3c-8d0a-6f63b4d9a111" |
items[].authorised_sellers[].seller_account_id | string | иә | The seller's account on its exchange, the value that appears in source.schain. | "pub-4711" |
items[].authorised_sellers[].valid_from | string (date) | иә | First day of the authorisation. | "2026-10-01" |
items[].authorised_sellers[].valid_until | string | null (date) | иә | Last day of the authorisation; null without an end. | "2026-12-31" |
items[].authorised_sellers[].scope | string | иә | structure for a declaration on this screen, operator for one on all screens of the operator. structure, operator | |
items[].ortb | object | иә | Fragments to copy into an OpenRTB 2.6 bid request. | |
items[].ortb.dooh | object | иә | The dooh object. | |
items[].ortb.dooh.id | string | иә | Structure code. | "ALM-0001" |
items[].ortb.dooh.publisher | object | иә | The operator. | |
items[].ortb.dooh.publisher.id | string | иә | Id of the operator organisation. | "0b6f9d0e-6c1e-4a6a-9d55-0f8a6a6f3c11" |
items[].ortb.dooh.publisher.name | string | иә | Legal name of the operator. | "Almaty Outdoor LLP" |
items[].ortb.dooh.publisher.domain | string | Domain of the operator; absent when not recorded. | "almaty-outdoor.example" | |
items[].ortb.dooh.domain | string | Domain of the operator; absent when not recorded. | "almaty-outdoor.example" | |
items[].ortb.dooh.venuetype | array of string | OpenOOH 1.1 id of the venue type as a string; absent when the screen has none. | ["301"] | |
items[].ortb.dooh.venuetypetax | integer | Venue taxonomy list value: 5 is OpenOOH 1.1. Absent when venuetype is. | 5 | |
items[].ortb.dooh.keywords | string | иә | Format code and outdoor or indoor, comma separated. | "cityboard,outdoor" |
items[].ortb.device | object | иә | The device object. | |
items[].ortb.device.geo | object | иә | The location of the screen. | |
items[].ortb.device.geo.lat | number | иә | Latitude in degrees. | 43.238 |
items[].ortb.device.geo.lon | number | иә | Longitude in degrees. | 76.945 |
items[].ortb.device.geo.type | integer | иә | Source of the location; 1 is a surveyed position. | 1 |
items[].ortb.device.geo.country | string | иә | ISO 3166-1 alpha-3 country code. | "KAZ" |
items[].ortb.device.ext | object | Extension with the OpenOOH 1.2 venue type id; absent when the screen has no venue type. | ||
items[].ortb.device.ext.dooh | object | The dooh extension. | ||
items[].ortb.device.ext.dooh.venuetypeid | string | Id in the OpenOOH 1.2 taxonomy as a string. | "304" | |
items[].updated_at | string (date-time) | иә | When the screen or its sellers last changed. | "2026-10-14T09:30:00+05:00" |
Мысал
{
"as_of": "2026-10-14T10:00:00+05:00",
"items": [
{
"code": "ALM-0001",
"unos_id": "UNOS-4711",
"status": "active",
"operator": {
"id": "0b6f9d0e-6c1e-4a6a-9d55-0f8a6a6f3c11",
"name": "Almaty Outdoor LLP",
"domain": "almaty-outdoor.example"
},
"venue_type": {
"v12": 304,
"v11": 301,
"code": "outdoor.spectacular"
},
"lat": 43.238,
"lng": 76.945,
"district": "medeu",
"format": "cityboard",
"class": "B",
"outdoor": true,
"screen": {
"w": 1920,
"h": 1080
},
"slot_seconds": 10,
"loop_seconds": 120,
"compliance": {
"connected": true
},
"authorised_sellers": [
{
"seller_id": "5d3f3e0a-2a53-4b3c-8d0a-6f63b4d9a111",
"seller_account_id": "pub-4711",
"valid_from": "2026-10-01",
"valid_until": "2026-12-31",
"scope": "structure"
}
],
"ortb": {
"dooh": {
"id": "ALM-0001",
"publisher": {
"id": "0b6f9d0e-6c1e-4a6a-9d55-0f8a6a6f3c11",
"name": "Almaty Outdoor LLP",
"domain": "almaty-outdoor.example"
},
"domain": "almaty-outdoor.example",
"venuetype": [
"301"
],
"venuetypetax": 5,
"keywords": "cityboard,outdoor"
},
"device": {
"geo": {
"lat": 43.238,
"lon": 76.945,
"type": 1,
"country": "KAZ"
},
"ext": {
"dooh": {
"venuetypeid": "304"
}
}
}
},
"updated_at": "2026-10-14T09:30:00+05:00"
}
]
}
304 The copy you hold is current.
Денесі жоқ.
Қателер
Қателер problem құжаты (application/problem+json) түрінде, тұрақты code өрісімен келеді.
| Мәртебесі | Мағынасы |
|---|---|
| 401 | No valid session or API key (unauthenticated, session_expired, invalid_api_key). |
| 403 | The role or the key's scope does not allow this (forbidden, key_scope_denied, key_route_denied). |
| 422 | Field errors (validation_failed). |
| default | An error as a problem document. |
Код мысалдары
curl
curl 'https://app.tanba-ooh.kz/api/v1/market/inventory' \
-H 'Authorization: Bearer YOUR_API_KEY'
Python
import requests
response = requests.get(
"https://app.tanba-ooh.kz/api/v1/market/inventory",
headers={
"Authorization": "Bearer YOUR_API_KEY",
},
)
print(response.status_code, response.text)
Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://app.tanba-ooh.kz/api/v1/market/inventory", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
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))
}