# Собрать аудиокнигу

M4B с главами и обложкой или ZIP с MP3 по главам.

`POST /books/{book_id}/export` · озвучка

Бесплатно. Собираются озвученные главы. Это задача: дождитесь `done` ([ход](/developers/job-get) или
[уведомление](/developers/webhooks) `export.ready`), потом возьмите ссылку в [`GET /books/{id}/exports`](/developers/book-exports).
В файл записываются название, автор, обложка и пометка «Озвучено с помощью синтеза речи».

## Параметры пути

| Параметр | Что это |
|---|---|
| `book_id` | Id книги |

## Тело запроса

JSON, заголовок `content-type: application/json`.

| Поле | Тип | Обязательно | Что это |
|---|---|---|---|
| `format` | строка | нет | `m4b` (по умолчанию) или `zip` |

## Ошибки

| Код | Когда |
|---|---|
| `400` | Нет ни одной озвученной главы |

```bash
curl -X POST "https://golosar-kniga.tech/api/v1/books/$BOOK_ID/export" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"format": "m4b"}'
```

```python
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
book_id = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3"

r = requests.post(f"{API}/books/{book_id}/export", headers=H, json={"format": "m4b"})
r.raise_for_status()
print(r.json())
```

```javascript
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY, "content-type": "application/json" };
const bookId = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3";

const r = await fetch(`${API}/books/${bookId}/export`, { method: "POST", headers: H, body: JSON.stringify({"format": "m4b"}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());
```

```json Ответ 200
{
  "job": {
    "id": "01a134d0-e68a-70c7-8ae4-d73d6b08cb17",
    "type": "export",
    "status": "queued",
    "book_id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3",
    "created_at": "2026-10-13T10:31:08.157233+00:00",
    "title": "Сборка ZIP: Вечер в саду · Версия 1",
    "eta_s": 3.0
  }
}
```
