# Книга из текста

Создать книгу из текста: главы и герои найдутся сами.

`POST /books` · озвучка

Строки «Глава 1», «Глава 2»… делят текст на главы. Прямая речь — с тире «—». Программа сразу разметит, кто говорит,
найдёт героев и даст им голоса (по полу и возрасту, разные голоса разным героям).

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

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

| Поле | Тип | Обязательно | Что это |
|---|---|---|---|
| `title` | строка | да | Название книги |
| `author` | строка | нет | Автор |
| `text` | строка | да | Текст книги |

## Что в ответе

| Поле | Что это |
|---|---|
| `id` | Id книги |
| `title` / `author` | Название и автор |
| `status` | `ready` — можно работать, `importing` — ещё разбирается, `failed` — ошибка разбора |
| `reading` | `roles` — по ролям, `solo` — один чтец |
| `check` | `auto` — проверять запись на слух после озвучки, `off` — по кнопке |
| `sound` | Обработка звука: `studio` или `raw` |
| `active_edition_id` | Текущая версия озвучки |

## Ошибки

| Код | Когда |
|---|---|
| `402` | Нет знаков на балансе |
| `422` | Нет названия или текста |

```bash
curl -X POST "https://golosar-kniga.tech/api/v1/books" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"title": "Вечер в саду", "author": "Иван Петров", "text": "Глава 1\nВечер был тих.\n— Кто здесь? — спросила Мира."}'
```

```python
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}

r = requests.post(f"{API}/books", headers=H, json={"title": "Вечер в саду", "author": "Иван Петров", "text": "Глава 1\nВечер был тих.\n— Кто здесь? — спросила Мира."})
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 r = await fetch(`${API}/books`, { method: "POST", headers: H, body: JSON.stringify({"title": "Вечер в саду", "author": "Иван Петров", "text": "Глава 1\nВечер был тих.\n— Кто здесь? — спросила Мира."}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());
```

```json Ответ 200
{
  "book": {
    "id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3",
    "title": "Вечер в саду",
    "author": "Иван Петров",
    "status": "ready",
    "created_at": "2026-10-13T10:31:05.833003+00:00",
    "language": "ru",
    "subtitle": "",
    "series": "",
    "series_no": "",
    "genre": "",
    "age_rating": "",
    "thoughts": "hero",
    "sound": "studio",
    "check": "auto",
    "reading": "roles",
    "cover_url": null,
    "active_edition_id": "01a134d0-ddcc-7b41-ba3d-b8112c6d0414"
  }
}
```
