CheaperGen

APIリファレンス

APIリファレンス

REST APIリファレンス:生成の送信・ポーリング・キャンセル、モデルと料金の一覧、見積もり、残高確認、画像・動画・音声のアップロードを例とともに解説します。

APIは次のリソースで構成されています:生成リクエスト(実行するジョブ)、モデル(利用できるモデルと料金)、見積もり、アカウント、アップロード。すべてのリクエストとレスポンスはHTTPS経由のJSONです。

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

Authorization: Bearer cg_live_…を使って認証します(認証を参照)。エラー形式はエラーで説明しています。すべてのエンドポイントはCORSヘッダーを返します。ただし、ブラウザー上でAPIキーを公開しないでください。クライアント側から呼び出せるのは公開エンドポイントだけです。

APIエンドポイント
エンドポイント
POST/run/{endpoint}
GET/generations/{id}
GET/generations
POST/generations/{id}/cancel
DELETE/generations/{id}
GET/models
GET/models/{vendor}/{model}
POST/quote/{endpoint}
GET/account
GET/account/pricing
POST/uploads
GET/webhooks/secret

生成を送信#

POST/api/v1/run/{endpoint}APIキーが必要

非同期で生成を開始し、202 Acceptedと、queued状態の生成オブジェクトを返します。この時点で料金分が残高から確保されます(お支払いを参照)。

パスパラメーター
endpointstring必須
モデルのエンドポイントIDは{vendor}/{model}/{task}です。例:bytedance/seedance-2.0-fast/text-to-video。すべてのIDはモデルページに掲載されています。
リクエストボディ
…model inputsobject必須
エンドポイントの入力項目(例:prompt、resolution、image_url)。各モデルのAPIページには項目、型、デフォルト値、許可値が記載され、モデルを取得からJSON Schemaとして取得できます。未定義の項目は拒否されます。
webhook_urlstring (https URL)
任意。生成完了後、次のURLへPOSTします:Webhook。
retentionstring
任意。生成のプロンプト、入力、出力をimmediate、1h、1d、7d、または30dの期間保存します。デフォルトではアカウント設定(1d)に従います。すべてのアカウントで保存期間を短縮できます。7dと30dへの延長にはアカウント単位の設定が必要です。詳しくはデータの保存期間をご覧ください。
allow_fallback_priceboolean
任意設定。既定値はtrueです。通常の処理能力を利用できない場合、より高価な処理能力に切り替えて緊急時の料金価格を適用します(モデルの公式価格max_cost_usdを上限とし、それ以上にはなりません)。送信時の価格はレスポンスと/quoteに含まれます。ジョブ受付後に処理能力が使えなくなり、後から切り替える場合にも適用されます。その際は差額を仮押さえし、pricing.fallbackとWebhookで通知します。見積もり価格を超えて支払いたくない場合はfalseを設定してください。ProまたはMaxプランでは、この設定がないと受付済みのジョブが標準価格まで上がることもあります。設定すると、高い価格での処理の代わりに503 fallback_price_declinedを返すか、ジョブを失敗として全額返金します。
max_cost_usdnumber
任意。緊急時の料金を含め、この生成に支払う上限額です。超過する場合は400 max_cost_exceededエラーとなり、請求は発生しません。後から上限額を超える料金に変更されることもありません。
const resp = await fetch("https://cheapergen.com/api/v1/run/bytedance/seedance-2.0-fast/text-to-video", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prompt": "ゴールデンアワーの光の中、陶芸家が花瓶を形作る様子をゆっくり寄って撮影。光に浮かぶほこり、浅い被写界深度。",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 5
  }),
});
const generation = await resp.json();
レスポンス · 202 Accepted
{
  "id": "gen_8c2QmX1nq0k4Lw7Z",
  "object": "generation",
  "model": "bytedance/seedance-2.0-fast",
  "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
  "mode": "text-to-video",
  "status": "queued",
  "input": {
    "prompt": "ゴールデンアワーの光の中、陶芸家が花瓶を形作る様子をゆっくり寄って撮影。光に浮かぶほこり、浅い被写界深度。",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 5,
    "generate_audio": true
  },
  "output": null,
  "error": null,
  "cost": {
    "amount_usd": 0.4494,
    "currency": "usd",
    "estimated": true
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04.512Z",
  "started_at": null,
  "completed_at": null,
  "retention": "1d",
  "expires_at": null,
  "purged_at": null,
  "urls": {
    "get": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z",
    "cancel": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z/cancel"
  }
}

エラー:400 invalid_request(入力検証)、401 unauthorized、402 insufficient_balance、404 not_found(不明なエンドポイント)、429 rate_limited(リクエストレート、または待機中の生成のキューが満杯)、503 model_unavailable、503 pricing_unavailable(数秒後に再試行。課金されていません)、503 fallback_price_declined(緊急価格のみ利用可能ですが、allow_fallback_price: falseが指定されています)、400 max_cost_exceeded。

生成を取得#

GET/api/v1/generations/{id}APIキーが必要

IDを指定して生成情報を取得します。ステータス確認が必要な場合は、レスポンス前に確認します。このエンドポイントをポーリングするだけでジョブ完了まで管理できます。不明なID、または別のアカウントに属する生成には404 not_foundを返します。

リクエスト
curl https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "id": "gen_8c2QmX1nq0k4Lw7Z",
  "object": "generation",
  "model": "bytedance/seedance-2.0-fast",
  "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
  "mode": "text-to-video",
  "status": "succeeded",
  "input": {
    "prompt": "ゴールデンアワーの光の中、陶芸家が花瓶を形作る様子をゆっくり寄って撮影。光に浮かぶほこり、浅い被写界深度。",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 5,
    "generate_audio": true
  },
  "output": {
    "video": {
      "url": "https://cdn.cheapergen.com/outputs/gen_8c2QmX1nq0k4Lw7Z.mp4",
      "content_type": "video/mp4"
    }
  },
  "error": null,
  "cost": {
    "amount_usd": 0.4494,
    "currency": "usd",
    "estimated": false
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04.512Z",
  "started_at": "2026-10-15T09:21:09.031Z",
  "completed_at": "2026-10-15T09:22:31.870Z",
  "retention": "1d",
  "expires_at": "2026-10-16T09:22:31.870Z",
  "purged_at": null
}

生成一覧を取得#

GET/api/v1/generationsAPIキーが必要

生成履歴を新しい順に返します。Studioやプレイグラウンドから送信したジョブも含まれます。

クエリパラメーター
limitinteger
ページサイズは1〜100です。デフォルトは20。
cursorstring
前のページからのnext_cursor:
statusstring
次のステータスの生成のみを返します:queued、running、succeeded、failed、canceledのいずれか。
modelstring
次のモデルIDの生成のみを返します。例:bytedance/seedance-2.0-fast。
sourcestring
次のソースから作成した生成のみを返します:playground(Studioおよびモデルページ)、apiまたはmcp(AIエージェント)。
リクエスト
curl "https://cheapergen.com/api/v1/generations?limit=2&status=succeeded" \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "object": "list",
  "data": [
    {
      "id": "gen_8c2QmX1nq0k4Lw7Z",
      "object": "generation",
      "model": "bytedance/seedance-2.0-fast",
      "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
      "mode": "text-to-video",
      "status": "succeeded",
      "input": {
        "prompt": "ゴールデンアワーの光の中、陶芸家が花瓶を形作る様子をゆっくり寄って撮影。光に浮かぶほこり、浅い被写界深度。",
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "duration": 5,
        "generate_audio": true
      },
      "output": {
        "video": {
          "url": "https://cdn.cheapergen.com/outputs/gen_8c2QmX1nq0k4Lw7Z.mp4",
          "content_type": "video/mp4"
        }
      },
      "error": null,
      "cost": {
        "amount_usd": 0.4494,
        "currency": "usd",
        "estimated": false
      },
      "source": "api",
      "created_at": "2026-10-15T09:21:04.512Z",
      "started_at": "2026-10-15T09:21:09.031Z",
      "completed_at": "2026-10-15T09:22:31.870Z",
      "retention": "1d",
      "expires_at": "2026-10-16T09:22:31.870Z",
      "purged_at": null
    },
    {
      "id": "gen_3vYk2PqL9sTn0bWd",
      "object": "generation",
      "model": "bytedance/seedream-5.0-pro",
      "endpoint": "bytedance/seedream-5.0-pro/text-to-image",
      "mode": "text-to-image",
      "status": "succeeded",
      "input": {
        "prompt": "トラバーチンの上に置いたマットブラックのエスプレッソマシンの商品写真。柔らかな窓の光、85mm。",
        "aspect_ratio": "1:1",
        "size": "2K"
      },
      "output": {
        "images": [
          {
            "url": "https://cdn.cheapergen.com/outputs/gen_8c2QmX1nq0k4Lw7Z.png",
            "content_type": "image/png"
          }
        ]
      },
      "error": null,
      "cost": {
        "amount_usd": 0.0665,
        "currency": "usd",
        "estimated": false
      },
      "source": "api",
      "created_at": "2026-10-15T09:21:04.512Z",
      "started_at": "2026-10-15T09:21:09.031Z",
      "completed_at": "2026-10-15T09:22:31.870Z",
      "retention": "1d",
      "expires_at": "2026-10-16T09:22:31.870Z",
      "purged_at": null
    }
  ],
  "next_cursor": "gen_3vYk2PqL9sTn0bWd"
}

最後のページではnext_cursorはnullです。

生成をキャンセル#

POST/api/v1/generations/{id}/cancelAPIキーが必要

まだqueued状態の生成をキャンセルし、確保額を全額返金します。更新された生成情報をstatus: "canceled"とともに返します。すでに実行中または完了している場合、またはモデルがキュー内ジョブのキャンセルに対応していない場合は409 conflictを返します。

リクエスト
curl -X POST https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z/cancel \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "id": "gen_8c2QmX1nq0k4Lw7Z",
  "object": "generation",
  "model": "bytedance/seedance-2.0-fast",
  "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
  "mode": "text-to-video",
  "status": "canceled",
  "input": {
    "prompt": "ゴールデンアワーの光の中、陶芸家が花瓶を形作る様子をゆっくり寄って撮影。光に浮かぶほこり、浅い被写界深度。",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 5,
    "generate_audio": true
  },
  "output": null,
  "error": null,
  "cost": {
    "amount_usd": 0,
    "currency": "usd",
    "estimated": false
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04.512Z",
  "started_at": null,
  "completed_at": "2026-10-15T09:21:06.200Z",
  "retention": "1d",
  "expires_at": "2026-10-16T09:21:06.200Z",
  "purged_at": null
}

生成を削除#

DELETE/api/v1/generations/{id}APIキーが必要

生成を削除します。出力ファイル、ほかの生成から使われていないアップロード入力、プロンプト、入力は即時削除されます。一覧にも表示されなくなり、GETは404を返します。請求記録(利用明細の請求額と合計)は保持されます。まだqueuedの生成は先にキャンセルされ、確保された料金は全額返金されます。もうキャンセルできない場合(実行中、またはキュー内のジョブをキャンセルできないモデル)は409 conflictを返すので、完了までお待ちください。

リクエスト
curl -X DELETE https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "id": "gen_8c2QmX1nq0k4Lw7Z",
  "object": "generation",
  "deleted": true
}

生成オブジェクト#

idstring
一意のID。接頭辞はgen_です。
objectstring
常に"generation"。
modelstring
モデルID。例:bytedance/seedance-2.0-fast。
endpointstring
ジョブの送信先エンドポイントID。例:bytedance/seedance-2.0-fast/text-to-video。
modestring
タスク:text-to-video、image-to-video、reference-to-video、text-to-image、image-edit。
statusstring
queued → running → succeeded | failed、またはcanceled。詳しくは生成をご覧ください。
inputobject
The validated input, with defaults filled in.
outputobject | null
成功時に設定されます。動画:{ "video": { "url", "content_type" } }。画像:{ "images": [{ "url", "content_type" }] }。安全性チェックで置き換えられ、空白で返る画像にも"safety_filtered": trueが設定され、ほかの出力と同様に課金されます。
errorobject | null
失敗時に設定:{ "code", "message", "reason", "hint", "retryable", "refunded" }。さらにparam(変更すべきフィールド)とdetail(提供元側の文言)が分かる場合に記録します。reasonが理由を示します。例:content_blocked、invalid_input、upstream_unavailable。詳しくは失敗理由をご覧ください。
costobject
amount_usd、currency("usd")、estimated — 確保中はtrue、確定後はfalse。失敗またはキャンセルされた生成の料金は0です。
pricingobject
custom_price(個別料金:契約料金またはProまたはMaxプラン)、volume_level(プラン価格の場合は1 = Pro、2 = Max、それ以外はnull)、standard_usd(このリクエストの通常料金)、およびfallback:null。緊急時価格で実行された場合は{ "active", "reason", "message", "standard_usd", "amount_usd" }。緊急時価格は公式価格を上限とし、allow_fallback_priceで設定してmax_cost_usdで上限を適用します。
sourcestring
"api"または"playground"(Studioとモデルページ)。
created_atstring
ISO 8601 timestamp of submission.
started_atstring | null
When the model started generating.
completed_atstring | null
When the generation reached a final state.
retentionstring | null
API生成の保持期間はimmediate、1h、1d、7d、または30dです。Studioの生成ではnullを指定すると、削除するまで保持されます。
expires_atstring | null
プロンプト、入力、出力、メディアなどのコンテンツが削除される時刻です。生成完了時に設定します。immediateの場合、結果が初めて配信された時刻から10分後に変更されます。
purged_atstring | null
コンテンツを削除した時点で設定します。その後outputはnullとなり、inputは料金を決めるパラメーターのみを保持し、content_expiredは理由を示します。料金とタイムスタンプは保持されます。
urlsobject
送信時のレスポンスにのみ含まれる項目:getと、この生成のcancelURL。

モデル一覧を取得#

GET/api/v1/models公開 · 認証不要

利用可能な全モデルと各エンドポイント、最新価格を返します。価格はunit単位です(動画はsecond、画像はimage)。list_price_usdは比較対象の通常価格、discount_pctは節約率(%)を表します。list_price_sourceは価格の種類を示します。officialは開発元独自の通常価格、referenceは比較対象としてlist_price_labelが指定した別の価格です(例:開発元が国際向けAPIを提供していないモデルのfal API)。

リクエスト
curl https://cheapergen.com/api/v1/models
レスポンス · 200 OK
{
  "object": "list",
  "data": [
    {
      "id": "bytedance/seedance-2.0-fast",
      "object": "model",
      "name": "Seedance 2.0 Fast",
      "vendor": "ByteDance",
      "category": "video",
      "available": true,
      "url": "https://cheapergen.com/models/bytedance/seedance-2.0-fast",
      "endpoints": [
        {
          "id": "bytedance/seedance-2.0-fast/text-to-video",
          "mode": "text-to-video",
          "output": "video"
        },
        {
          "id": "bytedance/seedance-2.0-fast/image-to-video",
          "mode": "image-to-video",
          "output": "video"
        },
        {
          "id": "bytedance/seedance-2.0-fast/reference-to-video",
          "mode": "reference-to-video",
          "output": "video"
        }
      ],
      "pricing": {
        "unit": "second",
        "list_price_source": "official",
        "list_price_label": "Official",
        "tiers": [
          {
            "tier": "480p",
            "price_usd": 0.050086,
            "list_price_usd": 0.056246,
            "discount_pct": 11
          },
          {
            "tier": "720p",
            "price_usd": 0.08988,
            "list_price_usd": 0.12096,
            "discount_pct": 26
          }
        ]
      },
      "deprecation": null,
      "upcoming_price_changes": []
    }
  ]
}

説明を簡潔にするため、モデルを1つに絞って表示しています。

モデルを取得#

GET/api/v1/models/{vendor}/{model}公開 · 認証不要

各エンドポイントの入力用JSON Schemaを含むモデル情報を返します。フォーム作成や送信前のリクエスト検証に便利です。不明なモデルには404 not_foundを返します。

リクエスト
curl https://cheapergen.com/api/v1/models/bytedance/seedream-5.0-pro
レスポンス · 200 OK
{
  "id": "bytedance/seedream-5.0-pro",
  "object": "model",
  "name": "Seedream 5.0 Pro",
  "vendor": "ByteDance",
  "category": "image",
  "available": true,
  "description": "ByteDance Seedream 5.0 Proは、精密な複数画像編集と正確な文字描画で、ブランドに合った写実的な画像を最大2Kで生成・編集します。",
  "url": "https://cheapergen.com/models/bytedance/seedream-5.0-pro",
  "endpoints": [
    {
      "id": "bytedance/seedream-5.0-pro/text-to-image",
      "mode": "text-to-image",
      "label": "テキストから画像を生成",
      "output": "image",
      "input_schema": {
        "type": "object",
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "title": "プロンプト",
            "description": "ショットを説明してください:被写体、動き、カメラワーク、照明、スタイル。",
            "type": "string",
            "maxLength": 5000
          },
          "aspect_ratio": {
            "title": "アスペクト比",
            "description": "出力画像の形状。",
            "type": "string",
            "enum": [
              "1:1",
              "4:3",
              "3:4",
              "16:9",
              "9:16",
              "3:2",
              "2:3",
              "21:9"
            ],
            "default": "1:1"
          },
          "size": {
            "title": "サイズ",
            "description": "1K ≈ 1メガピクセル、2K ≈ 4メガピクセル。",
            "type": "string",
            "enum": [
              "1K",
              "2K"
            ],
            "default": "2K"
          },
          "seed": {
            "title": "シード値",
            "description": "同じ結果を再現するには、seedと設定を同じにしてください。ランダムにする場合は空欄のままにします。",
            "type": "integer",
            "minimum": 0,
            "maximum": 2147483647
          },
          "webhook_url": {
            "type": "string",
            "format": "uri",
            "title": "Webhook URL",
            "description": "Optional. We POST the finished generation here (signed)."
          }
        },
        "additionalProperties": false
      }
    }
  ],
  "pricing": {
    "unit": "image",
    "notes": [],
    "list_price_source": "official",
    "list_price_label": "Official",
    "tiers": [
      {
        "tier": "1K",
        "detail": "≈1 MP",
        "price_usd": 0.03325,
        "list_price_usd": 0.045,
        "discount_pct": 26
      },
      {
        "tier": "2K",
        "detail": "≈4 MP",
        "price_usd": 0.0665,
        "list_price_usd": 0.09,
        "discount_pct": 26
      }
    ]
  },
  "deprecation": null,
  "upcoming_price_changes": []
}

説明を簡潔にするため、エンドポイントを1つに絞って表示しています。

提供終了と価格変更#

値上げとモデルの提供終了は、事前にお知らせします。値上げは少なくとも14日前(契約でより早い通知が定められている場合はそれに従います)、モデルの提供終了は14〜30日前に、過去90日間に利用したお客様全員へメールで、また変更履歴(RSS)で告知します。APIにも同じ情報を含め、コードやエージェントから対応できるようにします:

deprecationobject | null
「モデル一覧を取得」と「モデルを取得」のレスポンスには、次の項目が含まれます。モデルの提供終了が予定されている間は、sunset_at(ISO 8601形式。以降のリクエストは410 model_delistedを返し、料金は発生しません)、replacement(推奨モデルIDを優先順に並べたもの)、reason、announced_at、info_urlが設定されます。それ以外ではnullです。
upcoming_price_changesarray
適用前のプラン別料金変更予定:tier、effective_at、current_price_usd、新しいprice_usdのunit単価。effective_atより前のリクエストには本日の価格が適用されます。生成の送信後に再計算されることはありません。予定がない場合は空になります。
warningsarray
「生成を送信」と「見積もりを取得」のレスポンスには、案内が必要な場合に限り、model_deprecated(sunset_atとreplacementを含む)またはリクエストのプランに応じたprice_change_scheduled(effective_atと新しいprice_usdを含む)が含まれます。各項目には、人が読めるmessageとinfo_urlがあります。
リクエスト
curl https://cheapergen.com/api/v1/models/bytedance/seedance-2.0-fast
レスポンス · 200 OK
{
  "id": "bytedance/seedance-2.0-fast",
  "object": "model",
  "…": "…",
  "deprecation": {
    "sunset_at": "2026-11-20T00:00:00.000Z",
    "replacement": [
      "bytedance/seedance-2.0-fast"
    ],
    "reason": "モデルの開発元が、このモデルの提供を終了します。",
    "announced_at": "2026-10-21T09:30:00.000Z",
    "info_url": "https://cheapergen.com/changelog#cm2x7k9"
  },
  "upcoming_price_changes": [
    {
      "tier": "720p",
      "effective_at": "2026-11-04T00:00:00.000Z",
      "unit": "second",
      "current_price_usd": 0.08,
      "price_usd": 0.092,
      "change_pct": 15,
      "info_url": "https://cheapergen.com/changelog#cm2x8a1"
    }
  ]
}

DeprecationとSunsetヘッダー#

モデルの提供終了が予定されている間、そのモデルに関するレスポンス — POST /run、POST /quote、GET /models/{vendor}/{model} — には標準ヘッダーが含まれます。HTTPクライアントやAPIゲートウェイで記録やアラートに利用できます:

レスポンスヘッダー
Deprecation: @1792575000
Sunset: Fri, 20 Nov 2026 00:00:00 GMT
Link: <https://cheapergen.com/changelog#cm2x7k9>; rel="deprecation"; type="text/html", <https://cheapergen.com/changelog#cm2x7k9>; rel="sunset"; type="text/html"

Deprecation(RFC 9745)は提供終了が発表された時刻を示すUnixタイムスタンプです。Sunset(RFC 8594)はリクエストの受付を停止する時刻です。切り替えは1行で済みます。置き換え先のエンドポイントに同じリクエストを送信してください(オプションが異なる場合は入力スキーマを確認してください)。

MCPでは、list_modelsとget_modelに同じdeprecation、upcoming_price_changesフィールドと1行のnoticeが含まれるため、提供終了予定のモデルを使う前にエージェントがユーザーに知らせることができます。

見積もりを取得#

POST/api/v1/quote/{endpoint}公開 · 認証不要

入力を実行せずに料金を計算します。解像度、長さ、サイズ、画像枚数など料金に関わる項目のみを読み取ります。promptや参照URLなどのコンテンツ項目は無視し、省略された項目にはデフォルト値を適用します。モデルが一時的に生成を受け付けていない場合はavailableをfalseとして返します。

参照動画の秒数も課金対象です。見積もりに含めるにはreference_video_durations(動画ごとに秒数を指定)を渡してください。これは見積もり用の目安です。/runが実際のファイルを計測し、実測した秒数に基づく料金を確保します。詳しくはお支払いをご覧ください。

リクエスト
curl -X POST https://cheapergen.com/api/v1/quote/bytedance/seedance-2.0-fast/text-to-video \
  -H "Content-Type: application/json" \
  -d '{"aspect_ratio":"16:9","resolution":"720p","duration":5}'
レスポンス · 200 OK
{
  "amount_usd": 0.4494,
  "list_usd": 0.6048,
  "list_price_source": "official",
  "list_price_label": "Official",
  "discount_pct": 26,
  "available": true,
  "currency": "usd"
}

個別料金を取得するにはAPIキーを送信します。アカウントに契約料金またはProまたはMaxプランが設定されている場合、見積もりにはcustom_price: trueとstandard_amount_usd(通常料金)、およびvolume_level(1または2。Proプランなら1、Maxプランなら2)が含まれます。

アカウント情報を取得#

GET/api/v1/accountAPIキーが必要

残高と自動チャージの設定を返します。balance_usdは現在利用可能な金額です。image_credit_usdは画像専用クレジット(ウェルカムクレジットなど)で、残高より先に画像モデルの料金に充てられ、動画には使えません。reserved_usdは実行中の生成処理のために残高から確保されている金額です。お支払いとクレジットをご覧ください。

リクエスト
curl https://cheapergen.com/api/v1/account \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "object": "account",
  "email": "you@company.com",
  "balance_usd": 42.5,
  "image_credit_usd": 0,
  "reserved_usd": 1.2,
  "auto_topup": {
    "enabled": true,
    "threshold_usd": 10,
    "amount_usd": 50
  },
  "limits": {
    "unlimited": false,
    "concurrent_generations": 20,
    "in_flight": 3,
    "requests_per_second": 10,
    "burst": 20,
    "tier": null
  }
}

limits はアカウントの API の上限と進行中の生成数です。上限のないアカウントでは各上限が null になり、unlimited: true が付きます。レート制限 を参照してください。

個別料金を確認#

GET/api/v1/account/pricingAPIキーが必要

月額プラン、プランで適用される利用量ティア、各ティアの個別料金と標準料金を返します。1つのモデルについては?model={vendor}/{model}を追加してください。従量課金にプランは不要です。その場合、planはnull、customはfalseです。月額プランをご覧ください。

customboolean
true:ProまたはMaxプラン、あるいは契約料金によって料金が下がっている場合。
planobject | null
現在の月額プラン:{ "id", "status" }(例:pro、active)。starter、pro、max。プラン未加入時はnull。
volumeobject
level:Proが有効な場合は1、Maxが有効な場合は2、それ以外はnull。
rulesarray
現在有効または予約済みの契約料金:scope、status、discount_pctまたはunit_price_usd、starts_at、ends_at、および読み取り可能なdescription。
modelsarray
プランまたはルールが適用されるすべてのモデル:id、name、unit、tiers。各モデルにはprice_usd(個別料金)、standard_price_usd、custom、volume_level(プラン適用時)、availableが含まれます。
リクエスト
curl "https://cheapergen.com/api/v1/account/pricing?model=bytedance/seedance-2.0-fast" \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
レスポンス · 200 OK
{
  "object": "customer_pricing",
  "custom": true,
  "plan": {
    "id": "pro",
    "status": "active"
  },
  "volume": {
    "level": 1
  },
  "rules": [],
  "models": [
    {
      "id": "bytedance/seedance-2.0-fast",
      "name": "Seedance 2.0 Fast",
      "unit": "second",
      "tiers": [
        "…"
      ]
    }
  ]
}

ファイルをアップロード#

POST/api/v1/uploadsAPIキーが必要

入力URLとして渡せるファイルをアップロードします。最初のフレーム、参照画像、参照動画、参照音声クリップに使用できます。アップロードの代わりに、公開HTTPS URLを直接渡すこともできます。

種類形式最大サイズ
画像PNG、JPEG、WebP、GIF20 MB
動画MP4、MOV50 MB
音声MP3、WAV、M4A(現在、モデルが受け付ける形式はMP3またはWAVです)15 MB

直接アップロード(推奨)#

JSONでファイルのfilename、content_type、sizeをバイト単位で送信します。短時間だけ有効なupload_urlが返されます。PUTを使って、返されたheadersをそのまま宛先へアップロードしてください。その後、urlを入力として使います。ファイルはストレージに直接送信されるため、上記以外にリクエストサイズの上限はありません。アップロードURLは15分後に期限切れになります。 sizeにはファイルの正確なバイト数を指定してください。PUTではそのバイト数をContent-Length付きで送信します(chunkedやストリーミングの本文は不可)。それ以外はストレージが403を返します。

リクエスト
curl -X POST https://cheapergen.com/api/v1/uploads \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"choreo.mp4","content_type":"video/mp4","size":8421903}'
レスポンス · 201 Created
{
  "object": "upload",
  "method": "PUT",
  "upload_url": "https://storage.example.com/media/uploads/7f3k2m9q/0b8d2c5e1a7f4h6j9k3m.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&…",
  "headers": {
    "Content-Type": "video/mp4"
  },
  "url": "https://cdn.cheapergen.com/uploads/7f3k2m9q/0b8d2c5e1a7f4h6j9k3m.mp4",
  "kind": "video",
  "content_type": "video/mp4",
  "bytes": 8421903,
  "expires_at": "2026-10-15T09:36:04.000Z"
}
続けてファイルをアップロード
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @choreo.mp4

マルチパート形式でアップロード#

別の方法として、multipart/form-dataとfileフィールドを送信すると、こちらでファイルを保存します(201 Created、url)。この方法ではAPI経由で転送するため、リクエスト本文は約4.5 MBまでです。大きいファイルには直接アップロードを使用してください。デプロイ環境で直接アップロードを利用できない場合、JSONリクエストは501 direct_upload_unavailableを返します。代わりにマルチパート形式を使ってください。

リクエスト
curl -X POST https://cheapergen.com/api/v1/uploads \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -F "file=@first-frame.png"
レスポンス · 201 Created
{
  "object": "upload",
  "url": "https://cdn.cheapergen.com/uploads/7f3k2m9q/0b8d2c5e1a7f4h6j9k3m.png",
  "kind": "image",
  "content_type": "image/png",
  "bytes": 1834221
}

アップロードした画像を使う#

返されたURLを、画像から動画を生成するエンドポイントまたは編集エンドポイントのimageフィールドに渡します:

curl -X POST https://cheapergen.com/api/v1/run/bytedance/seedance-2.0-fast/image-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "カメラがゆっくり近づき、彼女が振り向いて微笑む。風に髪がなびく。",
  "image_url": "https://cdn.cheapergen.com/uploads/7f3k2m9q/0b8d2c5e1a7f4h6j9k3m.png",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 5
}'

モデルごとの参照情報

各モデルのAPIページには、入力項目の型、デフォルト値、許可値とコピーして使える例を掲載しています。まずはモデル一覧からご確認ください。

不明な点や不足している情報がありますか?support@cheapergen.com — すべて目を通しています。