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
| Имя | Тип | Обязательный | Описание | Пример |
|---|---|---|---|---|
id | string (uuid) | да | Id of the job. | "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f" |
status | string | да | State of the job. queued, running, done, failed | |
approval_number | string | null | да | The approval exported; null for a campaign. | "TNB-2026-000123" |
campaign_id | string | null | да | The campaign exported; null for one approval. | null |
period_from | string (date) | да | First day exported. | "2026-10-01" |
period_to | string (date) | да | Last day exported. | "2026-10-14" |
row_count | integer | null | да | Rows written; null until the job is done. | 10000 |
file_sha256 | string | null | да | Hex SHA-256 of the file; null until the job is done. | "7c8d9e0f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5" |
error | string | null | да | Why a job failed: too_many_rows or internal. | null |
created_at | string | да | When the job was requested, Almaty time. | "2026-10-14T17:00:00+05:00" |
finished_at | string | 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))
}