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

State of one per-spot export job

GET /api/v1/delivery/exports/{id}

https://app.tanba-ooh.kz/api/v1/delivery/exports/{id}

Технический текст справочника написан на английском.

Scope read:delivery. A job is queued, running, done or failed. A job over one million rows fails with error too_many_rows: ask for a shorter period.

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

Ключ API в заголовке Authorization или сессия консоли.

Право доступа: read:delivery

Параметры

ИмяГдеТипОбязательныйОписаниеПример
idпутьstring (uuid)даId of the job.1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f

Ответы

200 The job.

application/json

DeliveryExport

ИмяТипОбязательныйОписаниеПример
idstring (uuid)даId of the job."1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f"
statusstringдаState of the job. queued, running, done, failed
approval_numberstring | nullдаThe approval exported; null for a campaign."TNB-2026-000123"
campaign_idstring | nullдаThe campaign exported; null for one approval.null
period_fromstring (date)даFirst day exported."2026-10-01"
period_tostring (date)даLast day exported."2026-10-14"
row_countinteger | nullдаRows written; null until the job is done.10000
file_sha256string | nullдаHex SHA-256 of the file; null until the job is done."7c8d9e0f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5"
errorstring | nullдаWhy a job failed: too_many_rows or internal.null
created_atstringдаWhen the job was requested, Almaty time."2026-10-14T17:00:00+05:00"
finished_atstring | nullдаWhen the job ended, Almaty time."2026-10-14T17:00:09+05:00"

Пример

{
  "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "status": "done",
  "approval_number": "TNB-2026-000123",
  "campaign_id": null,
  "period_from": "2026-10-01",
  "period_to": "2026-10-14",
  "row_count": 10000,
  "file_sha256": "7c8d9e0f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5",
  "error": null,
  "created_at": "2026-10-14T17:00:00+05:00",
  "finished_at": "2026-10-14T17:00:09+05:00"
}

Ошибки

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

СтатусЗначение
401Нет действительной сессии или ключа API (unauthenticated, session_expired, invalid_api_key).
403Роль или право ключа этого не допускает (forbidden, key_scope_denied, key_route_denied).
404Ничего нет или вызывающему это не видно.
defaultОшибка в виде документа problem.

Примеры кода

curl

curl 'https://app.tanba-ooh.kz/api/v1/delivery/exports/1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Python
import requests

response = requests.get(
    "https://app.tanba-ooh.kz/api/v1/delivery/exports/1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
    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/delivery/exports/1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f", 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))
}