公開API

自分のコードから動画、画像、音楽を生成

キーを作成し、Bearer認証でリクエストを送り、ファイルが準備できるまでタスクをポーリングします。同じモデル、価格、プラン制限、返金はNovaMotions AIスタジオと共通で、クレジット残高も共有です。

ベースURLhttps://novamotions.com/api/v1

クイックスタート

ゼロから完成動画までの3ステップ。すべてのリクエストはJSON形式のHTTPSなので、どんな言語やツールでも使えます。

  1. 1

    キーを作成

    アカウントのAPIページを開き、キーを作成します。キーは一度だけ表示されるので、API_KEYという環境変数に保存してください。

  2. 2

    タスクを送信

    モデル、プロンプト、オプションを送信します。クレジットは送信時に一度だけ消費され、レスポンスで残高と消費量がわかります。

    curl -X POST https://novamotions.com/api/v1/videos \
      -H "Authorization: Bearer $API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "seedance-2-pro",
        "prompt": "夜の雨のネオン街をゆっくりドリーショット。濡れたアスファルトに反射、シネマティック",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
      }'
  3. 3

    準備完了までポーリング

    数秒ごとにタスクを確認します。状態が成功ならoutput_urlからファイルをダウンロード。失敗した場合はクレジットが戻っています。

    TASK_ID=your_task_id
    while true
    do
      TASK=$(curl -s https://novamotions.com/api/v1/tasks/$TASK_ID -H "Authorization: Bearer $API_KEY")
      STATUS=$(echo "$TASK" | jq -r .status)
      echo "$STATUS"
      if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]
      then
        echo "$TASK" | jq
        break
      fi
      sleep 5
    done

認証

すべてのリクエストのAuthorizationヘッダーにキーを送信してください。キーはnm_live_で始まり、1つのアカウントに属します。

HTTP
Authorization: Bearer nm_live_your_api_key
Content-Type: application/json
ベースURL
すべてのエンドポイントはhttps://novamotions.com/api/v1の下にあり、JSONを返します。
キーは秘密に
APIはサーバーから呼び出し、ブラウザやモバイルアプリからは絶対に呼ばないでください。キーを無効化すると即座に使えなくなります。
共通残高
API呼び出しはキー所有者のクレジットを消費し、スタジオと同じ残高を使います。プランの生成制限も適用されます。
メディアURL
渡す画像、動画、音声はクッキーやログインなしで読み込める公開https URLでなければなりません。

モデル一覧

GET/api/v1/models

APIが提供するすべてのモデルと、そのモード、長さ、解像度、アスペクト比、音声対応、参照制限、最低クレジット価格を掲載。オプションをハードコーディングせずモデル選択に使えます。

リクエスト

curl https://novamotions.com/api/v1/models \
  -H "Authorization: Bearer $API_KEY"

レスポンス

JSON
{
  "object": "list",
  "data": [
    {
      "slug": "seedance-2-pro",
      "name": "Seedance 2.0 Pro",
      "kind": "video",
      "endpoint": "/api/v1/videos",
      "available": true,
      "modes": [
        "text-to-video",
        "image-to-video",
        "reference-to-video"
      ],
      "durations": [
        4,
        5,
        6,
        8,
        10,
        12,
        15
      ],
      "default_duration": 5,
      "resolutions": [
        "480p",
        "720p",
        "1080p",
        "4K"
      ],
      "aspect_ratios": [
        "16:9",
        "9:16",
        "1:1",
        "4:3",
        "3:4",
        "21:9"
      ],
      "audio": {
        "supported": true,
        "extra_credits": 20
      },
      "references": {
        "images": 9,
        "videos": 3,
        "audio": 3,
        "end_frame": true
      },
      "max_count": 4,
      "prompt_max_length": 10000,
      "from_credits": 35
    }
  ]
}

残高確認

GET/api/v1/balance

キー所有者が今すぐ使えるクレジットを、期限ごとのプールに分けて表示。現在のプランも含みます。

リクエスト

curl https://novamotions.com/api/v1/balance \
  -H "Authorization: Bearer $API_KEY"

レスポンス

JSON
{
  "object": "balance",
  "balance": 1175,
  "never_expiring": 375,
  "next_expiry": "2026-11-17T00:00:00.000Z",
  "pools": [
    {
      "source": "subscription",
      "remaining": 800,
      "granted": 2000,
      "expires_at": "2026-11-17T00:00:00.000Z"
    },
    {
      "source": "topup",
      "remaining": 375,
      "granted": 375,
      "expires_at": null
    }
  ],
  "plan": {
    "name": "Pro",
    "status": "active",
    "cycle": "monthly",
    "renews_or_ends_at": "2026-11-14T00:00:00.000Z"
  }
}

動画を作成

POST/api/v1/videos

テキストから動画、画像から動画(開始フレームと任意の終了フレーム)、参照動画(画像、クリップ、音声で結果を誘導)。モードは入力から自動選択されます。

パラメーター

  • modelstring
    必須modelsエンドポイントのモデルスラッグ。
  • promptstring
    必須クリップで起こること。画像から動画の場合は開始フレームが主導するため任意。
  • modestring
    任意text-to-video、image-to-video、reference-to-video。省略時は入力から選択。
  • durationinteger
    任意クリップの長さ(秒)。モデルの対応する長さでなければデフォルトが使われます。
  • resolutionstring
    任意720pや1080pなど、モデルの対応解像度から選択。
  • aspect_ratiostring
    任意モデルのリストから選べる16:9、9:16、1:1、4:3、3:4、または21:9。デフォルトは16:9です。
  • audioboolean
    任意対応モデルで、セリフ、効果音、環境音を含むサウンドトラックを生成します。20クレジットが追加されます。デフォルトはオフです。
  • image_urlstring (URL)
    任意画像から動画への開始フレーム。
  • end_image_urlstring (URL)
    任意対応モデルで使用する終了フレーム。
  • reference_image_urlsstring[]
    任意動画生成の参考用画像。モデルの上限まで。
  • reference_video_urlsstring[]
    任意動画生成の参考用クリップ。モデルの上限まで。
  • reference_audio_urlsstring[]
    任意サウンドトラックの指示用音声。モデルの上限まで。
  • countinteger
    任意同じリクエストから作成する動画の数。1から4まで。各動画は別タスクで、個別に課金されます。
  • seedinteger
    任意再現可能な結果のための固定シード。バッチ内の追加アイテムは次のシードを使用します。

リクエスト

curl -X POST https://novamotions.com/api/v1/videos \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-pro",
    "prompt": "夜の雨のネオン街をゆっくりドリーショット。濡れたアスファルトに反射、シネマティック",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

レスポンス

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 44,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 44,
  "balance": 1131
}

画像を作成

POST/api/v1/images

テキストから画像、または既存画像をプロンプトで編集。1リクエストで最大4枚まで、それぞれ独立したタスクです。

パラメーター

  • modelstring
    必須modelsエンドポイントのモデルスラッグ。
  • promptstring
    必須画像に何を表示するか、または渡した画像をどう変えるか。
  • modestring
    任意text-to-image(テキストから画像)かimage-edit(画像編集)。未指定時は入力から自動選択。
  • resolutionstring
    任意モデルのリストから1K、2K、4Kを選択。
  • aspect_ratiostring
    任意対応モデルのリストからアスペクト比を選択。Auto対応モデルも含む。
  • image_urlstring (URL)
    任意編集する画像。image-editモードで必須。
  • reference_image_urlsstring[]
    任意編集用の追加参考画像。モデルの上限まで。
  • countinteger
    任意プロンプトごとの画像数。1から4まで。各画像は別タスク。
  • seedinteger
    任意再現可能な結果のための固定シード。バッチ内の追加アイテムは次のシードを使用します。

リクエスト

curl -X POST https://novamotions.com/api/v1/images \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "オーク材の上に置かれた陶器のコーヒーカップのスタジオ製品写真。柔らかな窓光、浅い被写界深度",
    "resolution": "1K",
    "aspect_ratio": "1:1",
    "count": 1
  }'

レスポンス

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 3,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 3,
  "balance": 1172
}

曲を作成

POST/api/v1/music

説明からフル曲を作成。歌詞付きかインストゥルメンタルを選べます。

パラメーター

  • modelstring
    必須modelsエンドポイントのモデルスラッグ。
  • promptstring
    必須曲のジャンル、ムード、楽器、テンポ。
  • durationinteger
    任意モデルの対応する秒数で曲の長さを指定。
  • lyricsstring
    任意自作の歌詞。未指定の場合はモデルが作成。
  • instrumentalboolean
    任意ボーカルなしの曲を作成。デフォルトはオフ。

リクエスト

curl -X POST https://novamotions.com/api/v1/music \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-music",
    "prompt": "暖かいローファイヒップホップ。柔らかなピアノ、ビニールのパチパチ音、リラックスした深夜のグルーヴ",
    "duration": 60,
    "instrumental": false
  }'

レスポンス

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 11,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 11,
  "balance": 1164
}

タスクを取得

GET/api/v1/tasks/{id}

IDでタスクをポーリング。状態が成功ならoutput_urlが完成ファイルを指します。ポーリングは読み取り制限を使い、送信予算は消費しません。

リクエスト

curl https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2 \
  -H "Authorization: Bearer $API_KEY"

レスポンス

JSON
{
  "id": "cmtask8k2x0001ab7c9d0e1f2",
  "object": "task",
  "kind": "video",
  "model": "seedance-2-pro",
  "mode": "text-to-video",
  "status": "succeeded",
  "progress": 100,
  "prompt": "夜の雨のネオン街をゆっくりドリーショット。濡れたアスファルトに反射、シネマティック",
  "params": {
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "audio": false,
    "seed": null
  },
  "output_url": "https://novamotions.com/uploads/videos/2026/10/example.mp4",
  "thumbnail_url": "https://novamotions.com/uploads/videos/2026/10/example.jpg",
  "width": 1280,
  "height": 720,
  "duration_seconds": 5,
  "credits": 44,
  "refunded": false,
  "error": null,
  "created_at": "2026-10-18T09:30:00.000Z",
  "completed_at": "2026-10-18T09:31:12.000Z"
}

タスク一覧

GET/api/v1/tasks

過去30日間にAPIで作成したタスクを新しい順に表示。単一タスクと同じ形式。next_cursorをcursorに渡すと次ページを読み込みます。

パラメーター

  • limitinteger
    任意1ページあたりの結果数。1から50まで。デフォルトは20。
  • cursorstring
    任意前ページのnext_cursor値。
  • statusstring
    任意このステータスのタスクのみ:queued(待機中)、running(実行中)、succeeded(成功)、failed(失敗)。

リクエスト

curl https://novamotions.com/api/v1/tasks?limit=20 \
  -H "Authorization: Bearer $API_KEY"

レスポンス

JSON
{
  "object": "list",
  "data": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "object": "task",
      "kind": "video",
      "model": "seedance-2-pro",
      "mode": "text-to-video",
      "status": "succeeded",
      "progress": 100,
      "prompt": "夜の雨のネオン街をゆっくりドリーショット。濡れたアスファルトに反射、シネマティック",
      "params": {
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9",
        "audio": false,
        "seed": null
      },
      "output_url": "https://novamotions.com/uploads/videos/2026/10/example.mp4",
      "thumbnail_url": "https://novamotions.com/uploads/videos/2026/10/example.jpg",
      "width": 1280,
      "height": 720,
      "duration_seconds": 5,
      "credits": 44,
      "refunded": false,
      "error": null,
      "created_at": "2026-10-18T09:30:00.000Z",
      "completed_at": "2026-10-18T09:31:12.000Z"
    }
  ],
  "next_cursor": null
}

タスクのステータス

タスクはqueuedからrunningに移行し、succeededかfailedで終了します。終了状態でポーリングを停止してください。

queued
受理されレンダリング枠待ちです。ポーリングを続けてください。
running
現在レンダリング中。進捗は0から99まで。
succeeded
完了しました。output_urlとthumbnail_urlが完成ファイルを指します。
failed
結果なしで終了しました。errorに理由があり、refundedがtrueの場合はクレジットが返還されています。

エラーコード

すべてのエラーは同じ形式です。コードで分岐し、ユーザー向けメッセージを表示します。受理されたタスクも後で失敗する可能性があるため、ポーリング時にステータスを確認してください。

エラー応答
{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this request. Top up or renew your plan, then retry.",
    "needed": 44,
    "balance": 14
  }
}
  • 400invalid_jsonリクエストボディがJSONオブジェクトではありません。
  • 401unauthorizedAuthorizationヘッダーにBearerキーがありません。
  • 401invalid_api_keyキーが存在しないか不正な形式です。
  • 401key_revokedキーが取り消されました。新しいキーを作成してください。
  • 402insufficient_creditsこのリクエストに必要なクレジットが不足しています。レスポンスに必要数と残高が含まれます。
  • 403plan_limit_exceededリクエストがプランの生成上限を超えています。長さや解像度を下げてください。
  • 403account_suspendedキー所有アカウントが停止されています。
  • 403api_disabledAPIは現在無効になっています。
  • 404not_foundこのアカウントに該当するタスクまたはエンドポイントがありません。
  • 404model_not_found指定されたスラッグのモデルがありません。modelsエンドポイントを確認してください。
  • 409too_many_runningこのアカウントではすでに3件のタスクが実行中です。いずれかの終了をお待ちください。
  • 422invalid_request必須フィールドが欠落しているか型が間違っています。detailsに問題点がリストされます。
  • 422wrong_endpointモデルは別のエンドポイント用です。例:画像モデルを動画用に送信。
  • 422invalid_modeこのエンドポイントで認識されないモードです。
  • 422mode_not_supportedモデルはこのモードをサポートしていません。
  • 422prompt_requiredこのモードにはプロンプトが必要です。
  • 422image_requiredこのモードにはimage_urlが必要です。
  • 429rate_limitedリクエストが多すぎます。Retry-Afterの秒数待ってから再試行してください。
  • 500internal_errorこちら側で問題が発生しました。少し時間を置いて再試行してください。
  • 503service_busy現在キャパシティオーバーです。数分後に再試行してください。

クレジットと返金

送信時に一度だけ課金

各タスクの料金はスタジオの同じ設定と同額です。送信レスポンスにcredits_chargedと新しい残高が返されます。動画の音声追加は20クレジットが加算されます。

失敗したタスクは全額返金

タスクが何らかの理由で失敗した場合、そのクレジットは元のプールに全額戻され、タスクはrefundedがtrueになります。請求は不要です。

プランの制限が適用されます

プランの生成上限はAPIタスクにも適用されます。期限が近いクレジットから優先的に消費され、チャージ分は最後に使われます。

レート制限

制限はキーごとに1分間のローリングでカウントされます。制限超過時はHTTP 429とRetry-Afterヘッダーが返されます。すべてのレスポンスにX-RateLimitヘッダーが含まれ、制限前に速度調整が可能です。

送信
1分あたり30回
動画、画像、曲の作成。
読み取り
1分あたり120回
タスク、残高、モデル。送信とは別にカウント。
同時実行数
3
アカウントごとの同時レンダリングタスク数。
レート制限ヘッダー
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42

モデル

今日利用可能なモデルのスラッグと最低価格です。modelsエンドポイントはすべてのオプションを含む同じリストを返します。

  • Seedance 2.5seedance-2-545 クレジット
  • Seedance 2.0 Proseedance-2-pro35 クレジット
  • Seedance 2.0 Miniseedance-2-mini24 クレジット
  • Wan 3.0wan-346 クレジット
  • MiniMax H3minimax-h330 クレジット
  • Kling 3kling-330 クレジット
  • Seedance 1.5 Proseedance-1-5-pro31 クレジット
  • Seedance 1.0seedance-132 クレジット
  • Kling O3kling-o346 クレジット
  • Kling 2.6kling-2-641 クレジット
  • Wan 2.7wan-2-735 クレジット
  • Wanwan32 クレジット
  • Grokgrok-video47 クレジット
  • Veo 3veo-342 クレジット
  • GPT Image 2.5gpt-image-2-54 クレジット
  • GPT Image 2gpt-image-23 クレジット
  • Seedream 5 Proseedream-5-pro4 クレジット
  • Seedream 5seedream-53 クレジット
  • Nano Banana Pronano-banana-pro5 クレジット
  • Nano Banana 2nano-banana-23 クレジット
  • Nano Banana 2 Litenano-banana-2-lite2 クレジット
  • AI Musicai-music6 クレジット

さあ、始めましょう

アカウントでキーを作成し、1分で最初のリクエストを送信できます。

APIキーを作成