Назад к документации

Справочник по API

Тестируйте общедоступные эндпоинты в реальном времени и ознакомьтесь с правилами аутентификации, идемпотентности и ручной публикации для рабочих процессов контента.

API преобразования речи в текст

POST/transcribe

Преобразуйте аудиофайлы в текст с поддержкой различных форматов и пользовательских словарей.

Длинное аудио может возвращать статус ожидания/выполнения оптимизации ИИ (pending/running), пока фрагментированная оптимизация завершается в фоновом режиме. Эти примеры кода охватывают публичный запрос /transcribe; внутренние эндпоинты статуса и восстановления заданий оптимизации ИИ не являются публичным API.

При включенной оптимизации ИИ ответ dify_processing может содержать необязательные диагностические поля n8n_workflow_name, n8n_workflow_id, n8n_call_id и n8n_execution_id; успешный повтор в приложении Records на рабочем столе сохраняет тот же идентификатор рабочего процесса. Попадание в кэш предварительной выборки повторно использует первый вызов, поэтому finalize не отправляет дублирующий рабочий процесс лишь для заполнения этих полей. Эти идентификаторы не являются учетными данными, но их все равно не следует публиковать вместе с текстом расшифровки, ключами API или URL-адресами вебхуков.

Эндпоинт /transcribe требует формат multipart/form-data с бинарным аудиофайлом в поле 'audio' (а не 'file'). Необязательные поля формы включают 'prompt' и 'dict' (массив JSON-строк с парами misspelling/correct_spelling).

Пример транскрипции с cURL multipart

curl -X POST "https://api.vowise.com/transcribe" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "prompt=Interview about technology" \
  -F 'dict=[{"misspelling":"AI","correct_spelling":"Artificial Intelligence"}]'

API управления словарем

GET/api/v1/dictionary

Получить все словарные записи пользователя.

Протестировать

POST/api/v1/dictionary/add

Добавить или обновить запись в словаре.

Протестировать

DELETE/api/v1/dictionary/delete

Удалить определенную запись словаря. Требуется misspelling в параметрах запроса.

Протестировать

API рабочих процессов с контентом

Bearer API KeyAuthorization: Bearer YOUR_API_KEY

Эти эндпоинты возвращают только контент, принадлежащий владельцу ключа API. Варианты платформы развертываются по средам; клиенты должны обрабатывать ошибки 404, 409 и 503, а не предполагать, что наличие маршрута означает доступность интерфейса продукта.

GET/api/v1/content/items/{id}/family

Прочитать основной материал, его варианты для платформ, состояние генерации, утверждения и актуальность.

POST/api/v1/content/items/{master_id}/variants

Создать или повторно использовать варианты для активных каналов пользователя (не более 10 целей за запрос).

POST/api/v1/content/items/{variant_id}/regenerate

Создать новую задачу генерации для существующего варианта с сохранением снимка источника и защиты от конфликтов.

POST/api/v1/content/items/{variant_id}/approve

Утвердить только текущий заголовок и текст, идентифицированные content_hash; последующие правки аннулируют утверждение.

POST/api/v1/content/items/{id}/deliveries

Зафиксировать статус отправки при прямом обмене, копировании или экспорте; открытие меню «Поделиться» не означает публикацию.

POST/api/v1/content/items/{variant_id}/deliveries/manual

Подтвердить вручную опубликованный, утвержденный и свежий вариант; эндпоинт никогда не обращается к сторонним платформам.

Пример запроса создания вариантов для платформ

client_request_id должен быть стабильным и уникальным в рамках пользователя. Один и тот же ID может повторять только идентичные параметры; изменение полезной нагрузки возвращает 409 idempotency_conflict.

curl -X POST "https://api.vowise.com/api/v1/content/items/CONTENT_ITEM_ID/variants" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client_request_id": "client-generated-stable-id",
    "targets": [
      { "channel_id": "CHANNEL_ID", "preset_id": "PRESET_ID" }
    ]
  }'

Границы подтверждения публикации

Рабочий процесс контента не хранит учетные данные сторонних сервисов и не публикует посты автоматически. Встроенная панель подтверждает лишь факт вызова; результат становится подтвержденным только при наличии независимых доказательств. Внутренний callback защищен сервисным ключом и не является публичным.

Примеры интеграции и код

Python (requests)

import requests

# 1. Transcribe audio with multipart form upload
url = "https://api.vowise.com/transcribe"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"audio": open("audio.wav", "rb")}
data = {
    "prompt": "Interview about technology",
    "dict": '[{"misspelling": "AI", "correct_spelling": "Artificial Intelligence"}]'
}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

# 2. Manage dictionary
dict_url = "https://api.vowise.com/api/v1/dictionary"
entries = requests.get(dict_url, headers=headers).json()
print("Dictionary entries:", entries)

# Delete dictionary entry (misspelling as query parameter)
requests.delete(f"{dict_url}/delete", headers=headers, params={"misspelling": "AI"})

JavaScript (fetch)

// 1. Transcribe audio with FormData
const formData = new FormData();
formData.append("audio", audioFile); // File or Blob object
formData.append("prompt", "Interview about technology");
formData.append("dict", JSON.stringify([
  { misspelling: "AI", correct_spelling: "Artificial Intelligence" }
]));

const transcribeRes = await fetch("https://api.vowise.com/transcribe", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY"
  },
  body: formData
});
const result = await transcribeRes.json();
console.log("Transcript:", result.text);

// 2. Manage dictionary
const dictRes = await fetch("https://api.vowise.com/api/v1/dictionary", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});
const entries = await dictRes.json();
console.log("Dictionary entries:", entries);

// Delete dictionary entry (misspelling as query parameter)
await fetch("https://api.vowise.com/api/v1/dictionary/delete?misspelling=AI", {
  method: "DELETE",
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});