mcpField
A
api-reference

api-reference

github.com/runwaymlクリエイティブ・メディア7455 回インストール2 日前に更新
リポジトリ

api-reference について

api-referenceは、Runwayの公開APIをまとめた資料で、動画・画像・音声生成やリアルタイムAvatar機能を組み込む開発者向けです。モデルのエンドポイント、タスク状態、入力要件、エラー処理を説明します。

主な機能

  1. 01動画・画像・音声生成のエンドポイント一覧
  2. 02Avatarとリアルタイムセッションの管理方法
  3. 03ドキュメントとタスク管理のエンドポイント
  4. 04タスクのポーリングと出力処理の説明
  5. 05入力形式、サイズ制限、URL要件の明記
  6. 06レート制限とエラー処理の説明

活用シーン

  1. 01テキストまたは画像からの動画生成を統合
  2. 02画像生成や音声処理のフローを構築
  3. 03リアルタイムAvatarセッションと関連ドキュメントを管理
  4. 04タスク状態やAPIエラーを調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/runwayml/skills --skill api-reference

インストール後、Claude Code で/api-referenceを入力して読み込まれたか確認します。

詳細

Runway Public API Reference

前提条件: まず +check-compatibility を実行し、プロジェクトがサーバー側の機能に対応していることを確認してください。

ベース URL:https://api.dev.runwayml.com

すべてのリクエストに、以下のヘッダーが必要です。

Authorization: Bearer <RUNWAYML_API_SECRET>
X-Runway-Version: 2024-11-06

モデルとエンドポイント

動画生成
モデルエンドポイント入力コスト(クレジット/秒)
gen4.5POST /v1/image_to_video または POST /v1/text_to_videoテキストおよび/または画像12
gen4_turboPOST /v1/image_to_video画像が必要5
gen4_alephPOST /v1/video_to_video動画+テキスト/画像15
act_twoPOST /v1/character_performance画像/動画5
veo3POST /v1/image_to_video または POST /v1/text_to_videoテキスト/画像40
veo3.1POST /v1/image_to_video または POST /v1/text_to_videoテキスト/画像20-40
veo3.1_fastPOST /v1/image_to_video または POST /v1/text_to_videoテキスト/画像10-15

動画の長さ:2-10 秒。アスペクト比:1280:720、720:1280、1104:832 など。

画像生成
モデルエンドポイントコスト(クレジット)
gen4_imagePOST /v1/text_to_image5(720p)、8(1080p)
gen4_image_turboPOST /v1/text_to_image2
gemini_2.5_flashPOST /v1/text_to_image5
音声生成
モデルエンドポイント用途コスト
eleven_multilingual_v2POST /v1/text_to_speechテキスト読み上げ1 クレジット/50 文字
eleven_text_to_sound_v2POST /v1/sound_effect効果音1-2 クレジット
eleven_voice_isolationPOST /v1/voice_isolation音声から声を分離1 クレジット/6 秒
eleven_voice_dubbingPOST /v1/voice_dubbing音声を他の言語に吹き替え1 クレジット/2 秒
eleven_multilingual_sts_v2POST /v1/speech_to_speech音声変換1 クレジット/3 秒
キャラクター(リアルタイムアバター)
モデル説明セッションの最大時間
gwm1_avatarsGWM-1 を搭載したリアルタイムの会話型アバター5 分

エンドポイント:

メソッドエンドポイント説明
POST/v1/avatars新しいアバターを作成
GET/v1/avatars/{id}アバターを取得
PATCH/v1/avatars/{id}アバターを更新(名前、音声、パーソナリティ、documentIds)
DELETE/v1/avatars/{id}アバターを削除
POST/v1/realtime_sessions新しいリアルタイムセッションを作成
GET/v1/realtime_sessions/{id}セッションのステータスを取得(READY になるまでポーリング)
POST/v1/realtime_sessions/{id}/consumeWebRTC 用のセッション認証情報を消費(1 回限り)

アバター作成パラメーター:

パラメーター型説明
namestringアバターの表示名
referenceImagestringキャラクター画像の URL または runway:// URI
voiceobject{ type: 'runway-live-preset', presetId: 'clara' }
personalitystringシステムプロンプト/パーソナリティの指示
documentIdsstring[]任意。関連付けるナレッジベース文書の ID

音声プリセット: clara(柔らかい)、victoria(力強い)、vincent(威厳のある)。すべてのプレビューは dev.runwayml.com で確認できます。

セッションのステータス: NOT_READY → READY → RUNNING → COMPLETED(または FAILED/CANCELLED)

ドキュメント(ナレッジベース)
メソッドエンドポイント説明
POST/v1/documentsドキュメントを作成(プレーンテキストまたは Markdown)
GET/v1/documents/{id}ドキュメントを取得
DELETE/v1/documents/{id}ドキュメントを削除

各アバターは最大 50,000 トークンのナレッジに対応します。client.avatars.update(id, { documentIds: [...] }) を使って、ドキュメントをアバターにリンクします。

管理エンドポイント
メソッドエンドポイント説明
GET/v1/tasks/{id}タスクのステータスと出力を取得します
DELETE/v1/tasks/{id}タスクをキャンセル/削除します
POST/v1/uploads一時的なアップロードを作成します
GET/v1/organization組織情報とクレジット残高
POST/v1/organization/usageクレジット使用履歴(最大90日分)

タスクのライフサイクル

すべての生成エンドポイントはタスクオブジェクトを返します。処理の流れは次のとおりです。

  1. 送信 — POST /v1/<endpoint> → { "id": "task_xxx" } を返します
  2. ポーリング — GET /v1/tasks/{id} → status を含むタスクを返します
  3. 出力の取得 — status === "SUCCEEDED" の場合、output 配列に署名付き URL が含まれます
タスクのステータス
ステータス意味
PENDINGキューに入り、開始を待っています
RUNNING生成中です
SUCCEEDED完了しました — 出力 URL を利用できます
FAILED生成に失敗しました — failure フィールドを確認してください
THROTTLED同時実行数の上限に達しました — 自動的にキューに入れられます
SDK によるポーリング(推奨)

SDK には、ポーリングを自動的に処理する waitForTaskOutput() メソッドが用意されています。

// Node.js — polls until complete (default 10 min timeout)
const task = await client.imageToVideo.create({
  model: 'gen4.5',
  promptImage: 'https://example.com/image.jpg',
  promptText: 'A sunset timelapse',
  ratio: '1280:720',
  duration: 5
}).waitForTaskOutput();

console.log(task.output); // Array of signed URLs
# Python
task = client.image_to_video.create(
    model='gen4.5',
    prompt_image='https://example.com/image.jpg',
    prompt_text='A sunset timelapse',
    ratio='1280:720',
    duration=5
).wait_for_task_output()

print(task.output)
手動ポーリング(REST)
async function pollTask(taskId) {
  while (true) {
    const response = await fetch(`https://api.dev.runwayml.com/v1/tasks/${taskId}`, {
      headers: {
        'Authorization': `Bearer ${process.env.RUNWAYML_API_SECRET}`,
        'X-Runway-Version': '2024-11-06'
      }
    });
    const task = await response.json();

    if (task.status === 'SUCCEEDED') return task;
    if (task.status === 'FAILED') throw new Error(task.failure);

    await new Promise(r => setTimeout(r, 5000)); // poll every 5 seconds
  }
}

出力の処理

  • 成功したタスクは、生成コンテンツへの署名付き URLを含む output 配列を返します
  • 出力 URL は24~48時間以内に期限切れになります
  • 出力をダウンロードして、ご自身のストレージに保存してください — 署名付き URL をエンドユーザーに提供しないでください
  • 動画の出力形式は MP4、画像の出力形式は PNG/JPEG です

入力要件

サイズ制限
種類URL 経由データ URI 経由アップロード経由
画像16 MB5 MB200 MB
動画32 MB16 MB200 MB
音声32 MB16 MB200 MB
サポートされている形式
  • 画像: JPEG、PNG、WebP(GIF は非対応)
  • 動画コーデック: H.264、H.265/HEVC、AV1、VP8/VP9、Apple ProRes、Theora
  • 音声: MP3、AAC、FLAC、PCM、ALAC
URL の要件

アセットを URL 経由で指定する場合:

  • HTTPS のみ(HTTP は不可)
  • ドメイン名のみ(IP アドレスは不可)
  • リダイレクトなし
  • HTTP HEAD リクエストをサポートしていること
  • 有効な Content-Type および Content-Length ヘッダーを返すこと
  • URL の最大長:2,048文字

レート制限とティア

ティア同時実行数1日の生成数月間上限解除条件
1(デフォルト)1-250-200$100—
23500-1,000$5001日 + $50
351,000-2,000$2,0007日 + $100
4105,000-10,000$20,00014日 + $1,000
52025,000-30,000$100,0007日 + $5,000
  • 1分あたりのリクエスト数の制限はなく、1日の生成数の上限のみがあります
  • 同時実行数の上限を超えると、ステータスは THROTTLED になります(リクエストは拒否されず、自動的にキューに入れられます)
  • 1日の上限を超えると、429 Too Many Requests が返されます
  • 1日の上限はローリング24時間枠で適用されます

エラー処理

HTTP エラー
コード意味対応
400入力検証エラー入力を修正し、再試行しないでください
401API キーが無効ですキーを確認し、再試行しないでください
429レート制限に達しました指数バックオフとジッターを使用して再試行してください
502/503/504サーバーが過負荷です指数バックオフとジッターを使用して再試行してください
タスクの失敗コード
コード意味再試行
SAFETY.INPUT.*入力コンテンツのモデレーションいいえ — 返金されません
SAFETY.OUTPUT.*出力コンテンツのモデレーションはい — 別のプロンプトを試してください
INTERNAL.BAD_OUTPUT品質の問題はい
ASSET.INVALID入力形式が不正です入力を修正してください
INTERNALサーバーエラーはい

SDK は、一時的なエラーに対する再試行を自動的に処理します。


データ URI のサポート

URL の代わりに、Base64 エンコードされた画像を渡すことができます。

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

小さな画像を扱う場合や、ファイルをホストしたくない場合に便利です。上記のデータ URI のサイズ制限が適用されます。

コメント