GET /voices
Голоса LumVoice, созданные владельцем ключа, в любом статусе — включая те, что ещё клонируются или не прошли модерацию.
Поправки к спецификации · 1
Пагинация лежит не в
data.metaЧетыре описания параметра
per_pageобещают метаданные пагинации вdata.meta. Такого ключа нет ни в одном ответе публичного API: страница приходит плоско —data.items[]плюсdata.current_page,data.last_page,data.per_page,data.total. Код, читающийdata.meta.total, получитundefined.
Для генерации годятся только голоса со voice_status: ready; идентификатор такого
голоса подставляется в config.tts_settings.voice_id шаблона или в config_override
заказа.
Публичный API — read-only: создать или изменить голос по ключу нельзя.
Требуемое право ключа: voices.read.
На этой странице(3)
Параметры
Поля ввода живут прямо в строке запроса: подставьте значение — и получите готовый URL. Ниже — тип, обязательность и допустимые значения каждого параметра.
- stringв queryнеобязательный
Стадия жизненного цикла клонированного голоса. Готов к использованию только
ready.Допустимые значения - stringв queryнеобязательный
Статус публикации голоса в общем каталоге.
Допустимые значения - stringв queryнеобязательный
Фильтр по языку, ISO-639-1 (
ru,en,de, …). - stringв queryнеобязательный
Поиск по названию (
display_name) и описанию голоса. - stringв queryнеобязательный
Поле сортировки. По умолчанию
created_at.Допустимые значения - stringв queryнеобязательный
Направление сортировки.
Допустимые значения - integerв queryнеобязательный
Сколько записей вернуть на странице. Метаданные пагинации лежат рядом с
items:current_page,last_page,per_page,total.
Возможные ответы
200Список голосов владельца ключа
Список голосов владельца ключа
{
"success": true,
"message": "Success",
"data": {
"items": [
{
"id": "Qm4Bx8Yt1WvNc6Zs",
"display_name": "Marcus Draft (EN)",
"description": null,
"gender": "male",
"accent": null,
"default_language_code": null,
"voice_status": "cloning",
"publication_status": "private",
"allow_usage_in_orders": true,
"preview_generated_at": null,
"created_at": "2026-07-16T18:00:00+00:00",
"updated_at": "2026-07-17T08:30:00+00:00",
"tags": [],
"languages": [
{
"id": 2,
"language_code": "en",
"status": "cloning",
"reference_duration_ms": 32000,
"model_version": 1,
"failure_reason": null,
"clone_started_at": "2026-07-17T08:30:00+00:00",
"clone_completed_at": null,
"updated_at": "2026-07-17T08:30:00+00:00"
}
],
"preview_urls": {
"en": null
}
},
{
"id": "k3nH9vRt2Lw7ZpXb",
"display_name": "Ava Narrator (EN)",
"description": "Warm, measured narration voice cloned from a 45-second studio reference — ideal for long-form audiobook and e-learning narration.",
"gender": "female",
"accent": "us",
"default_language_code": "en",
"voice_status": "ready",
"publication_status": "public",
"allow_usage_in_orders": true,
"preview_generated_at": "2026-06-02T09:15:00+00:00",
"created_at": "2026-06-01T10:00:00+00:00",
"updated_at": "2026-06-02T09:15:00+00:00",
"tags": [
{
"id": 8,
"code": "narration",
"name": "Narration",
"description": null,
"color": null,
"sort_order": 80
},
{
"id": 4,
"code": "calm",
"name": "Calm",
"description": null,
"color": null,
"sort_order": 40
}
],
"languages": [
{
"id": 1,
"language_code": "en",
"status": "ready",
"reference_duration_ms": 47000,
"model_version": 1,
"failure_reason": null,
"clone_started_at": "2026-06-01T10:05:00+00:00",
"clone_completed_at": "2026-06-01T10:22:00+00:00",
"updated_at": "2026-06-01T10:22:00+00:00"
}
],
"preview_urls": {
"en": "https://s3.lumean.app/lumean/storage/lumvoice/voices/k3nH9vRt2Lw7ZpXb/previews/en.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE1234567%2F20260602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260602T091500Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3f9c2b0a1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a"
}
}
],
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 2
}
}Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь true, а ошибка приходит телом другой формы, где этого поля может не быть вовсе.
Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются.
dataобязательноеВаши голоса LumVoice — и собственные, и добавленные в библиотеку.
LumVoiceListLumVoiceList
Ваши голоса LumVoice — и собственные, и добавленные в библиотеку.
itemsобязательноеЗаписи текущей страницы в порядке сортировки списка.
array<LumVoice>LumVoice
Записи текущей страницы в порядке сортировки списка.
UUID голоса. Кладётся в config.voice_id шаблона; для путей /voices/{voice} — он же.
Название голоса для показа.
Описание голоса от автора: тембр, манера, сценарии использования.
Пол голоса.
Акцент или региональный вариант произношения.
Язык, на котором голос звучит по умолчанию, ISO-639-1.
Состояние клонирования голоса. Использовать в заказах можно только полностью готовый.
Стадия публикации: черновик, на модерации, опубликован. Определяет, виден ли голос в общем каталоге GET /voices/public.
Разрешил ли автор использовать голос другим. Без этого флага голос не попадает в каталог GET /voices/public, а у тех, кто уже добавил его в свою библиотеку, запись становится недоступной.
Когда собраны демо-фрагменты, ISO 8601. null — превью ещё нет.
Когда голос создан, ISO 8601.
Когда голос последний раз менялся, ISO 8601.
languagesнеобязательноеЯзыки, на которые голос склонирован, с состоянием каждого клона. Заказ возможен только на готовом языке.
array<VoiceLanguage>VoiceLanguage
Языки, на которые голос склонирован, с состоянием каждого клона. Заказ возможен только на готовом языке.
Внутренний идентификатор языковой версии голоса.
Код языка, ISO-639-1. Он же — ключ в preview_urls.
Состояние клонирования для этого языка. Заказ принимается только на языке, где клон готов.
Длительность референсной записи в миллисекундах — на ней обучен клон.
Версия обученной модели. Растёт при переобучении голоса.
Почему клонирование не удалось. null, если сбоя не было.
Когда клонирование началось, ISO 8601.
Когда клонирование завершилось, ISO 8601. null — ещё идёт либо не удалось.
Когда языковая версия последний раз менялась, ISO 8601.
preview_urlsобязательноеДемо-фрагменты по языкам: ключ — код языка, значение — временная ссылка на аудио либо null, если превью для языка нет. Ссылки живут около минуты.
object
Демо-фрагменты по языкам: ключ — код языка, значение — временная ссылка на аудио либо null, если превью для языка нет. Ссылки живут около минуты.
Номер текущей страницы, с единицы.
Номер последней страницы. Обход списка закончен, когда current_page равен last_page.
Размер страницы, применённый сервером.
Сколько записей всего по фильтру.
401Невалидный или отсутствующий X-API-KEY
Невалидный или отсутствующий X-API-KEY
{
"success": false,
"message": "API key is missing. Provide it in the X-API-KEY header.",
"data": null
}Всегда false в ответах об ошибке.
Текст ошибки на языке ключа (задаётся заголовком X-Locale).
Всегда null, когда запрос отклонён до обработки.
403У ключа нет права voices.read
У ключа нет права voices.read
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Error overview.
422Ошибка валидации. Поля с ошибками перечислены в errors.
Ошибка валидации. Поля с ошибками перечислены в errors.
{
"message": "string",
"errors": {}
}Errors overview.
errorsобязательноеA detailed description of each field that failed validation.
object
A detailed description of each field that failed validation.
Рядом
Соседние операции
Скормить страницу ИИ
спека 0.0.1