Справочник API

Все публичные методы API. Справочник генерируется из того же OpenAPI-документа, что и Swagger, поэтому новые эндпоинты появляются здесь автоматически.

Обзор

В справочнике 97 публичных эндпоинтов. Базовый URL: https://ttsapi.ru.

Аутентификация: заголовок X-Api-Key или Authorization: Bearer с ключом из личного кабинета.

Speech

POST /v1/synthesize

Synthesize Russian speech and return an audio file.

Нужен API-ключ Попробовать

Returns **binary audio** (not JSON). Set `Accept` if you prefer a specific Content-Type; otherwise `format` in the body selects it. Example: POST /v1/synthesize X-Api-Key: YOUR_KEY { "text": "Привет! Это демонстрация синтеза русской речи.", "voice": "preset_anna", "format": "mp3", "sample_rate": 24000, "speed": 1.0, "emotion": "neutral", "effects": "[{\"type\": \"reverb\", \"room_size\": 0.5}]" } `effects` is an optional JSON-encoded string holding an array of effect descriptors (reverb, compressor, eq, distortion, chorus, pitch, timestretch). It requires a Pro/Business plan and is applied to the audio after synthesis, before it is encoded into the requested format. Errors are RFC 7807 Problem Details with a `code` field.

Тело запроса application/json

Схема: SynthesizeRequestDto · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to speak. Required. Max 5000 characters (500 on the public demo).
voice string (enum) | null — Voice id. Default preset_anna. See GET /v1/voices.
format string (enum) | null — Audio format: mp3 (default), wav, ogg (Vorbis), or opus (OGG/Opus).
sample_rate integer (enum) | null — Sample rate in Hz: 8000, 16000, 24000 (default), 48000.
speed number (float) | null — Speaking rate from 0.5 to 2.0. Default 1.0.
pitch number (float) | null — Pitch from 0.5 to 2.0. Default 1.0.
emotion string | null — Accepted for backward compatibility. CosyVoice does not support emotion — this value is ignored.
ssml boolean | null — If true, text is treated as SSML (speak, p, s, break, prosody only).
put_accent boolean | null — Accepted for backward compatibility. CosyVoice consumes plain text through a tokenizer with no phoneme input, so stress marks cannot reach the model — this value is ignored. Use RussianTts.Api.Contracts.SynthesizeRequestDto.Lexicon to fix the pronunciation of individual words.
put_yo boolean | null — Accepted for backward compatibility and ignored: CosyVoice consumes plain text tokens and has no phoneme input, so the letter ё cannot be forced.
normalize boolean | null — Accepted for backward compatibility and ignored: the engine already reads digits correctly, so there is nothing to expand.
model string (enum) | null — Synthesis model: standard (default, preset voices) or premium (cloned voices). Both run on CosyVoice.
language string | null — Language code for multilingual synthesis (CosyVoice; defaults to the voice language).
effects string | null — Optional audio-effects chain applied after synthesis. A JSON-encoded string holding an array of effect descriptors, e.g. "[{\"type\": \"reverb\", \"room_size\": 0.5}]". Requires a plan with audio effects enabled. Not supported for streaming synthesis.
lexicon object | null — Optional pronunciation overrides applied to the engine text before synthesis (up to 200 entries; source words are matched whole-word, case-insensitively). Use it for abbreviations, brands and names the model would read incorrectly, e.g. `{ "ООО": "общество с ограниченной ответственностью" }`. Ignored for SSML requests (a replacement inside a tag would break the markup). Quota is counted on the original text.

Ответы

Код Описание Схема
200 Binary audio. Content-Type matches the requested format (mp3 → audio/mpeg, wav, ogg). string (binary)
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
500 Unexpected server error. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/synthesize/async

Start an asynchronous long-form synthesis job (audiobook / long article).

Нужен API-ключ Swagger

Queue a long text (up to the deployment's long-form character limit) and get a job ID immediately. The text is split into paragraphs, each synthesized through the standard pipeline, and the clips are concatenated into a single sample-accurate **WAV** with a timed audiobook manifest. Poll `GET /v1/synthesize/async/{jobId}` for the manifest, then download the audio from `GET /v1/synthesize/async/{jobId}/audio`. Pass `webhookUrl` as a query parameter to be notified on completion.

Параметры

Имя Где Тип Обязательный Описание
webhookUrl query string —

Тело запроса application/json

Схема: SynthesizeRequestDto · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to speak. Required. Max 5000 characters (500 on the public demo).
voice string (enum) | null — Voice id. Default preset_anna. See GET /v1/voices.
format string (enum) | null — Audio format: mp3 (default), wav, ogg (Vorbis), or opus (OGG/Opus).
sample_rate integer (enum) | null — Sample rate in Hz: 8000, 16000, 24000 (default), 48000.
speed number (float) | null — Speaking rate from 0.5 to 2.0. Default 1.0.
pitch number (float) | null — Pitch from 0.5 to 2.0. Default 1.0.
emotion string | null — Accepted for backward compatibility. CosyVoice does not support emotion — this value is ignored.
ssml boolean | null — If true, text is treated as SSML (speak, p, s, break, prosody only).
put_accent boolean | null — Accepted for backward compatibility. CosyVoice consumes plain text through a tokenizer with no phoneme input, so stress marks cannot reach the model — this value is ignored. Use RussianTts.Api.Contracts.SynthesizeRequestDto.Lexicon to fix the pronunciation of individual words.
put_yo boolean | null — Accepted for backward compatibility and ignored: CosyVoice consumes plain text tokens and has no phoneme input, so the letter ё cannot be forced.
normalize boolean | null — Accepted for backward compatibility and ignored: the engine already reads digits correctly, so there is nothing to expand.
model string (enum) | null — Synthesis model: standard (default, preset voices) or premium (cloned voices). Both run on CosyVoice.
language string | null — Language code for multilingual synthesis (CosyVoice; defaults to the voice language).
effects string | null — Optional audio-effects chain applied after synthesis. A JSON-encoded string holding an array of effect descriptors, e.g. "[{\"type\": \"reverb\", \"room_size\": 0.5}]". Requires a plan with audio effects enabled. Not supported for streaming synthesis.
lexicon object | null — Optional pronunciation overrides applied to the engine text before synthesis (up to 200 entries; source words are matched whole-word, case-insensitively). Use it for abbreviations, brands and names the model would read incorrectly, e.g. `{ "ООО": "общество с ограниченной ответственностью" }`. Ignored for SSML requests (a replacement inside a tag would break the markup). Quota is counted on the original text.

Ответы

Код Описание Схема
202 Accepted SynthesisJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/synthesize/async/{jobId}

Poll a long-form synthesis job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK SynthesisJobStatusResponse
404 Voice was not found. ErrorResponse
GET /v1/synthesize/async/{jobId}/audio

Download the produced audio for a completed long-form synthesis job.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK —
404 Voice was not found. ErrorResponse
409 Conflict ErrorResponse
POST /v1/synthesize/stream

Stream audio chunks as they are produced. Pro and Business plans only.

Нужен API-ключ Swagger

Same body as /v1/synthesize. Response is an unbuffered audio byte stream. Free/Basic receive 403 `streaming_forbidden`. Audio effects (`effects`) are not supported for streaming synthesis.

Тело запроса application/json

Схема: SynthesizeRequestDto · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to speak. Required. Max 5000 characters (500 on the public demo).
voice string (enum) | null — Voice id. Default preset_anna. See GET /v1/voices.
format string (enum) | null — Audio format: mp3 (default), wav, ogg (Vorbis), or opus (OGG/Opus).
sample_rate integer (enum) | null — Sample rate in Hz: 8000, 16000, 24000 (default), 48000.
speed number (float) | null — Speaking rate from 0.5 to 2.0. Default 1.0.
pitch number (float) | null — Pitch from 0.5 to 2.0. Default 1.0.
emotion string | null — Accepted for backward compatibility. CosyVoice does not support emotion — this value is ignored.
ssml boolean | null — If true, text is treated as SSML (speak, p, s, break, prosody only).
put_accent boolean | null — Accepted for backward compatibility. CosyVoice consumes plain text through a tokenizer with no phoneme input, so stress marks cannot reach the model — this value is ignored. Use RussianTts.Api.Contracts.SynthesizeRequestDto.Lexicon to fix the pronunciation of individual words.
put_yo boolean | null — Accepted for backward compatibility and ignored: CosyVoice consumes plain text tokens and has no phoneme input, so the letter ё cannot be forced.
normalize boolean | null — Accepted for backward compatibility and ignored: the engine already reads digits correctly, so there is nothing to expand.
model string (enum) | null — Synthesis model: standard (default, preset voices) or premium (cloned voices). Both run on CosyVoice.
language string | null — Language code for multilingual synthesis (CosyVoice; defaults to the voice language).
effects string | null — Optional audio-effects chain applied after synthesis. A JSON-encoded string holding an array of effect descriptors, e.g. "[{\"type\": \"reverb\", \"room_size\": 0.5}]". Requires a plan with audio effects enabled. Not supported for streaming synthesis.
lexicon object | null — Optional pronunciation overrides applied to the engine text before synthesis (up to 200 entries; source words are matched whole-word, case-insensitively). Use it for abbreviations, brands and names the model would read incorrectly, e.g. `{ "ООО": "общество с ограниченной ответственностью" }`. Ignored for SSML requests (a replacement inside a tag would break the markup). Quota is counted on the original text.

Ответы

Код Описание Схема
200 Binary audio. Content-Type matches the requested format (mp3 → audio/mpeg, wav, ogg). string (binary)
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse

Voices

GET /v1/voices

List available voices and supported synthesis settings.

Публичный Swagger

Ответы

Код Описание Схема
200 OK array<VoiceDto>
GET /v1/voices/clone

List the caller's cloned voices.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK array<CloneVoiceResponse>
401 Missing or invalid API key. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
POST /v1/voices/clone

Create a cloned voice from one reference audio sample and its transcript.

Нужен API-ключ Swagger

Upload one clean audio sample of the speaker (wav/mp3/ogg/flac/m4a/aac, up to 10 MB) together with `prompt_text` — the exact transcript of the reference clip (CosyVoice zero-shot conditioning). The returned id is used as `voice` together with `model=premium` in `/v1/synthesize`. Set `consent=true` only after the speaker has explicitly agreed to voice cloning; the attestation version and expiry are stored with the clone. The service prepares the reference itself: the sample is denoised and normalized, converted to the model's 24 kHz mono, transcribed, and trimmed to a window of complete sentences (8-15 s) when the upload is longer. The stored transcript always matches the stored audio, so a `prompt_text` that drifted from the recording is corrected automatically. `clean` is kept for compatibility and no longer changes anything. After saving, the engine reads a short canary phrase with the new clone. A reference that conditions the engine poorly makes CosyVoice stop speaking before the text ends, so such a clone would return truncated audio for every long request. In that case the clone is removed and the request fails with 400 `clone_samples_invalid`, describing how far the canary got and how to fix the reference (use a clean 8-15 second recording of a single speaker whose transcript matches word for word).

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
name string —
prompt_text string —
samples array<string (binary)> —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
clean boolean —
consent boolean —

Ответы

Код Описание Схема
201 Created CloneVoiceResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
DELETE /v1/voices/clone/{id}

Delete a cloned voice (and its reference latents).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
GET /v1/voices/clone/{id}

Get one cloned voice by id.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK CloneVoiceResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
GET /v1/voices/{id}

Get one voice by id.

Публичный Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓ Voice id, e.g. preset_anna.

Ответы

Код Описание Схема
200 OK VoiceDto
404 Voice was not found. ErrorResponse

Transcription

POST /v1/transcribe

Start an asynchronous transcription job.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 25 MB / 15 min). Returns a job ID immediately. Poll `GET /v1/transcribe/{jobId}` for the result. For short files (≤ 3 min) use the synchronous `POST /v1/transcribe/sync`. For long files (up to 512 MB / 4 h) pass `long_form=true` — the file is split on VAD pauses and transcribed in chunks (Pro/Business plans).

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
diarization boolean —
webhookUrl string —
keyterms string —
clean boolean —
longForm boolean —

Ответы

Код Описание Схема
202 Accepted TranscriptionJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/transcribe/sync

Transcribe a short audio file synchronously.

Нужен API-ключ Swagger

Maximum 3 minutes. For longer files use `POST /v1/transcribe` (async) and poll the returned job ID.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
diarization boolean —
keyterms string —
clean boolean —

Ответы

Код Описание Схема
200 OK TranscriptionResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/transcribe/{jobId}

Poll a transcription job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK JobStatusResponse
404 Voice was not found. ErrorResponse
GET /v1/transcribe/{jobId}/subtitles

Download subtitles (VTT or SRT) for a completed transcription job.

Нужен API-ключ Swagger

Requires the job to be `completed`. Pass `format=vtt` (default) or `format=srt`. Optionally translate the captions with `target_language=en` and mark fast/unclear speech with `hot_marks=true`. Returns subtitle text, not JSON.

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓
format query string —
target_language query string —
hot_marks query boolean —

Ответы

Код Описание Схема
200 OK —
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
409 Conflict ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/transcribe/{jobId}/translate

Translate a completed transcription job's transcript.

Нужен API-ключ Swagger

Requires the job to be `completed`. The transcript is translated segment by segment (timestamps and speakers are preserved) and billed against the plan's monthly LLM token budget.

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Тело запроса application/json

Схема: TranslateTranscriptRequest · Обязательное: —

Поле Тип Обязательное Описание
target_language string — Target language code (e.g. `en`, `de`, `es`).

Ответы

Код Описание Схема
200 OK TranslateTranscriptResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/vad

Detect speech segments in an audio file (Silero VAD / turn detection).

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 25 MB / 15 min) and get the list of speech intervals. A turn-detection primitive and a pre-step before real-time streaming (`WS /v1/transcribe/stream`).

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —

Ответы

Код Описание Схема
200 OK VadResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse

Analysis

POST /v1/analyze

Start an asynchronous analysis job.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 25 MB / 15 min). Returns a job ID immediately. Poll `GET /v1/analyze/{jobId}` for the result. For short files (≤ 3 min) use the synchronous `POST /v1/analyze/sync`.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
diarization boolean —
webhookUrl string —
keyterms string —
clean boolean —

Ответы

Код Описание Схема
202 Accepted AnalysisJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/analyze/summarize

Produce an extractive summary of raw text (no audio upload).

Нужен API-ключ Swagger

Text-only operation: returns the summary plus the selected sentences in their original order. No audio upload.

Тело запроса application/json

Схема: SummarizeRequest · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to summarize. Required. Max 5000 characters.
language string | null — Optional source language hint (e.g. "ru").
max_sentences integer (int32) | null — Maximum sentences in the summary (1..10, default 3).

Ответы

Код Описание Схема
200 OK SummarizeResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/analyze/sync

Analyze a short audio file synchronously.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 10 MB / 3 min). Returns transcript, per-segment emotions, overall sentiment, keywords and entities. For longer files use `POST /v1/analyze` (async) and poll the returned job ID.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
diarization boolean —
emotions boolean —
keywords boolean —
entities boolean —
keyterms string —
clean boolean —

Ответы

Код Описание Схема
200 OK AnalysisResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/analyze/topics

Classify raw text into topic buckets (no audio upload).

Нужен API-ключ Swagger

Text-only operation: returns the most relevant topics with relevance scores. No audio upload.

Тело запроса application/json

Схема: AnalyzeTopicsRequest · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to classify. Required. Max 5000 characters.
language string | null — Optional source language hint (e.g. "ru").

Ответы

Код Описание Схема
200 OK AnalyzeTopicsResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/analyze/{jobId}

Poll an analysis job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK AnalysisJobStatusResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/detect-language

Detect the language of a text snippet (no audio upload).

Нужен API-ключ Swagger

Text-only operation: returns the detected language code and confidence. Useful as a pre-step before choosing a voice or forcing a transcription language.

Тело запроса application/json

Схема: LanguageDetectionRequest · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to analyze. Required. Max 5000 characters.

Ответы

Код Описание Схема
200 OK LanguageDetectionResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/moderate

Flag profanity, insults and hate speech in raw text (no audio upload).

Нужен API-ключ Swagger

Text-only operation: returns whether the text was flagged, an overall score (0..1) and the matched terms with their categories. No audio upload.

Тело запроса application/json

Схема: ModerateRequest · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to check. Required. Max 5000 characters.
language string | null — Optional source language hint (e.g. "ru").

Ответы

Код Описание Схема
200 OK ModerateResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/redact

Redact PII (names, phones, emails, ...) from raw text.

Нужен API-ключ Swagger

Text-only operation: returns the masked text plus the redacted spans with their character offsets. No audio upload.

Тело запроса application/json

Схема: RedactRequest · Обязательное: —

Поле Тип Обязательное Описание
text string ✓ Text to redact. Required. Max 5000 characters.
language string | null — Optional source language hint (e.g. "ru"). Affects NER.

Ответы

Код Описание Схема
200 OK RedactResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse

Recordings

GET /v1/recordings

List the client's recordings, newest first.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
source query string —
tag query string —
folder query string —
limit query integer (int32) —
offset query integer (int32) —

Ответы

Код Описание Схема
200 OK RecordingsListResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
GET /v1/recordings/folders

Distinct folders across the client's recordings (for facets/autocomplete).

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK RecordingFacetsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
POST /v1/recordings/from-link

Start a diarized transcription from a public audio URL (Link channel, 7.9). The server downloads the file; the recording is tagged with source "link".

Нужен API-ключ Swagger

Тело запроса application/json

Схема: LinkRecordingRequest · Обязательное: —

Поле Тип Обязательное Описание
url string — Public http(s) URL of an audio file (wav, mp3, ogg, flac).
language string | null — Optional ISO language code hint (e.g. "ru", "en").

Ответы

Код Описание Схема
202 Accepted TranscriptionJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
GET /v1/recordings/tags

Distinct tags across the client's recordings (for facets/autocomplete).

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK RecordingFacetsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
DELETE /v1/recordings/{id}

Delete a recording and its stored audio.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}

Fetch a single recording's metadata.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK RecordingResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
PATCH /v1/recordings/{id}

Update a recording's tags and/or folder. Fields are optional and follow PATCH semantics: `null` clears a field, an absent field is left untouched.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: object · Обязательное: —

Ответы

Код Описание Схема
200 OK RecordingResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/audio

Download a recording's stored audio.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK string (binary)
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/export

Export a recording's transcript (txt, md, srt, vtt, docx, pdf).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓
format query string —

Ответы

Код Описание Схема
200 OK string (binary)
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/recordings/{id}/push

Push a recording artefact (transcript, protocol or QA report) to a connected CRM/SED. Idempotent per (recording, provider, kind).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: RecordingCrmPushRequest · Обязательное: —

Поле Тип Обязательное Описание
provider string — Target provider: `bitrix24` | `amocrm` | `s1`.
kind string — Artefact to push: `transcript` | `protocol` | `qa`.
deal_id string | null — Optional CRM deal/lead id to attach the artefact to.
phone string | null — Optional contact phone, used to resolve the deal when no id is given.
email string | null — Optional contact e-mail, used to resolve the deal when no id is given.
source_url string | null — Optional link placed in the pushed comment (e.g. a share URL).

Ответы

Код Описание Схема
200 OK RecordingCrmPushResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/pushes

List the CRM/SED pushes recorded for a recording.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK RecordingCrmPushesResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/recordings/{id}/pushes/{provider}/{kind}/retry

Retry a previous push, reusing the target stored with it.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓
provider path string ✓
kind path string ✓

Ответы

Код Описание Схема
200 OK RecordingCrmPushResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/share

List the active share links for a recording.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK array<RecordingShareResponse>
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/recordings/{id}/share

Create a public share link for a recording.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: ShareCreateRequest · Обязательное: —

Поле Тип Обязательное Описание
expires_in_seconds integer (int32) | null — Share lifetime in seconds (optional, defaults to 7 days).
password string | null — Optional password to protect the share link.

Ответы

Код Описание Схема
200 OK RecordingShareResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
DELETE /v1/recordings/{id}/share/{token}

Revoke a share link.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓
token path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/speakers

Fetch a recording's speakers, timeline and conversation metrics.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK RecordingSpeakersResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
PATCH /v1/recordings/{id}/speakers/{speakerId}

Rename a speaker or assign a role (operator/client/participant).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓
speakerId path string ✓

Тело запроса application/json

Схема: object · Обязательное: —

Ответы

Код Описание Схема
200 OK RecordingSpeakerResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/recordings/{id}/transcript

Fetch a recording's transcript.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK TranscriptionResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse

Call QA

GET /v1/qa/analytics

Aggregated QA analytics for the caller over a time window.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
days query integer (int32) —

Ответы

Код Описание Схема
200 OK QaAnalyticsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
POST /v1/qa/evaluate

Evaluate a recording against a QA checklist.

Нужен API-ключ Swagger

Each checklist item has an `id`, a `kind` (`required` or `forbidden`), a `description` and an optional `weight`. The response returns a per-item verdict (`passed|failed|partial`) with a reason, an evidence quote with timestamps, and a weighted 0..100 score.

Тело запроса application/json

Схема: QaEvaluateRequest · Обязательное: —

Поле Тип Обязательное Описание
recording_id string — Recording id to evaluate (32 hex chars).
checklist array<QaChecklistItemRequest> — Checklist to evaluate against.
webhook_url string | null — Optional webhook URL. When the evaluation is flagged as a violation, a `qa.violation` event is POSTed here.

Ответы

Код Описание Схема
200 OK QaEvaluationResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/qa/evaluations

List the caller's persisted QA evaluations, newest first.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
limit query integer (int32) —
offset query integer (int32) —

Ответы

Код Описание Схема
200 OK QaEvaluationsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
GET /v1/qa/evaluations/export

Export the caller's QA evaluations as CSV or JSON for CRM import.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
format query string —
days query integer (int32) —

Ответы

Код Описание Схема
200 OK —
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse

Meetings

GET /v1/meetings/calendar

List the calendar events stored by the pre-trigger pass (roadmap: calendar).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
limit query integer (int32) —

Ответы

Код Описание Схема
200 OK CalendarEventsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
POST /v1/meetings/calendar/sync

Read the client's calendar now instead of waiting for the next pass.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK object
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/meetings/events

List automatically captured meetings (roadmap: meeting autocapture).

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
limit query integer (int32) —

Ответы

Код Описание Схема
200 OK MeetingEventsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
GET /v1/meetings/events/{id}

Fetch one captured meeting.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK MeetingEventResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/meetings/events/{id}/calendar

Write the meeting's protocol into its calendar event on demand.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK CalendarWritebackResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/meetings/events/{id}/retry

Retry a captured meeting: reset its budget and make it due now.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK MeetingEventResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
PUT /v1/meetings/events/{id}/target

Point a captured meeting at a CRM target. A provider webhook has no deal id, so this is how an automation attaches the protocol to a deal.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: MeetingEventTargetRequest · Обязательное: —

Поле Тип Обязательное Описание
deal_id string | null —
phone string | null —
email string | null —

Ответы

Код Описание Схема
200 OK MeetingEventResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/meetings/protocol

Generate a meeting protocol from a recording's transcript.

Нужен API-ключ Swagger

The `template` tailors the extraction to a meeting type (`custom`, `standup`, `demo`, `interview`, `retro`, `one_on_one`). The response includes the protocol fields, a Markdown rendering and the LLM model used.

Тело запроса application/json

Схема: MeetingProtocolRequest · Обязательное: —

Поле Тип Обязательное Описание
recording_id string — Recording id to summarise (32 hex chars).
template string | null — Protocol template: `custom` | `standup` | `demo` | `interview` | `retro` | `one_on_one`. Defaults to `custom`.
webhook_url string | null — Optional webhook URL. When set, a `meeting.completed` event is enqueued once the protocol has been generated and persisted.

Ответы

Код Описание Схема
200 OK MeetingProtocolResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/meetings/protocol/custom

Generate a protocol against a client-defined schema (custom template). The structure comes either inline or from a saved template.

Нужен API-ключ Swagger

Тело запроса application/json

Схема: CustomProtocolRequest · Обязательное: —

Поле Тип Обязательное Описание
recording_id string — Recording id to summarise (32 hex chars).
template_id string | null — Id of a saved template to use instead of an inline schema.
schema object | null — Inline template definition: `{ "title": "…", "sections": [ { "key": "summary", "title": "Итог", "type": "text" } ] }`. Ignored when RussianTts.Api.Contracts.CustomProtocolRequest.TemplateId is set.
webhook_url string | null — Optional webhook URL for the `meeting.completed` event.

Ответы

Код Описание Схема
200 OK CustomProtocolResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/meetings/protocols

List the client's persisted meeting protocols, newest first.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
limit query integer (int32) —

Ответы

Код Описание Схема
200 OK MeetingProtocolsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
GET /v1/meetings/protocols/{id}

Fetch one persisted meeting protocol.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK MeetingProtocolSummaryResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
PUT /v1/meetings/protocols/{id}

Edit a protocol's Markdown; an edit returns it to draft.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: UpdateMeetingProtocolRequest · Обязательное: —

Поле Тип Обязательное Описание
markdown string —

Ответы

Код Описание Схема
200 OK MeetingProtocolSummaryResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/meetings/protocols/{id}/approve

Approve a draft protocol for CRM/SED delivery.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
200 OK MeetingProtocolSummaryResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/meetings/protocols/{id}/export

Export a meeting protocol as Markdown, DOCX or PDF.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓
format query string —

Ответы

Код Описание Схема
200 OK string (binary)
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
GET /v1/meetings/templates

List the client's saved protocol templates.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK ProtocolTemplatesResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
POST /v1/meetings/templates

Create a reusable protocol template.

Нужен API-ключ Swagger

Тело запроса application/json

Схема: ProtocolTemplateRequest · Обязательное: —

Поле Тип Обязательное Описание
name string — Human-readable template name.
schema object | null — Template definition (see `POST /v1/meetings/protocol/custom`).

Ответы

Код Описание Схема
200 OK ProtocolTemplateResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
DELETE /v1/meetings/templates/{id}

Delete a saved protocol template.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
PUT /v1/meetings/templates/{id}

Update a saved protocol template.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Тело запроса application/json

Схема: ProtocolTemplateRequest · Обязательное: —

Поле Тип Обязательное Описание
name string — Human-readable template name.
schema object | null — Template definition (see `POST /v1/meetings/protocol/custom`).

Ответы

Код Описание Схема
200 OK ProtocolTemplateResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse

Integrations

GET /v1/integrations/connections

List the client's external connections (active and revoked).

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK IntegrationConnectionsResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
POST /v1/integrations/connections

Connect (or re-connect) an external system. The secret is encrypted at rest and never returned.

Нужен API-ключ Swagger

Тело запроса application/json

Схема: ConnectIntegrationRequest · Обязательное: —

Поле Тип Обязательное Описание
provider string — Provider id: `bitrix24` | `amocrm` | `s1`.
display_name string | null — Optional label shown in the cabinet (e.g. the portal host).
base_url string | null — Optional tenant root URL (portal/instance).
secret string — Credential: incoming-webhook URL or access token. Never echoed back.
refresh_token string | null — Optional OAuth refresh token.
expires_at_utc string (date-time) | null — Optional credential expiry.
scopes string | null — Optional granted scopes, for diagnostics.

Ответы

Код Описание Схема
200 OK IntegrationConnectionResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
DELETE /v1/integrations/connections/{id}

Revoke a connection.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
id path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/integrations/zoom/webhook

Provider webhook (Zoom). Anonymous but signature-verified: the provider has no API key, and Zoom retries on non-2xx, so unknown events still answer 200.

Публичный Swagger

Ответы

Код Описание Схема
200 OK —
POST /v1/integrations/{provider}/authorize

Start an interactive OAuth handshake (roadmap: meeting autocapture). Meeting providers require `consent = true`.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
provider path string ✓

Тело запроса application/json

Схема: OAuthAuthorizeRequest · Обязательное: —

Поле Тип Обязательное Описание
consent boolean — Required for meeting providers (Zoom): confirms the client is allowed to record and process the meetings being pulled in.

Ответы

Код Описание Схема
200 OK OAuthAuthorizeResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
GET /v1/integrations/{provider}/callback

OAuth redirect target. Anonymous: the signed `state` proves the flow was started by us, and the browser comes from the provider.

Публичный Swagger

Параметры

Имя Где Тип Обязательный Описание
provider path string ✓
code query string —
state query string —
error query string —

Ответы

Код Описание Схема
200 OK —

Audio effects

POST /v1/audio/effects

Start an asynchronous audio-effects job.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 50 MB) plus an `effects` JSON array and an optional `output_format` (wav | mp3 | ogg, default wav). Returns a job ID immediately. Example `effects`: [ {"type": "reverb", "room_size": 0.5, "wet_level": 0.4}, {"type": "compressor", "threshold_db": -20, "ratio": 4}, {"type": "eq", "bands": [{"freq": 8000, "gain_db": 6, "q": 1.0}]} ]

Параметры

Имя Где Тип Обязательный Описание
webhookUrl query string —

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
effects string —
output_format string —

Ответы

Код Описание Схема
202 Accepted AudioEffectsJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/audio/effects/{jobId}

Poll an audio-effects job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK AudioEffectsJobStatusResponse
404 Voice was not found. ErrorResponse
GET /v1/audio/effects/{jobId}/audio

Download the produced audio for a completed audio-effects job.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK —
404 Voice was not found. ErrorResponse
409 Conflict ErrorResponse

Audio cleaning

POST /v1/audio/clean

Start an asynchronous audio-cleaning job.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 50 MB) plus optional `options` JSON and an optional `output_format` (wav | mp3 | ogg, default wav). Returns a job ID immediately. With no `options` the one-click preset is applied: moderate denoise + peak normalization. {"denoise": {"strength": 0.8, "stationary": true}, "normalize": {"target_db": -1.0}, "high_pass": 80, "low_pass": 12000}

Параметры

Имя Где Тип Обязательный Описание
webhookUrl query string —

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
options string —
output_format string —

Ответы

Код Описание Схема
202 Accepted AudioCleaningJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/audio/clean/{jobId}

Poll an audio-cleaning job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK AudioCleaningJobStatusResponse
404 Voice was not found. ErrorResponse
GET /v1/audio/clean/{jobId}/audio

Download the cleaned audio for a completed audio-cleaning job.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK —
404 Voice was not found. ErrorResponse
409 Conflict ErrorResponse

Video effects

POST /v1/video/effects

Start an asynchronous video-effects job.

Нужен API-ключ Swagger

Upload a video file (mp4/webm up to the deployment limit) plus an `effects` JSON array, a `mode` (mux | audio) and an optional `output_format` (mp4 | webm for mux, wav | mp3 | ogg for audio). For `mode=mux` an optional `audio` file is applied and muxed into the video; without it the video's own audio track is processed.

Параметры

Имя Где Тип Обязательный Описание
webhookUrl query string —

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
video string (binary) —
audio string (binary) —
effects string —
mode string —
output_format string —

Ответы

Код Описание Схема
202 Accepted VideoEffectsJobResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/video/effects/{jobId}

Poll a video-effects job by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK VideoEffectsJobStatusResponse
404 Voice was not found. ErrorResponse
GET /v1/video/effects/{jobId}/file

Download the produced artifact for a completed video-effects job.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
jobId path string ✓

Ответы

Код Описание Схема
200 OK —
404 Voice was not found. ErrorResponse
409 Conflict ErrorResponse

Voice ID

POST /v1/voice-id

Analyze a voice recording and return a voice passport.

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 25 MB / 3 min). Returns language, gender, age group, emotional background, a speaker embedding (fingerprint) and an AI-vs-human probability (beta). The AI-vs-human probability is only present when the anti-spoofing detector is configured; otherwise it is null and `fake_detection_available` is false.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —

Ответы

Код Описание Схема
200 OK VoiceIdResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/voice-id/enroll

Enroll an audio clip as a reusable voice profile (voiceprint).

Нужен API-ключ Swagger

Set `consent=true` after obtaining the speaker's explicit consent.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
name string —
consent boolean —

Ответы

Код Описание Схема
200 OK EnrollVoiceProfileResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/voice-id/identify

Identify the closest matching profile for an audio clip (1:N).

Нужен API-ключ Swagger

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
profile_ids string —

Ответы

Код Описание Схема
200 OK VoiceIdentificationResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
GET /v1/voice-id/profiles

List the caller's enrolled voice profiles.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK array<VoiceProfileResponse>
401 Missing or invalid API key. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
DELETE /v1/voice-id/profiles/{profileId}

Delete an enrolled voice profile by id.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
profileId path string ✓

Ответы

Код Описание Схема
204 No Content —
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
POST /v1/voice-id/verify

Verify an audio clip against an enrolled profile (1:1).

Нужен API-ключ Swagger

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
profile_id string —

Ответы

Код Описание Схема
200 OK VoiceVerificationResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
404 Voice was not found. ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse

Batch

POST /v1/batch/analyze

Queue a batch of audio analysis tasks.

Нужен API-ключ Swagger

Up to 10 items, each with inline base64 audio. Returns a batch ID immediately; poll `GET /v1/batch/{batchId}` for per-item analysis.

Тело запроса application/json

Схема: BatchAnalyzeRequest · Обязательное: —

Поле Тип Обязательное Описание
items array<BatchAnalyzeItemDto> ✓ Up to 10 analysis requests. Audio is inline base64.

Ответы

Код Описание Схема
202 Accepted BatchAcceptedResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
POST /v1/batch/synthesize

Queue a batch of synthesis tasks.

Нужен API-ключ Swagger

Up to 20 items. Returns a batch ID immediately; poll `GET /v1/batch/{batchId}` for per-item audio (base64).

Тело запроса application/json

Схема: BatchSynthesizeRequest · Обязательное: —

Поле Тип Обязательное Описание
items array<SynthesizeRequestDto> ✓ Up to 20 synthesis requests. Each item has the same shape as POST /v1/synthesize.

Ответы

Код Описание Схема
202 Accepted BatchAcceptedResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse
200 Binary audio. Content-Type matches the requested format (mp3 → audio/mpeg, wav, ogg). string (binary)
GET /v1/batch/{batchId}

Poll a batch by ID.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
batchId path string ✓

Ответы

Код Описание Схема
200 OK BatchStatusResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse

Billing

GET /v1/billing/balance

Current balance, plan and a page of transactions for the authenticated key.

Нужен API-ключ Swagger

Параметры

Имя Где Тип Обязательный Описание
page query integer (int32) —
pageSize query integer (int32) —

Ответы

Код Описание Схема
200 OK BillingBalanceResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/billing/topup

Create a card top-up payment for the authenticated key.

Нужен API-ключ Swagger

Тело запроса application/json

Схема: TopUpRequest · Обязательное: —

Поле Тип Обязательное Описание
amount_rub number (double) — Top-up amount in rubles, from 100 to 10000.

Ответы

Код Описание Схема
200 OK TopUpResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
GET /v1/usage

Current monthly character usage for the authenticated key.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK UsageResponse
401 Missing or invalid API key. ErrorResponse

Evaluation

POST /v1/eval

Evaluate speech quality against a reference text (WER).

Нужен API-ключ Swagger

Upload an audio file (wav, mp3, ogg, flac up to 25 MB / 3 min) and the text it should contain. The clip is transcribed and the transcript is aligned to the reference with a word error rate. Set `normalize=false` to keep case and punctuation in the comparison. Transcription seconds are billed against the plan's monthly quota.

Тело запроса multipart/form-data

Схема: object · Обязательное: —

Поле Тип Обязательное Описание
audio string (binary) —
reference string —
language string (enum) — Optional language code (ISO 639-1). Omit to auto-detect. Supported values are language codes (ISO 639-1).
normalize boolean —

Ответы

Код Описание Схема
200 OK EvaluationResponse
400 Invalid request. Body is RFC 7807 with extension field `code`. ErrorResponse
401 Missing or invalid API key. ErrorResponse
403 Plan does not allow this operation (streaming or premium engine). ErrorResponse
413 Text exceeds the plan or request character limit. ErrorResponse
429 Monthly quota exceeded, the request rate limit was hit, or the synthesis queue is saturated. See Retry-After. ErrorResponse
503 The synthesis engine is unavailable, or the premium engine was requested but is not enabled. ErrorResponse

Webhooks

GET /v1/webhooks/secret

Get (or lazily create) the webhook signing secret.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK WebhookSecretResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse
POST /v1/webhooks/secret/rotate

Rotate the webhook signing secret. The old secret stops working immediately.

Нужен API-ключ Swagger

Ответы

Код Описание Схема
200 OK WebhookSecretResponse
401 Missing or invalid API key. ErrorResponse
404 Voice was not found. ErrorResponse