Ход задачи
Озвучка главы, сборка файла, проверка на слух — всё это задачи.
GET /jobs/{job_id} · чтение
Спрашивайте раз в 10–30 секунд или подключите уведомления.
Параметры пути
| Параметр | Что это |
|---|---|
job_id |
Id задачи |
Что в ответе
| Поле | Что это |
|---|---|
type |
render — озвучка главы, export — сборка файла, check — проверка на слух |
status |
queued → running → done; или failed (текст в error), cancelled |
done / total |
Готово кусков / всего |
reused |
Сколько кусков взято готовыми (бесплатно) |
credits_used |
Сколько знаков уже списано |
eta_s |
Сколько примерно осталось, секунд |
download_url |
У готовой сборки — ссылка на файл |
curl "https://golosar-kniga.tech/api/v1/jobs/$JOB_ID" \
-H "x-api-key: $KEY"
import os, requests
API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
job_id = "01a134d0-e101-75f3-822a-7e5c7ba0f3f3"
r = requests.get(f"{API}/jobs/{job_id}", headers=H)
r.raise_for_status()
print(r.json())
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY };
const jobId = "01a134d0-e101-75f3-822a-7e5c7ba0f3f3";
const r = await fetch(`${API}/jobs/${jobId}`, { headers: H });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());
json Ответ 200
{
"job": {
"id": "01a134d0-e101-75f3-822a-7e5c7ba0f3f3",
"type": "render",
"job_type": "render",
"status": "done",
"done": 3,
"total": 3,
"reused": 0,
"credits_used": 108.0,
"error": null,
"chapter_id": "01a134d0-ddb7-72aa-b96c-967b596362fe",
"book_id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3",
"created_at": "2026-10-13T10:31:06.695103+00:00",
"started_at": "2026-10-13T10:31:06.784600+00:00",
"finished_at": "2026-10-13T10:31:07.399828+00:00",
"title": "Озвучка: Глава 1",
"stage": "",
"eta_s": 5.1,
"bytes": null,
"bytes_total": null,
"cost_usd": null,
"took_s": 0.6
}
}