← на сайт

SONA API

Синтез мовлення через простий REST. Постав текст — забери готове аудіо. 700+ голосів, 27 мов, керування швидкістю, гучністю та емоцією.

BASE https://api.sonapro.app

1 · Ключ і авторизація

Бот і API працюють з одного балансу символів твого акаунта.

  • Відкрий @sonapro_bot🔌 API → «Створити ключ».
  • Отримаєш ключ sk_user_… — додавай його в заголовок кожного запиту:
X-API-Key: sk_user_…

Голос задається нашим ID vc_… з бібліотеки голосів або через GET /v1/voices.

2 · Швидкий старт

Генерація асинхронна: постав задачу → дочекайся done → забери аудіо.

# базовий URL і твій ключ
API="https://api.sonapro.app"
KEY="sk_user_…"

# 1 · поставити озвучку → отримаєш job_id
curl -X POST $API/v1/tts \
  -H "X-API-Key: $KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Привіт, світе!","voice":"vc_xxxxxxxxxx",
       "language":"uk","model":"sona-pro"}'
# → {"job_id":"...","status":"queued","chars":13}

# 2 · перевіряй статус, доки не "done"
curl $API/v1/tts/JOB_ID -H "X-API-Key: $KEY"

# 3 · забери готовий файл
curl $API/v1/tts/JOB_ID/audio -H "X-API-Key: $KEY" -o out.mp3

Python/JS: шли JSON через нормальний HTTP-клієнт (requests / fetch) — не збирай тіло руками в shell, щоб не зіпсувати UTF-8.

3 · Ендпоінти

МетодШляхОпис
POST/v1/ttsпоставити озвучку → job_id
GET/v1/tts/{job_id}статус: queued / processing / done / error
GET/v1/tts/{job_id}/audioзавантажити готове аудіо (доступне 24 год)
GET/v1/voices?language=ukкаталог голосів (vc_…)
GET/v1/meзалишок символів на акаунті

4 · Параметри POST /v1/tts

ПолеТипЗа замовч.Опис
text *stringтекст для озвучення
voice *stringID голосу vc_…
languagestringenuk, en, … (27 мов)
modelstringsona-prosona-fast / sona-pro / sona-hd
formatstringmp3mp3 або wav
bitrateint128000mp3: 32/64/96/128/192 kbps
sample_rateint441008000…48000
speedfloat0.6 – 1.5
volumefloat0.5 – 2.0
emotionstringneutral / calm / angry / content / sad

5 · Коди помилок

401невірний / неактивний ключ
402недостатньо символів на балансі
404задачу не знайдено
410аудіо прострочене (видалено за давністю)
422помилка валідації / невідомий голос
429забагато активних задач — дочекайся завершення
503технічні роботи — спробуй трохи пізніше