Быстрый старт
Первый запрос и простые примеры интеграции на 7 языках
Хотите увидеть код, а не читать теорию? Вы по адресу. Здесь — минимум, чтобы начать: ключ, базовый адрес, первый запрос и примеры интеграции на восьми языках.
Что нужно для старта
- API-ключ. Получается в вашем кабинете. Выглядит так:
aiesa-<48 символов>. Секрет показывается один раз — сохраните его надёжно. Старые ключи API v2 с тем же форматом продолжают работать в v3. - Базовый адрес.
https://api.aiesa.ru/v3.
Каждый запрос отправляется с заголовком:
Authorization: Bearer aiesa-<секрет>Подробно про ключи — на странице Аутентификация.
Первый запрос — список моделей
curl https://api.aiesa.ru/v3/models \
-H "Authorization: Bearer aiesa-<секрет>"В ответ — 200 с JSON-списком моделей. Если видите список — ключ работает,
можно писать интеграцию.
Основная задача: транскрипция
Самый частый сценарий: отправили URL с аудио → получили transcription_id →
дождались готовности → забрали текст.
Шаг 1. Создаём задачу:
curl -X POST https://api.aiesa.ru/v3/transcriptions/async/create \
-H "Authorization: Bearer aiesa-<секрет>" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/call.mp3","language":"ru"}'Шаг 2. Опрашиваем статус, пока не станет completed (или передайте события к
себе через вебхуки):
curl https://api.aiesa.ru/v3/transcriptions/status/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer aiesa-<секрет>"Дальше — то же самое на разных языках.
Примеры интеграции на разных языках
Все примеры делают одно и то же: создают асинхронную транскрипцию по ссылке и
печатают transcription_id. Для Rust понадобятся крейты ureq (фича json) и
serde_json, для C++ — библиотека libcurl, для Bash — стандартные curl,
grep и cut. Ожидание результата показано в полном
Python-примере в конце страницы.
import requests
resp = requests.post(
"https://api.aiesa.ru/v3/transcriptions/async/create",
headers={"Authorization": "Bearer aiesa-<секрет>"},
json={"url": "https://example.com/call.mp3", "language": "ru"},
)
resp.raise_for_status()
print(resp.json()["transcription_id"])Полный пример с ожиданием результата
Тот же сценарий, но на Python: создали задачу, дождались готовности, напечатали расшифрованный текст.
import time
import requests
BASE = "https://api.aiesa.ru/v3"
KEY = "aiesa-<ваш-секрет>"
HEADERS = {"Authorization": f"Bearer {KEY}"}
# 1. Создаём задачу по ссылке (можно и файл: files={"file": f})
r = requests.post(f"{BASE}/transcriptions/async/create",
headers=HEADERS,
json={"url": "https://example.com/call.mp3", "language": "ru"})
r.raise_for_status()
task_id = r.json()["transcription_id"]
print("task:", task_id)
# 2. Опрашиваем статус (в проде лучше использовать вебхуки)
while True:
st = requests.get(f"{BASE}/transcriptions/status/{task_id}",
headers=HEADERS).json()["data"]
if st["status"] == "completed":
print(st["result"]["text"])
break
if st["status"] == "failed":
print("failed:", st["error"])
break
time.sleep(2)Дальше по порядку: