API429 / eleven_v4

Eleven v4 API: settings, cost and integration

A practical Eleven v4 page for choosing a configuration and integrating the API. Published API429 rates, manufacturer specifications and client contract boundaries are presented separately. Start with a small control task and check the result before increasing volume.

Read in Russian

Published: · Updated:

Exact ID: eleven_v4. Check access for your key using GET /v1/models; a published model does not guarantee access for every account.

Prices and billing units

Direct request settingAPI429 price
Speech synthesis$0.03 / 1,000 characters

API429 catalog generated . The table shows direct request components; other general catalog metrics are not added here. Display prices are rounded to six decimal places; calculations use exact catalog rates. The calculator below follows the direct audio/speech request contract. Sources checked: Oct 24, 2026.

ElevenAPI: $0.08 per 1,000 characters, excluding taxes, fees and duties. Subscription quotas are accounted for separately. Pricing sources are listed below. Batch, cache and special modes are kept separate from the base comparison.

Speech budget by character count

API429$3
ElevenAPI$8
Difference for the selected volume62.5%API429 costs less for this component

Enter estimated billable characters, not minutes. The public schema does not establish API429’s character counting algorithm. Cache, tools, taxes, fees and repeated calls are excluded. RUB results use only your entered rate; this is not a bank quote.

Specifications and compatibility boundaries

  • ElevenLabs: more than 90 languages and a native limit of 10,000 characters per request. This is not an established API429 limit or an audio duration guarantee.
  • The native dialogue API recommends up to 2,000 total characters for reliable generation. Its text/voice pairs and constraints cannot be transferred to general audio/speech.
  • API429 requires model/input, allows voice/response_format and returns an audio stream. The public contract has no confirmed voice list, default voice or character counting algorithm.

Specification: ElevenLabs, checked Oct 24, 2026. These are not verified effective API429 limits. Check native manufacturer parameters and capabilities separately for the client method.

Published capabilities for this exact ID: chat text_to_speech . A missing field is not evidence of a prohibition, but it does not establish compatibility.

Choosing a speech model and checking the audio

ElevenLabs released Eleven v4 on September 28, 2026; a later announcement update date is not a new release. The exact native ID eleven_v4 matches the published API429 ID. The manufacturer describes emotional speech, more than ninety languages, preservation of voice characteristics and multiple speakers. Prepare short lines with the required intonation, numbers, abbreviations and proper names for evaluation. Listen to every result in full and record pronunciation errors, pauses and whether the pace is suitable. The number of supported languages does not guarantee equal quality across accents. Compare Turbo separately on the same text: its name and cost do not establish equal expressiveness. Do not apply advertised Turbo latency to ordinary v4 or present native inference time as the full API429 response time.

Characters, requests and actual duration

The API429 catalog publishes a rate per thousand tts_characters. The calculator accepts estimated billable characters per request and request count; audio minutes are not an input. Different languages, pauses and speaking speeds produce different durations for the same text. Do not treat the descriptive ten minutes on the manufacturer page as an exact result for every task. The public client contract does not define how Unicode, spaces, markup or audio tags are counted. The field therefore represents your estimate of future billable characters rather than a guarantee that Python string length matches the charge. Reconcile accounting on a small confirmed call before a large run. The native ElevenAPI price per thousand characters is shown separately; subscription packages, included quotas and the first month are not mixed into that rate. The manufacturer excludes taxes, fees and duties.

Specify a voice rather than guessing from the model

The audio/speech schema describes voice as an optional string but does not publish a confirmed default voice or complete allowed ID list for eleven_v4. This does not establish that the model always works successfully without voice. curl leaves a conspicuous YOUR_VOICE_ID: replace it with a voice confirmed for your key before running. Python and JavaScript require the API429_VOICE_ID environment variable and stop if it is missing or still a placeholder. Do not borrow a voice name from another SDK by analogy. Native cloning features do not establish a voice creation method in API429, and multiple manufacturer voices do not establish a dialogue format for this endpoint. Confirm the needed scenario and available settings with client documentation or support, then evaluate the control text using the selected voice.

Receiving audio and moving into automation

The shown method returns binary audio rather than JSON with choices or an image in base64. Check HTTP status and Content-Type first, then confirm that the body is nonempty and save bytes to a file. The examples request mp3, which appears in the client contract, without promising native sample rates or bitrates. Some high-quality ElevenLabs formats depend on subscription; those entitlements cannot be transferred to API429. In automation, separate text preparation, paid generation, listening and file placement. Split long text at meaningful boundaries while preserving the editorial task’s context; this does not establish a specific gateway maximum. Do not retry blindly after a timeout: a missing response does not prove there was no charge. For a queue, retain your task ID, source text, selected voice and saved-result state. The native dialogue endpoint and its two-thousand-character recommendation concern a different contract and cannot replace checking audio/speech. Define in advance who reviews content, where the original response is saved and how retry decisions are recorded. This separates technically receiving a file from determining that it is ready to use.

Public model observations

Over the last 24 hours: mean successful response time — 99 s; service error rate — 0%. Data as of .

Source: public 24-hour statistics. The mean is neither a median nor a response time guarantee; it is not a quality assessment of the voice.

First request: curl, Python, JavaScript

Set API429_API_KEY on the server and check the exact ID using GET https://gateway.api429.com/v1/models using the same Bearer key. Generation incurs a charge; there are no automatic retries. An uncertain timeout does not prove there was no charge.

Replace YOUR_VOICE_ID in curl with a confirmed voice for your key. Python and JavaScript require API429_VOICE_ID. Do not run the template with an arbitrary voice. curl saves the body to speech.mp3; inspect the response before use.

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":"Hello! This is a short speech generation example through API429.","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\":\"Hello! This is a short speech generation example through API429.\",\"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":"Hello! This is a short speech generation example through API429.","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);

The examples are checked offline against the client contract and public schema. No paid execution or result quality is claimed. A verified complete image jobs contract is not available here: asynchronous fields and polling are omitted.

n8n: HTTP Request and saving the result

  1. Check access to the exact ID using GET /v1/models.
  2. Create an HTTP Request with POST to https://gateway.api429.com/v1/audio/speech; store the Bearer key in credentials.
  3. Send the JSON from curl with a confirmed voice. Do not include the key in a workflow export.
  4. Choose binary response handling and check the audio MIME and nonempty body.

HTTP Request documentation. Compatibility with specialized AI nodes and native SDKs needs separate verification.

Three options for your own comparison

Compare identical tasks and acceptance criteria. These are speech models, not a quality ranking; conditional rows apply to their own configurations and do not form an equivalent benchmark.

ModelPublished API429 units
Eleven V4 Turboeleven_v4_turbo
Speech synthesis: $0.015 / 1,000 characters
Elevenlabs Genelevenlabs-gen
Speech synthesis: $0.03 / 1,000 characters
Cartesia Sonic 3.6cartesia-sonic-3.6
Speech synthesis: $0.6 / 1,000 characters

Version and release date

Manufacturer release date, ElevenLabs: . The exact predecessor has not been established in the reviewed sources. This does not automatically replace the ID. The model’s addition date in API429 is unknown.

Frequently asked questions

Which ID should I use for Eleven v4?

The exact ID is eleven_v4. Before generation, check its availability under your key through GET /v1/models. v4 Turbo is a separate model, and elevenlabs-gen is not declared an alias for v4.

Can I omit voice?

The public schema permits the field to be absent, but a default voice for eleven_v4 is not confirmed. The examples require a confirmed voice ID; Python and JavaScript read it from API429_VOICE_ID.

Can I calculate pricing by minutes?

The public rate uses tts_characters. Duration depends on text and speech. Enter estimated billable characters, then reconcile actual accounting; the public schema does not establish the counting algorithm.

How is the result saved, and are dialogue features available?

audio/speech returns a stream of audio bytes; check status, MIME and a nonempty body. Native dialogue, cloning and manufacturer formats are not promised without separate confirmation of the API429 client contract.

Sources and review

Editorial review: . Pricing · Getting started · Compare the family: ElevenLabs

Telegram