
ElevenLabs APIを使うには、管理画面でAPIキーを作成する必要があります。この記事では、ElevenLabs APIでできることから、APIキーの取得方法、新モデルのv4とv4 Turboの使い分け、公式の書き方に沿ったコード例まで、APIの使い方をまとめて解説します。
\ 無料プランでお試し /
ElevenLabs APIとは?v4・v4 Turboで何ができるか
ElevenLabs APIは、ElevenLabsの音声AIを自分のアプリやプログラムから呼び出すための仕組みです。まずはAPIで使える機能と、2026年9月28日に公開されたv4の位置づけを押さえておきましょう。
APIで使える主な機能
ElevenLabs APIの中心は、テキストを音声に変えるText to Speechです。このほかに、音声の文字起こし(Speech to Text)、効果音の生成、音楽の生成、声の変換、雑音の除去、動画の吹き替えもAPIから呼び出せます。
Web画面で作れる音声を、プログラムから大量に・自動で作れるのがAPIを使う利点です。ナレーションの一括作成や、音声で応答するAIエージェントの組み込みに向いています。文字起こしのAPIについては、次の記事で解説しています。

この記事では、音声を作るText to Speechに絞って説明します。
v4とv4 Turboの位置づけ
Eleven v4は、ElevenLabsの音声合成モデルで最も感情表現が豊かな新世代のモデルで、低遅延版のv4 Turboとあわせて2つから選べるのが特徴です。どちらも日本語を含む90以上の言語に対応しています。
英語の声で日本語の文章を読ませた場合も、元の言語の訛りを持ち込まずに日本語として読み上げます。言語によって流暢さに差があるため、使う声で一度試しておきましょう。
[laughs]や[whispering]のようなオーディオタグで、笑い声やささやき声などの演出を文中から指示できるのもv4の特徴です。モデルの詳しい特徴や発表の内容は、次の記事で解説しています。

\ 無料プランでお試し /
ElevenLabs APIキーの取得方法
ElevenLabs APIを使うには、ElevenLabsの管理画面でAPIキーを作成します。リクエストのたびにこのキーを送ることで、誰の利用かが判別され、使った分が請求されます。
APIキーを作成する手順
ブラウザでAPIキーを作成する手順は次の3ステップです。
ElevenLabsの公式サイトでアカウントにログインし、ホーム画面の左のサイドバーの下にある「デベロッパー」をクリックします。アカウントが無い場合は、先に無料で登録してください。

デベロッパーの画面で「APIキー」のタブを開き、「キーを作成」をクリックします。キーをまだ作っていない場合は、画面の中央に「キーを作成」のボタンが表示されます。


「APIキーを作成」のパネルで、名前・期限・使えるクレジットの上限・使う機能(エンドポイント)を決めます。初期設定では期限が「無期限」、「キーを制限」がオンで、各エンドポイントが「アクセスなし」になっています。音声を作るだけなら「テキスト読み上げ」を「アクセス」に切り替えて、「キーを作成」をクリックします。

作成したキーはコピーして、.envファイルなど、コードとは別の安全な場所に保存します。「アクセスなし」のままの機能はそのキーで呼び出せないため、あとから別の機能を使うときはキーの権限を見直しましょう。期限はプルダウンで15分から30日までの期間も選べます。
コーディングエージェントにAPIキーとSDKの準備を任せる
Claude Code・Cursor・Codexのようなコーディングエージェントを使っている場合は、次の1文を貼るだけで、APIキーの作成からSDKのインストールまでを任せられます。ElevenLabsのアカウントが無い状態からでも始められます。
Add ElevenLabs to my project: run `npx -y @elevenlabs/cli@latest onboard init` and follow what it prints.
実行すると、ElevenLabsのCLIがエージェントに次の作業を順に指示します。途中でブラウザが1回開き、ElevenLabsへのサインインを求められます。
作られたAPIキーはプロジェクトの環境変数のファイルに保存され、チャットの画面には表示されません。保存先はPythonのプロジェクトなら.env、それ以外なら.env.localで、どちらもGitの管理から外されます。コマンドの実行にはNode.jsが必要です。
エージェントがSSHの先のサーバーなど、ブラウザを開けない環境で動いている場合は、上の手順でキーを自分で作り、環境変数のファイルに貼るよう求められます。
APIキーを安全に使うための設定
APIキーはパスワードと同じ秘密の情報なので、他人に渡したり、ブラウザやアプリの画面側のコードに書いたりしてはいけません。キーごとに次の制限をかけておくと、漏れたときの被害を小さくできます。
- 使えるAPIの範囲を絞る権限の制限
- 使えるクレジットの上限
- 接続を許すIPアドレスの指定
- 一定時間で使えなくなる有効期限
リアルタイムの文字起こし・ファイルの文字起こし・Text to SpeechのWebSocketの3つは、ブラウザやスマホのアプリから直接つなぐときに、APIキーの代わりにシングルユーストークンを使えます。トークンはサーバー側で発行し、15分で切れて1回使うと無効になります。この記事のコード例で使うText to SpeechのHTTPのAPIとText to Dialogue WebSocketはトークンの対象に含まれないため、APIキーを使うコードはサーバー側で動かしてください。
複数の席を契約しているチームで本番のシステムに使うキーは、個人ではなくサービスアカウントに結び付いたAPIキーにすると、担当者が抜けても止まりません。
ElevenLabsはGitHubのシークレットスキャンに参加しています。第三者による無効化を許可したキー(Enterprise以外のプランでは初期設定で許可)を公開リポジトリに載せると、そのキーは自動で無効になります。無効になったキーは使えないので、新しいキーを作ってアプリ側の設定を差し替えてください。
APIキーで呼び出した分には、使ったモデルごとの単価で料金がかかり、v4 Turboの単価はv4の半額です。プランごとの料金や毎月の無料枠は、ElevenLabsの料金と使い方をまとめた次の記事で解説しています。

\ 無料プランでお試し /
v4とv4 Turboの使い分け
ElevenLabs APIでは、音声の質を優先するならv4、応答の速さを優先するならv4 Turboを選びます。モデルの指定に使う名前(model_id)と呼び出すAPIも異なるので、次の表で確かめておきましょう。
| 項目 | v4 | v4 Turbo |
|---|---|---|
| model_id | eleven_v4 | eleven_v4_turbo |
| 主に使う API | Text to Speech API Text to Dialogue API | Text to Dialogue WebSocket |
| 用途 | ナレーション、オーディオブック、キャラクターの声 | 音声エージェント、リアルタイムの対話 |
v4が向いている用途
v4は、ElevenLabsで最も品質の高いモデルです。1回のリクエストで最大10,000文字(音声で約10分)の文章をまとめて音声にできるため、まとまった文章を読ませる用途にぴったりでしょう。
複数の話者が会話する音声は、Text to Dialogue APIで話者ごとの声とセリフを並べて作ります。v4は会話の文脈を理解して話し方を変えるため、話者どうしの掛け合いが自然になります。
v4 Turboが向いている用途
v4 Turboは、推論の遅延が中央値で約100ミリ秒と短いモデルです(アプリやネットワークの遅延を除く)。電話対応のAIエージェントやゲームのキャラクターのように、相手の発話にすぐ返事をしたい用途ならv4 Turboを選びましょう。
v4 Turboは、Text to Dialogue WebSocketで接続を開いたまま、文章を送るたびに音声を受け取る使い方をします。1つの接続に登録できる声は、v4 Turboでは1つです(同じ接続をv4で開いた場合は10まで)。会話型のAIエージェントを作る機能は、次の記事で解説しています。

v4 TurboはElevenLabsのエージェント機能(ElevenAgents)とあわせて最適化されています。APIでElevenAgentsのエージェントを作るときも、音声のモデルの初期設定はv4 Turboになっています。
\ 無料プランでお試し /
ElevenLabs APIの使い方:v4で音声を作るコード例
ElevenLabs APIで音声を作るコードは、「SDKを入れる→APIキーを読み込む→モデルと声を指定して生成する」の3段階で書けます。PythonとNode.jsのどちらも公式のクイックスタートと同じ書き方で、モデルにeleven_v4を指定すればv4の音声になります。
準備:SDKとAPIキーを用意する
PythonならSDKのelevenlabsを、Node.jsなら@elevenlabs/elevenlabs-jsをインストールします。APIキーは、コードに直接書かず.envファイルに書いて読み込みます。
# Python
pip install elevenlabs python-dotenv
# Node.js
npm install @elevenlabs/elevenlabs-js dotenv
# .env
ELEVENLABS_API_KEY=ここに作成したAPIキーを貼り付ける
.envファイルはGitで管理せず、公開リポジトリに載らないよう.gitignoreに追加しておきます。
Pythonでv4の音声を作る
Pythonでは、text_to_speech.convertに文章・声のID・モデルを渡します。次の例は、公式のサンプルの文章を日本語に替えたものです。
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
import os
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
audio = elevenlabs.text_to_speech.convert(
text="はじめまして。ElevenLabsのAPIで作った音声です。",
voice_id="JBFqnCBsd6RMkjVDRZzb", # 声のID(ボイスライブラリで確認できる)
model_id="eleven_v4",
output_format="mp3_44100_128",
)
play(audio)
model_idを省略すると、Text to Speech APIではv4ではなく初期設定のeleven_multilingual_v2が使われます。主な引数は次のとおりです。
| 引数 | 内容 |
|---|---|
text | 読み上げる文章。オーディオタグも書ける |
voice_id | 使う声のID。ボイスライブラリの声や自分で作った声を指定できる |
model_id | 使うモデル。v4はeleven_v4 |
output_format | 音声の形式。mp3_44100_128はMP3・44.1kHz・128kbps |
音声の再生には、環境によってMPVやffmpegのインストールが必要です。再生せずファイルに保存したい場合は、返ってきた音声データをMP3ファイルに書き出します。
v4の音声がどのように聞こえるかは、ElevenLabsの公式ドキュメントにある作例で確かめられます。次の英語の文章(音声の入力は英語の原文で、和訳は読むための訳です)を、声のID t7VaN65ClS2VrEUwk1nR の声とEleven v4で読み上げた音声です。この記事のコードを実行した出力ではなく、公式ドキュメントの作例の引用です。
- [quietly curious] “Hmm… that mark. I haven’t seen one like it in years. Where did you get it? Oh, you gonna make me guess? [giggle]”
- [measured] “No need to explain, if you’d rather not. This town has a way of leaving its mark on people. [soft chuckle] Usually not quite so literally.”
- [lower, thoughtful] “Keep it covered when you can. There are still a few who remember what it means, and they may not ask as politely as I have.”
和訳:
出典:ElevenLabs Docs「Eleven v4」
- [静かに興味を示して]「うーん…その印。何年もこんなのは見ていない。どこで手に入れたの? あら、当てさせる気?[くすくす笑う]」
- [落ち着いて]「言いたくないなら、説明はいらない。この町は人に跡を残すものだから。[小さく笑って]ふつうは、ここまで文字どおりではないけれど。」
- [低く、考え込むように]「できるときは隠しておいて。それが何を意味するか覚えている人がまだ少しいて、私ほど丁寧には聞いてくれないかもしれない。」
角括弧の[quietly curious]や[soft chuckle]がオーディオタグで、話し方や笑い声を文中で指示しています。コード例のtextにも、同じようにオーディオタグを書けます。
Node.jsでv4の音声を作る
Node.js(TypeScript)では、textToSpeech.convertの1つ目の引数に声のIDを渡し、2つ目にモデルなどの設定を渡します。このコードでは、APIキーを引数に書かず、.envから読み込んだELEVENLABS_API_KEYを使います。
import { ElevenLabsClient, play } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";
const elevenlabs = new ElevenLabsClient();
const audio = await elevenlabs.textToSpeech.convert(
"JBFqnCBsd6RMkjVDRZzb", // 声のID
{
text: "はじめまして。ElevenLabsのAPIで作った音声です。",
modelId: "eleven_v4",
outputFormat: "mp3_44100_128",
},
);
await play(audio);
ファイル名をexample.mtsにして保存し、npx tsx example.mtsで実行すると音声が再生されます。
v4の音声がどのように聞こえるかは、Pythonの節で引用した公式ドキュメントの作例で確かめられます。
v4 Turboをリアルタイムで使う
v4 Turboは、Text to Dialogue WebSocketにmodel_id=eleven_v4_turboを付けて接続します。最初のメッセージで使う声を登録し、続けてセリフを送ると、音声がBase64の断片で少しずつ返ってきます。次の例は、公式ガイドのPythonのコードを短くしたものです。
import asyncio, base64, json, os
from dotenv import load_dotenv
import websockets
load_dotenv()
VOICE_ID = "21m00Tcm4TlvDq8ikWAM"
URI = ("wss://api.elevenlabs.io/v1/text-to-dialogue/stream-input"
"?model_id=eleven_v4_turbo&output_format=mp3_44100_128")
async def main():
async with websockets.connect(URI) as ws:
# 1通目:使う声とAPIキーを登録する
await ws.send(json.dumps({"voices": [VOICE_ID],
"xi_api_key": os.getenv("ELEVENLABS_API_KEY")}))
# 2通目:読み上げるセリフを送る
await ws.send(json.dumps({"inputs": [{"text": "お電話ありがとうございます。担当の者が不在のため、代わりにご用件を伺います。お名前とご用件を順番にお話しください。",
"voice_id": VOICE_ID, "new_turn": False}]}))
await ws.send(json.dumps({"close_socket": True}))
with open("dialogue-ws.mp3", "wb") as f:
while True:
msg = json.loads(await ws.recv())
if msg.get("error"):
raise RuntimeError(msg)
if msg.get("audio"):
f.write(base64.b64decode(msg["audio"]))
if msg.get("is_final"):
break
asyncio.run(main())
実行前にpip install websocketsで接続用のライブラリを入れておきます。
サーバーは約40文字・8語の文章がたまるまで最初の音声を返しません。例のようにclose_socketを送れば残りの文章も音声になります。接続を開いたまま短いセリフを送るときは、{"flush": true}を送って音声を作らせます。
v4 Turboの音声がどのように聞こえるかは、ElevenLabsの公式ページ「Eleven v4 Turbo in ElevenAgents」に載っている作例で確かめられます。次の音声は、同ページで医療の場面の会話として紹介されている作例です。
公式は、この作例に使った文章・声・設定を公開していません。この記事のコードを実行した出力ではなく、公式ページの作例の引用です。
\ 無料プランでお試し /
ElevenLabs APIを使うときの注意点
ElevenLabs APIを使う前に、商用利用の条件とv4の仕様の違いを確認しておきましょう。特に、Freeプランのままで作った音声の扱いは、APIを仕事で使う人ほど注意が必要です。
作った音声を商用で使うときの条件
ElevenLabsの商用ライセンスは有料プランにだけ含まれ、Freeプランで作った音声は商用利用できません。Freeプランの音声を商用以外で公開するときも、タイトルに「elevenlabs.io」または「11.ai」と入れてElevenLabsで作ったことを示す必要があります。
有料プランの契約中に作った音声は、契約が終わった後も商用で使えます。反対に、契約する前や解約した後に作った音声は商用利用できません。ベータ版の機能で作った音声は、有料プランでも商用利用や本番の環境での利用ができない点にも注意してください。
この条件は、APIで作った音声にもWeb画面で作った音声と同じように当てはまる点に注意が必要です。ElevenLabsの利用規約の決まりは、APIを含むサービスを無料で使う利用者は商用以外の目的にだけ使え、有料プランで使う利用者は商用の目的にも使える、というものです。
月額プランを契約せず、残高を前払いして使った分だけ払うPay As You GoでAPIを使った場合も、プランはFreeのままで、有料プランの契約の外で作った音声になります。APIの利用料を払っていても、Freeプランで作った音声は商用利用できません。APIで作った音声を自社のサービスや動画、広告などに使うなら、Starter以上の有料プランを契約してから音声を作りましょう。
商用利用の条件の原文と和訳は次のとおりです。
- Content generated during a paid subscription can be used commercially, and indefinitely, subject to our Service-Specific Terms. Attribution requirement is subject to the agreement you have with ElevenLabs.
- Content created outside of a paid subscription (before or after) cannot be used commercially and always requires attribution when shared non-commercially.
- Under our Beta Services Addendum, content generated using Beta Services cannot be used for any commercial purpose or in any production environment.
和訳:
出典:ElevenLabsヘルプ
- 有料プランの契約中に作られたコンテンツは、サービスごとの規約に従い、期限なく商用利用できます。ElevenLabsの表記が必要かどうかは、ElevenLabsとの契約によります。
- 有料プランの契約の外(契約の前または後)に作られたコンテンツは商用利用できず、商用でない共有でも必ずElevenLabsの表記が必要です。
- ベータサービスの補足条項により、ベータサービスで作られたコンテンツは、商用の目的にも本番の環境にも使えません。
v4では使える設定と音声の形式が変わる
v4とv4 Turboで調整できる声の設定は、安定性(Stability)と元の声への近さ(Similarity)の2つです。これまでのモデルにあった話し方の強さ(Style)と速さ(Speed)の設定は使えず、SSMLにも対応していません。
v4向けに学習させたプロフェッショナルボイスクローンを使うときは、学習に使った録音にどこまで近づけるかを決めるclone_strengthも指定できます。値は0から1で、多くの用途では0から試すのがおすすめです。
- 192kbpsのMP3で出力するにはCreator以上のプランが必要
- 44.1kHzのPCMとWAVで出力するにはPro以上のプランが必要
- 同時に処理できるリクエストの数はプランごとに決まっている
- v4はリリース後も学習が続き、同じ設定でも出力が変わることがある
v4 Turboで使うText to Dialogue WebSocketは、開いている接続の数で同時利用が数えられます。同時に開ける接続の数はFreeプランで14、Starterプランで21、Creatorプランで35です。使い終わった接続は閉じておきましょう。
反対に、接続を開いたまま待つ使い方では、何も送らない状態が20秒続くと接続が自動で切れます。セリフの間が空くときは、{"keep_alive": true}を送って接続を保ちます。
\ 無料プランでお試し /
ElevenLabs APIのよくある質問
ElevenLabs APIキーと使い方について、よくある質問をまとめました。
ElevenLabs APIで音楽も作れますか?
はい、Music APIで作れます。
1回で作れる曲の長さは最長5分です。Freeプランのままでは音楽を作れないため、Pay As You Goで残高を足すか、有料プランを契約します。作った曲を商用で使えるのはStarter以上のプランです。
自分で作った声をElevenLabs APIで使えますか?
はい、声のIDを指定すれば使えます。
ボイスライブラリの声のほか、ボイスクローンで作った声や、Voice Designで作った声も指定できます。v4はプロフェッショナルボイスクローンにも対応しています。Voice Designで作った声はv4でも使えますが、これまでのモデルほど表現が豊かにならない場合もあるため、一度試してから決めましょう。
まとめ
ElevenLabs APIは、ElevenLabsの音声AIを自分のアプリやプログラムから呼び出す仕組みです。使うには、管理画面の「デベロッパー」でAPIキーを作成し、権限や上限をかけて安全に管理しましょう。
品質を優先するナレーションにはv4、速さを優先するAIエージェントにはv4 Turboを選びます。作った音声を商用で使うなら、有料の月額プランを契約してから音声を作りましょう。
\ 無料プランでお試し /
