Быстрый старт

Первый запрос и простые примеры интеграции на 7 языках

Хотите увидеть код, а не читать теорию? Вы по адресу. Здесь — минимум, чтобы начать: ключ, базовый адрес, первый запрос и примеры интеграции на восьми языках.

Что нужно для старта

  1. API-ключ. Получается в вашем кабинете. Выглядит так: aiesa-<48 символов>. Секрет показывается один раз — сохраните его надёжно. Старые ключи API v2 с тем же форматом продолжают работать в v3.
  2. Базовый адрес. 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)

Дальше по порядку:

На этой странице