開発者向け · API
Leeloのすべての機能を、APIキーひとつで。
音声の生成、吹き替え、文字起こし、効果音、ノイズ除去を、シンプルなREST APIで。時間のかかる処理が終わるとWebhookでお知らせし、MCPサーバーを使えば、AIアシスタントがLeeloを直接使えます。
API、Webhook、MCPはProとBusinessで
01エンドポイント
すべてのルートと、その費用。
JSONで送って、JSONで受け取ります。キーはアプリごとに1つ、Authorizationヘッダーで渡します。ベースURL:https://api.leelo-ai.com
| ルート | 内容 | クレジット |
|---|---|---|
| GET/v1/me | プラン、残りのクレジット、ストレージ | 無料 |
| GET/v1/voices | すべての声(ご自身の声が先頭)。?locale=fr-FR、?q=、?limit=、?after= | 無料 |
| GET/v1/voices/{id} | 1つの声 | 無料 |
| POST/v1/speech | テキストを声で読み上げ → 音声のURL。同じテキストと声なら、2回目からは無料です。 | 1語あたり1 · ご自身の声は5 |
| POST/v1/transcriptions | メディアのURL → タイムスタンプと話者付きの行 | 1分あたり40 |
| GET/v1/transcriptions/{id} | 以前に作成した文字起こし | 無料 |
| POST/v1/dubs | メディアのURLを、ほかの言語に。ジョブを返し、処理は自動で完了します。 | 1言語・1分あたり5,000 |
| GET/v1/dubs/{id} | 吹き替えの進み具合と、完了後のURL | 無料 |
| POST/v1/sounds | 説明 → 効果音。?attemptsは最大3 | 1秒あたり20(最低100) |
| POST/v1/cleanups | 録音のURL → 音量を整えた声だけ | 1分あたり1,300 |
| POST/v1/writing | 文章の処理:rewrite · shorten · fix · split · script · translate | 500語あたり10 |
| GET/v1/projects | Studioのプロジェクト | 無料 |
| GET/v1/projects/{id} | プロジェクトの行、話者、音声 | 無料 |
| POST/v1/projects/{id}/exports | プロジェクト全体を、マスタリング済みの1ファイルに | 無料 |
| GET/v1/files | 書き出し、吹き替え、ノイズ除去、効果音。?kind= | 無料 |
| GET/v1/usage | すべての利用料金(使ったキーのラベル付き) | 無料 |
| GET/v1/rates | 各機能の料金(クレジット) | 無料 |
| POST/v1/webhooks | 送信先を登録:{ url, events } | 無料 |
| GET/v1/webhooks | 登録済みのWebhookと、利用できるすべてのイベント | 無料 |
| GET/v1/webhooks/deliveries | 送信した内容と、その結果 | 無料 |
| DELETE/v1/webhooks/{id} | 送信先への送信を停止 | 無料 |
02Webhook
終わったら、お知らせします。
送信先のアドレスと、受け取りたいイベントを登録します。すべての送信には署名が付き、サーバーが停止していれば再送され、送った内容を確認できるよう記録されます。
- dub.completed吹き替えが完了。ペイロードにURLを含みます
- dub.failed吹き替えを完了できませんでした。クレジットは返却済みです
- transcription.completed文字起こしの準備ができました
- export.completedプロジェクトの書き出しをダウンロードできます
- credits.low今月のクレジットが残りわずかです
- credits.depleted今月のクレジットを使い切りました
各リクエストにはLeelo-Signature: t=…,v1=…が付きます。これは、Webhookのシークレットで計算した`${t}.${body}`のHMAC-SHA256です。送信に失敗した場合は、1日半のあいだに7回再送します。
import { createHmac, timingSafeEqual } from "node:crypto";
function verify(body, header, secret) {
const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const want = createHmac("sha256", secret).update(`${t}.${body}`).digest("hex");
return timingSafeEqual(Buffer.from(want), Buffer.from(v1));
}03MCP
AIアシスタントの中に、Leeloを。
Claude、CursorなどのMCPクライアントをつないで、ふつうの言葉で頼むだけ。「これを温かみのある日本語の声で読んで」「この動画をスペイン語に吹き替えて」。APIキーで動き、クレジットもアプリと同じ。すべての呼び出しが利用状況に表示されます。
Claude Code
claude mcp add --transport http leelo https://api.leelo-ai.com/mcp \
--header "Authorization: Bearer lk_live_…"Cursor、Windsurfなどのクライアント
{
"mcpServers": {
"leelo": {
"url": "https://api.leelo-ai.com/mcp",
"headers": { "Authorization": "Bearer lk_live_…" }
}
}
}04記事プレーヤー
「この記事を聴く」を、たった1行で。
書き出した音声を、好きな色とライト/ダークのテーマのプレーヤーとして公開し、HTMLを1行ページに貼り付けるだけ。すべてのプランで使え、APIキーも不要です。
- 見た目
- お好みのアクセントカラーで、ライトかダーク。波形と再生速度の調整付き。
- 軽さ
- 遅延読み込みで、音声は読者が再生を押したときにだけ読み込みます。
- 数字
- 再生回数を数え、節目の回数を超えると通知でお知らせします。
<iframe src="https://leelo-ai.com/embed/…"
title="Listen: Why cities are getting quieter"
width="100%" height="136" loading="lazy"
style="border:0;max-width:760px;display:block"></iframe>05よくある質問
開発を始める前に。
Leeloで、つくろう。
まずは無料で始めて、APIキーが必要になったらProにアップグレード。クレジットも声も、アプリと同じです。
無料で始める:1,000クレジット
