API429 / ElevenLabs

ElevenLabs API через API429: голос, MP3 и первый синтез

Подготовьте синтез речи с eleven_v4: подтвердите доступный voice ID, проверьте единицу оплаты по символам и сохраните непустой MP3 из ответа.

Модели и текущие ставки API429

Ниже — точные речевые ID выбранного семейства. Публичный каталог и список GET /v1/models для вашего ключа решают разные задачи: опубликованная запись не подтверждает доступ любого аккаунта. Не заменяйте дефисы, точки или версию по сходству названий.

Модель / точный IDAPI429: USD и единицы оплаты
Eleven V4eleven_v4
$0.03000000 / 1 000 символов TTS

Дата данных каталога: . Ставки показываются с условиями из каталога; отсутствующая строка не означает бесплатный запрос.

Подробные тарифы семейства и калькулятор · Полный каталог

Текст для озвучки и подтверждённый голос

Первый тест речи начните с двух коротких предложений, содержащих обычные слова, число и паузу. Такой фрагмент позволяет услышать произношение и проверить, пригоден ли результат для вашего сценария. Запись eleven_v4 выбирается буквально из API429; она не обещает все голоса и функции, описанные на сайте ElevenLabs. До платной генерации получите подтверждённый для этого подключения идентификатор голоса и задайте API429_VOICE_ID в окружении. Не подставляйте случайный голос из примера производителя и не рассчитывайте на голос по умолчанию.

Метод речи и проверка возвращаемого файла

Для этой страницы используется POST /v1/audio/speech с текстом в input, явным voice и форматом mp3. Ответом является аудиофайл, поэтому извлечение текстового сообщения и причины его завершения к нему не применяется. Python и JavaScript проверяют успешный HTTP-ответ, MIME audio/mpeg либо audio/mp3 и наличие байтов перед сохранением. Прослушайте сохранённый фрагмент вручную: правильный MIME не доказывает правильное произношение или отсутствие пауз. Если запрос завершился по таймауту, сначала выясните состояние операции и только затем решайте вопрос о повторе.

Символы, нативные права и отдельный тарифный обзор

Бюджет синтеза оценивается по метрике символов, опубликованной для точного ID в каталоге API429. Не используйте текстовую цену за токены и не переводите длительность записи в стоимость без подтверждённого правила. Документация ElevenLabs описывает собственные модели, кодировки и права на голоса; эти сведения не доказывают доступность функций через API429. Нужные языки, произношение имён и условия использования голоса проверяйте отдельно для своего проекта. Подробное сопоставление публичных тарифов сохраняется в существующем руководстве ElevenLabs, куда ведёт ссылка ниже.

Доступ ключа и границы примера

Сначала создайте ключ в личном кабинете API429, затем запросите список моделей с этим ключом. Публичный каталог помогает выбрать запись, но не подтверждает права конкретного аккаунта. Сохраните точный идентификатор без изменения регистра, дефисов и точек. Ключ храните в окружении серверного приложения; не включайте его в браузерный код, журналы запросов или примеры для коллег. Успешное чтение списка ещё не проверяет выполнение платной генерации. Начните с небольшого искусственного задания, результат которого можно оценить вручную, и только после проверки переносите запрос на рабочие данные.

Как читать текущие ставки

Таблица получает ставки из свежего публичного каталога API429. Единица оплаты и условие строки являются частью цены: нельзя переносить число из одной строки на другой режим запроса. При отсутствии свежей однозначной записи числовая ставка скрывается. Это означает недостаток подтверждения, а не бесплатное использование. Перед запуском серии запросов сверяйте параметры, доступ ключа и бюджет. Сохраняйте идентификатор модели, размер задания и результат проверки в собственном приложении. Повтор после ошибки может создать новую платную операцию, поэтому решение о повторе должно учитывать уже полученный ответ и состояние задачи.

Выберите следующий шаг подключения

  • Тарифы ElevenLabs

    Отдельное руководство по единицам оплаты и сопоставлению опубликованных тарифов.

  • Каталог моделей

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

  • Начало работы с API429

    Создайте ключ и проверьте клиентский контракт перед первым платным запросом.

Первый синтез речи: curl, Python, JavaScript

  1. Создайте ключ в личном кабинете API429 и пополните баланс: картой РФ, по счёту для юрлиц или в USDT/TON. Для первых запросов можно получить $10 за подписку на Telegram-канал.
  2. С тем же ключом проверьте точный ID eleven_v4 в GET https://gateway.api429.com/v1/models.
  3. Задайте API429_API_KEY в окружении сервера и выполните небольшой запрос. Генерация платная; пример не выполняет автоматических повторов.
  4. Проверьте HTTP-статус, MIME MP3 и непустое тело ответа, затем прослушайте сохранённый файл. Таймаут не доказывает, что операция не оплачена.

Запрос использует POST /v1/audio/speech, явный голос и response_format=mp3. Задайте подтверждённый API429_VOICE_ID для Python и JavaScript; замените YOUR_VOICE_ID в curl. Голос по умолчанию не предполагается. Python и JavaScript проверяют доступ ключа, MIME аудио и непустое тело; для curl проверьте список и ответ отдельно перед сохранением MP3.

curl

curl --fail-with-body https://gateway.api429.com/v1/audio/speech \
  -H "Authorization: Bearer $API429_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"eleven_v4","input":"Добро пожаловать. Проверьте звучание этого короткого примера перед рабочей озвучкой.","voice":"YOUR_VOICE_ID","response_format":"mp3"}' \
  --output speech.mp3

Python 3

import base64
import json
import os
import urllib.request
from pathlib import Path

key = os.environ["API429_API_KEY"]
base = "https://gateway.api429.com/v1"
headers = {"Authorization": "Bearer " + key, "Content-Type": "application/json"}
model = "eleven_v4"
with urllib.request.urlopen(urllib.request.Request(base + "/models", headers=headers), timeout=30) as response:
    available = {item["id"] for item in json.load(response)["data"]}
if model not in available:
    raise ValueError("Model unavailable to this key")
payload = json.loads("{\"model\":\"eleven_v4\",\"input\":\"Добро пожаловать. Проверьте звучание этого короткого примера перед рабочей озвучкой.\",\"voice\":\"YOUR_VOICE_ID\",\"response_format\":\"mp3\"}")
payload["voice"] = os.environ["API429_VOICE_ID"]
if not payload["voice"] or payload["voice"] == "YOUR_VOICE_ID":
    raise ValueError("Set a confirmed voice ID")
request = urllib.request.Request(base + "/audio/speech",
    data=json.dumps(payload).encode("utf-8"), headers=headers, method="POST")
with urllib.request.urlopen(request, timeout=180) as response:
    content_type = response.headers.get("Content-Type", "").split(";")[0].strip().lower()
    if content_type not in ("audio/mpeg", "audio/mp3"):
        raise ValueError("Expected MP3 MIME; inspect response before saving")
    audio = response.read()
if not audio:
    raise ValueError("Empty audio")
Path("speech.mp3").write_bytes(audio)

JavaScript: Node.js 18+

import { writeFile } from "node:fs/promises";
const key = process.env.API429_API_KEY;
if (!key) throw new Error("Set API429_API_KEY");
const base = "https://gateway.api429.com/v1";
const headers = { Authorization: "Bearer " + key, "Content-Type": "application/json" };
const model = "eleven_v4";
const available = await fetch(base + "/models", { headers, signal: AbortSignal.timeout(30000) });
if (!available.ok) throw new Error("Models HTTP " + available.status);
if (!(await available.json()).data.some(item => item.id === model)) throw new Error("Model unavailable to this key");
const payload = {"model":"eleven_v4","input":"Добро пожаловать. Проверьте звучание этого короткого примера перед рабочей озвучкой.","voice":"YOUR_VOICE_ID","response_format":"mp3"};
payload.voice = process.env.API429_VOICE_ID;
if (!payload.voice || payload.voice === "YOUR_VOICE_ID") throw new Error("Set a confirmed voice ID");
const response = await fetch(base + "/audio/speech", {
 method: "POST", headers, body: JSON.stringify(payload), signal: AbortSignal.timeout(180000)
});
if (!response.ok) throw new Error("Generation HTTP " + response.status);
if (!["audio/mpeg", "audio/mp3"].includes((response.headers.get("content-type") || "").split(";")[0].trim().toLowerCase())) throw new Error("Expected MP3 MIME");
const bytes = Buffer.from(await response.arrayBuffer());
if (!bytes.length) throw new Error("Empty audio");
await writeFile("speech.mp3", bytes);

Примеры не подтверждают доступ вашего ключа; проверьте точный ID перед платным запросом. API-контракт · Настройка совместимого клиента · Вопросы и поддержка

Оплата и тест $10

  • Карта российского банка. Пополнение баланса в личном кабинете.
  • Счёт для юрлиц. Безналичная оплата с закрывающими документами.
  • USDT и TON. Пополнение криптовалютой.

Тест $10. Подпишитесь на наш Telegram-канал через бота — получите $10 на баланс для первых запросов. Получить $10 в боте

Частые вопросы

Где взять voice ID для примера?

Используйте только идентификатор, доступ которого подтверждён для вашего подключения API429. Установите API429_VOICE_ID перед запуском Python или JavaScript; значение YOUR_VOICE_ID в curl необходимо заменить вручную.

Можно ли оставить голос пустым?

Рабочий пример требует явный подтверждённый голос. Он не обещает голос по умолчанию и не переносит доступ к голосам из нативного аккаунта производителя.

Как убедиться, что сохранился MP3?

Проверьте HTTP-статус, MIME аудио и непустой ответ, затем прослушайте файл. Текст ошибки в теле нельзя сохранять как успешную озвучку только из-за расширения имени.

Где сравнивать стоимость озвучки?

Используйте существующее руководство по тарифам ElevenLabs и текущую строку символов API429. Нативная подписка, права на голос и баланс API429 рассматриваются отдельно.

Источники и редакционная проверка

Документация производителей объясняет семейство и правила их собственных API. Точные ID, ставки и контракт API429 проверяются по его каталогу и документации отдельно.

Проверено . Для подключения создайте аккаунт API429 и следуйте инструкции начала работы.

Telegram