VanceAI Open API documentation
VanceAI API
概要
VanceAI の画像・動画 AI 処理を自社アプリから直接実行できます。単一の API キー、両メディアタイプに共通の統一ジョブ API、そしてストレージ・アップロード・スケジューリングの詳細を隠したわかりやすいツール名を提供します。
できること
API は VanceAI の処理エンジンを、小さく安定した REST エンドポイント群として公開します。ファイルまたは URL でジョブを送信し、完了をポーリングして結果をダウンロードします。画像と動画の両ツールは同じ /v1/jobs リソース配下にあり、選んだ tool がメディアタイプと処理内容を決めます。
| メディア | ツールの例 |
|---|---|
| 画像 | アップスケール、シャープ化、ノイズ除去、背景除去、復元、カートゥーン化、証明写真 |
| 動画 | アップスケール、SDR→HDR、顔補正 |
ベース URL
すべての API リクエストの送信先:
https://cloud-vanceai.vanceai.com/api/v1すべてのレスポンスは application/json です。すべてのリクエストは API キーで認証する必要があります — 認証を参照してください。
仕組み
API は完全に非同期で、3 つのステップで構成されます:
POST /v1/jobs → returns a job_id immediately (status: "queued")
GET /v1/jobs/{id} → poll until status is "succeeded" or "failed"
GET /v1/jobs/{id}/result → fetch a fresh, never-expiring download linkPOST はアップロードや処理中にブロックしません。リクエストを検証してジョブを予約し、数ミリ秒で job_id を返します。その後はバックグラウンドワーカーがアップロード・処理・結果を担うため、数ギガバイトの動画でも HTTP タイムアウトに達することなく処理できます。
主要な概念
| 概念 | 概要 |
|---|---|
| ジョブとライフサイクル | 処理の単位。POST で作成し GET でポーリングします。ライフサイクルは queued → processing → succeeded / failed / canceled。 |
| ツール | メディアタイプと処理を選択する、わかりやすく安定した名前(例:upscale、video_upscale)。 |
| クレジットと課金 | 処理はクレジットを消費します。ジョブ開始時に予約(凍結)され、失敗・キャンセル時には全額返還されます。 |
| API キーの管理 | sk_live_ キーはアカウントを識別します。アカウントのダッシュボードで作成・無効化します。 |
v1 はポーリングのみ
GET /v1/jobs/{id} をポーリングして確認します。Webhook コールバックは v1.1 で予定しています。v1 の全範囲は変更履歴を参照してください。次のステップ
- 認証 — API キーの取得と使用。
- クイックスタート — 数分で最初のジョブを実行。
- ジョブとライフサイクル — エンドポイントの完全リファレンス。
はじめに
認証
VanceAI API は API キーでリクエストを認証します。キーはアカウントの権限を持つため、秘密に保管してください。
API キー
キーは次のような形式で、常に sk_live_ プレフィックスで始まります:
sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6キーは VanceAI アカウントのダッシュボードで作成・無効化します。完全なキーは作成時に一度だけ表示されます — 安全な場所に保管してください。紛失した場合はキーを無効化して新規作成します。API キーの管理を参照してください。
リクエストの認証
すべてのリクエストで、キーを Authorization ヘッダーに bearer トークンとして送信します:
Authorization: Bearer sk_live_a1b2c3d4e5f6...例えば、クレジット残高を確認するには:
curl https://cloud-vanceai.vanceai.com/api/v1/credits \
-H "Authorization: Bearer sk_live_a1b2c3d4e5f6..."キーを秘密に保つ
sk_live_キーをクライアントコード、モバイルアプリ、公開リポジトリで決して露出しないでください。- API 呼び出しは自社バックエンドからのみ行ってください。
- アプリや環境ごとに別々のキーを使えば、他に影響を与えずに 1 つだけ無効化できます。
認証エラー
キーが欠落・不正・無効化されている場合は、安定したエラーコードとともに 401 を返します:
{
"error": {
"code": "invalid_api_key",
"message": "The API key provided is invalid or has been disabled.",
"type": "auth"
}
}コードの全リストと処理方法はエラーを参照してください。
はじめに
クイックスタート
このガイドでは画像アップスケールジョブの全工程(送信・ポーリング・ダウンロード)を解説します。数分で完了し、curl のみを使用します。
1. ジョブを送信する
画像を tool とその config とともに multipart form data で送信します。ファイルを直接アップロード(最大 200 MB)するか、公開 image_url を渡せます。
curl https://cloud-vanceai.vanceai.com/api/v1/jobs \
-H "Authorization: Bearer sk_live_..." \
-F [email protected] \
-F tool=upscale \
-F 'config={"scale":4,"face_enhance":true}' \
-F output_format=jpgまたは JSON ボディで URL を送信します:
curl https://cloud-vanceai.vanceai.com/api/v1/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/photo.jpg",
"tool": "upscale",
"config": { "scale": 4, "face_enhance": true },
"output_format": "jpg"
}'レスポンスは即座に job_id と queued ステータスを返します:
{
"job_id": "job_3f2a9c...",
"status": "queued",
"tool": "upscale",
"media": "image",
"credits_estimated": 1.0,
"credits_charged": 0,
"created_at": "2026-06-11T08:30:00Z"
}2. 完了までポーリングする
status が succeeded(または failed)になるまで GET /v1/jobs/{job_id} をポーリングします。画像なら約 2 秒間隔で十分です。
curl https://cloud-vanceai.vanceai.com/api/v1/jobs/job_3f2a9c... \
-H "Authorization: Bearer sk_live_..."{
"job_id": "job_3f2a9c...",
"status": "succeeded",
"progress": 100,
"tool": "upscale",
"result_url": "https://.../preview?sign=...",
"result": { "width": 4000, "height": 3000, "size": 2451234 },
"error": null,
"created_at": "2026-06-11T08:30:00Z",
"finished_at": "2026-06-11T08:30:42Z"
}3. 結果をダウンロードする
ステップ 2 の result_url は署名付きリンクで、いずれ期限切れになります。期限切れにならないリンクには、必要時に再署名する result エンドポイントを呼び出します:
curl -L https://cloud-vanceai.vanceai.com/api/v1/jobs/job_3f2a9c.../result \
-H "Authorization: Bearer sk_live_..." \
-o upscaled.jpgガイド
ジョブとライフサイクル
ジョブは 1 つの処理タスク(画像または動画)を表します。作成し、ステータスをポーリングして結果をダウンロードします。本ページは /v1/jobs リソースの完全リファレンスです。
ジョブのライフサイクル
すべてのジョブは次のステータスを遷移します:
| status | 意味 |
|---|---|
queued | 受理されワーカーを待っている状態。バックログによっては少し滞留することがあります。 |
processing | 処理中。phase フィールドがサブステップを示します。 |
succeeded | 完了。result_url と result が利用可能です。 |
failed | 失敗。error に安定したコードが入ります。 |
canceled | あなたによりキャンセル。予約済みクレジットは返還されます。 |
processing 中は phase フィールドで段階を絞り込めます:uploading → syncing → processing。数値の progress(0–100)は phase が processing になって初めて意味を持ち、アップロード/同期中は 0 のままです。大きな動画ではアップロード段階が数分かかることがあります — 「止まっているか」は progress ではなく phase で判断してください。
動画をアップロードする
動画は 2 ステップでストレージへ直接アップロードします。バイトが API を経由しないため、数ギガバイトのファイルでもリクエストサイズに制限されません。まず POST /v1/uploads を呼び出して使い捨ての署名付きアップロード URL を取得し、そこへファイルを PUT します。画像はこの手順を省き、ジョブ作成時にインラインでアップロードします(下記参照)。動画の multipart 直接アップロードには対応していません。代替として source_url は引き続き利用できます。
/v1/uploadsリクエストパラメータ
| Field | Type | Description |
|---|---|---|
| file_namerequired | string | 動画拡張子を含むファイル名(例:clip.mp4)。ストレージキーとコンテンツタイプの導出に使われます。 |
| file_size | number | 任意。ファイルサイズ(バイト単位)。指定した場合、単一アップロード上限(レスポンスの max_bytes、約 4.9 GB)を超えるとリクエストは即座に失敗します。指定しない場合でもアップロード時に上限が適用されます。 |
| content_type | string | 任意の MIME タイプ(例:video/mp4)。省略時は拡張子から推測されます。 |
例
curl https://cloud-vanceai.vanceai.com/api/v1/uploads \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"file_name": "clip.mp4",
"file_size": 734003200,
"content_type": "video/mp4"
}'レスポンス — 201 Created
{
"upload_id": "upl_8f3b1c2a...",
"put_url": "https://<bucket>.r2.cloudflarestorage.com/...&X-Amz-Signature=...",
"expires_at": "2026-06-13T08:30:00Z",
"max_bytes": 5261334937
}put_url は 24 時間有効な署名付き URL です。認証ヘッダーなしで、ファイルだけを 1 回の PUT でアップロードします:
curl -X PUT --upload-file clip.mp4 \
-H "Content-Type: video/mp4" \
"https://<bucket>.r2.cloudflarestorage.com/...&X-Amz-Signature=..."PUT が成功したら、ファイルの代わりに upload_id を渡してジョブを作成します — ジョブを作成するを参照。各 upload_id は 1 回限り使用できます。
curl https://cloud-vanceai.vanceai.com/api/v1/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"upload_id": "upl_8f3b1c2a...",
"tool": "video_upscale",
"config": { "scale": 2, "codec": "h264" }
}'{
"job_id": "job_3f2a9c...",
"status": "queued",
"tool": "video_upscale",
"media": "video",
"credits_estimated": 0,
"credits_charged": 0,
"created_at": "2026-06-11T08:30:00Z"
}サイズ上限と有効期限
PUT は最大約 4.9 GB です(正確なバイト上限は max_bytes)。より大きいファイルのアップロードを要求すると 413 file_too_large を返します。署名付き URL は 24 時間後に失効し、未使用の upload_id は upload_expired となるため、新しく取得し直す必要があります。ジョブを作成する
/v1/jobsメディアの指定方法はタイプによって異なります。画像:ファイルの直接アップロード(multipart)または公開 URL。動画:上記のアップロード手順で得た upload_id、または公開 source_url。tool がメディアタイプと処理を選択します。
リクエストパラメータ
| Field | Type | Description |
|---|---|---|
| image / file | file | 画像のみ:バイナリアップロード(multipart)。file はエイリアスとして利用可能です。動画には upload_id を使用します。 |
| upload_id | string | 動画のみ:ファイルをアップロードした後に POST /v1/uploads が返す upload_id。1 回限り使用可能です。 |
| image_url / source_url | string | 取得対象の公開アクセス可能な URL(画像または動画)。ファイル/upload_id の代わりに使用します。source_url はエイリアスとして利用可能です。 |
| toolrequired | string | 処理内容(例:upscale や video_upscale)。ツールを参照。 |
| config | object | ツール固有のオプション(画像と動画でオプションは異なります)。ツールを参照。 |
| output_format | string | 画像のみ:jpg(既定)、png、webp。動画では無視されます(config.codec を使用)。 |
冪等性
Idempotency-Key ヘッダーを渡すと、ジョブを重複させずに作成リクエストを安全に再試行できます。レート制限と冪等性を参照。
例
curl https://cloud-vanceai.vanceai.com/api/v1/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: a-unique-string" \
-F [email protected] \
-F tool=upscale \
-F 'config={"scale":4,"face_enhance":true}'レスポンス — 202 Accepted
{
"job_id": "job_3f2a9c...",
"status": "queued",
"tool": "upscale",
"media": "image",
"credits_estimated": 1.0,
"credits_charged": 0,
"created_at": "2026-06-11T08:30:00Z"
}レスポンスはクレジットが課金される前に返ります(credits_charged は 0)。credits_estimated は事前見積もりで、確定額はジョブが processing に達した時点で反映されます。クレジットと課金を参照。
大きいファイルと URL
413 file_too_large を返します — source_url に切り替えてください。動画は multipart を一切経由しません — アップロード手順(1 回の PUT で最大約 4.9 GB)でアップロードするか、source_url を渡します。サーバー側の URL 取得は SSRF 対策が施されており、http/https のみ許可、プライベート/内部ネットワーク宛先は拒否されます。ジョブを取得する
/v1/jobs/{job_id}ジョブの現在のステータスを返します。ジョブが終了ステータスに達するまでポーリングします。
レスポンス — 200(processing)
{
"job_id": "job_3f2a9c...",
"status": "processing",
"phase": "uploading",
"progress": 0,
"tool": "video_upscale",
"media": "video",
"result_url": null,
"result": null,
"error": null,
"created_at": "2026-06-11T08:30:00Z",
"finished_at": null
}レスポンス — 200(succeeded)
{
"job_id": "job_3f2a9c...",
"status": "succeeded",
"progress": 100,
"tool": "upscale",
"result_url": "https://.../preview?sign=...",
"result": { "width": 4000, "height": 3000, "size": 2451234 },
"error": null,
"created_at": "2026-06-11T08:30:00Z",
"finished_at": "2026-06-11T08:30:42Z"
}result の形は画像で { width, height, size }、動画で { width, height, duration, size, codec } です。result_url は署名付きリンクで期限切れになります — 恒久リンクには下記の result エンドポイントを使用してください。
結果を取得する
/v1/jobs/{job_id}/result新しく署名された結果 URL に(302)リダイレクトします — 呼び出すたびに再署名されるため、リンクは期限切れになりません。result_url をキャッシュするのではなく、出力をダウンロードする際は常にこれを使用してください。
curl -L https://cloud-vanceai.vanceai.com/api/v1/jobs/job_3f2a9c.../result \
-H "Authorization: Bearer sk_live_..." \
-o result.jpg結果がまだ準備できていない場合
202 result_not_ready を返すことがあります — 少し待って再試行してください。結果のダウンロードで追加クレジットがかかることはありません。ジョブをキャンセルする
/v1/jobs/{job_id}/cancelまだ queued または processing のジョブをキャンセルします。主に長時間の動画ジョブで有用です。予約済みクレジットは全額返還されます。
{ "job_id": "job_3f2a9c...", "status": "canceled" }すでに succeeded・failed・canceled のジョブは 409 not_cancelable を返します。
ジョブを削除する
/v1/jobs/{job_id}ジョブレコードと関連する結果を削除します — プライバシーやコンプライアンス目的で処理済みアセットを整理するのに便利です。ジョブがまだ進行中の場合は、先にキャンセルされ(クレジットは返還され)ます。
{ "job_id": "job_3f2a9c...", "deleted": true }- すでに削除済みのジョブを削除しても
200 { "deleted": true }を返します(冪等)。 - 削除できるのは自分のアカウントのジョブのみです。それ以外は
404 job_not_foundを返します。
ガイド
ツール
POST /v1/jobs に渡す tool が、メディアタイプと処理の両方を選択します。画像ツールは単純な名前、動画ツールは video_ プレフィックス付きです。
画像ツール
画像ツールは config オブジェクトを取ります。face_enhance オプション(真偽値)はほとんどのツールで任意です。リクエストに output_format を設定して jpg / png / webp を選びます。
| tool | config オプション |
|---|---|
upscale | scale(2 / 4 / 8、既定 2)、face_enhance |
sharpen | face_enhance |
denoise | face_enhance |
remove_bg | none |
restore | face_enhance |
cartoonize | style, face_enhance |
passport_photo | none |
custom | prompt, face_enhance |
{ "scale": 4, "face_enhance": true }バリデーション
upscale.scale は 2・4・8 のいずれか、custom には空でない prompt が必要です。不正な値は 400 invalid_parameter を返します。元画像の寸法を送る必要はありません — アップロード時に検出され、目標サイズの計算に使われます。動画ツール
動画ツールはエンドツーエンドで処理されます(v1 にプレビュークリップモードはありません)。quality(high / medium / low)と codec(h264 / h265)のオプションは video_hdr と video_face_enhance にのみ適用されます。video_upscale では出力エンコードがアップスケールエンジンによって決定されるため、quality / codec は使用されません(指定しても効果はありません)。
| tool | config オプション |
|---|---|
video_upscale | scale(2 / 4、既定 2)、fps |
video_hdr | quality、codec、hdr_color_gamut |
video_face_enhance | face_enhanced_mode、quality、codec |
{ "scale": 2 }元動画の寸法はサーバー側で計測されます
ffprobe で)計測します — クライアント申告値は信頼しません。事前のクレジット見積もりを得るために config に source_width / source_height / duration を任意で含められますが、確定額は常に計測値に基づきます。出力解像度には上限があり(長辺 4096・短辺 2160)、超えるとクレジットが課金される前に resolution_limit_exceeded でジョブが失敗します。未対応のツール
存在しないツール、または未提供のツール(動画の translate・colorize・subtitle は v1 にありません)を要求すると 400 unsupported_tool を返します。
ガイド
クレジットと課金
処理はアカウントのクレジットを消費します。クレジットはジョブ開始時に予約され、成功時に確定、失敗・キャンセル時に全額返還されます。
課金の仕組み
ジョブのライフサイクルにおけるクレジットの流れ:
| 段階 | クレジットに起こること |
|---|---|
ジョブ作成(queued) | まだ課金されません — credits_charged は 0。 |
| ワーカーが処理を開始 | クレジットが予約(凍結)されます。残高が不足していると、ジョブは insufficient_credits で失敗します。 |
ジョブ succeeded | 予約が確定し、クレジットが差し引かれます。 |
ジョブ failed / canceled | 予約が解放され、クレジットは全額返還されます。 |
| 結果のダウンロード | 無料 — 再課金されません。 |
送信時の事前チェック
POST すると、API はキュー投入前に残高を簡易チェックします。見積もり費用が利用可能残高をすでに超えている場合は、即座に 402 insufficient_credits を返します — 大きなアップロードが無駄になりません。確定的な予約はワーカー開始時に行われます。残高を取得する
/v1/creditscurl https://cloud-vanceai.vanceai.com/api/v1/credits \
-H "Authorization: Bearer sk_live_..."{ "balance": 999.8, "used": 234.2, "frozen": 12.5 }| Field | Type | Description |
|---|---|---|
| balance | number | 今すぐ使えるクレジット(凍結分は除外済み)。 |
| used | number | 完了したジョブが消費したクレジット。 |
| frozen | number | 進行中のジョブが現在予約しているクレジット(まだ確定・解放されていない)。 |
クレジット量は小数です(一部の処理は 1 クレジット未満を消費します)。
ガイド
レート制限と冪等性
プラットフォームは 2 つの制限で保護されます:キーごとのリクエストレートと、アカウントごとの同時ジョブ数上限。冪等キーを使うとジョブ作成を安全に再試行できます。
リクエストレート(キーごと)
各 API キーにはリクエストレート制限があります。超過すると、現在のウィンドウを示すヘッダーとともに 429 rate_limited を返します:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1718093460レスポンスには Retry-After ヘッダー(秒)が含まれることもあります — 再試行前にこれに従ってください。
同時実行(アカウントごと)
1 つの動画ジョブが数分かかることがあるため、リクエストレートだけでは不十分です。アカウントが同時に進行(queued または processing)できるジョブ数にも上限があり、通常は画像より動画の方が小さく設定されます。
上限を超えて送信すると 429 concurrency_limit_exceeded を返します。進行中のジョブがいくつか完了するのを待ってから再試行してください。カウントはアカウント単位で集計されるため、複数キーに分散しても回避できません。
ポーリングの指針
v1 に Webhook はないため GET /v1/jobs/{id} をポーリングします。API に過負荷をかけないために:
- 推奨間隔:画像は約 2 秒、動画は 5~10 秒。
Retry-Afterヘッダーがあれば従ってください — 次回ポーリングのヒントです。- ジョブが終了ステータス(
succeeded/failed/canceled)に達したらポーリングを停止します。
冪等性
ネットワークの不調で POST /v1/jobs が成功したか不明になることがあります。安全に再試行するには、一意の Idempotency-Key ヘッダーを送信します:
curl https://cloud-vanceai.vanceai.com/api/v1/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: 8f3b1c2a-...-unique" \
-F [email protected] \
-F tool=upscale- 同じキーを再送すると元のジョブが返ります — 重複ジョブも二重課金もありません。
- 論理的なリクエストごとに新しいキーを生成します(UUID が適しています)。
- 異なる
toolやconfigで同じキーを再利用すると409 idempotency_conflictを返します。
キーの有効期間
ガイド
エラー
エラーは安定したコードを持つ一貫した JSON 形式で返り、分岐に使えます。2 種類あります:リクエストエラー(HTTP エラーステータスで返る)と、ジョブエラー(成功した HTTP ポーリングで status: failed として返る)。
エラー形式
{
"error": {
"code": "insufficient_credits",
"message": "Your account does not have enough credits for this operation.",
"type": "billing"
}
}code は安定した文字列です — これで分岐します。message は人間可読で変わる可能性があります。type は大分類で、auth・billing・validation・processing・rate_limit・server のいずれかです。
リクエストエラー(HTTP ステータス)
リクエストが即座に拒否されると、対応する HTTP ステータスと error ボディが返ります:
| HTTP | code | 発生条件 |
|---|---|---|
| 401 | invalid_api_key | API キーが欠落・無効・無効化されている。 |
| 401 | unauthorized | 認証に失敗した。 |
| 402 | insufficient_credits | 送信時の事前残高チェックに失敗した。 |
| 400 | invalid_parameter | パラメータが欠落または不正。 |
| 400 | unsupported_tool | ツールが存在しないか v1 で未提供。 |
| 403 | geo_restricted | お住まいの地域でブロックされている。 |
| 404 | job_not_found | アカウントに該当ジョブがない。 |
| 413 | file_too_large | 画像の直接アップロードが 200 MB 超、または動画アップロードが単一 PUT 上限(約 4.9 GB)超。 |
| 415 | unsupported_format | 直接アップロードが未対応形式。 |
| 409 | not_cancelable | ジョブはすでに終了状態。 |
| 409 | idempotency_conflict | 同じ冪等キーを異なる tool/config で使用。 |
| 404 | upload_not_found | upload_id が存在しないか、別アカウントのもの。 |
| 409 | upload_already_consumed | upload_id は別のジョブで使用済み(1 回限り)。 |
| 410 | upload_expired | upload_id が使用前に失効(24 時間)— 新しく取得し直す。 |
| 202 | result_not_ready | 結果がまだ同期中 — 少し待って /result を再試行。 |
| 429 | rate_limited | キーごとのリクエストレート超過。 |
| 429 | concurrency_limit_exceeded | アカウントの進行中ジョブが多すぎる。 |
| 503 | service_unavailable | 下流の依存先が一時的に利用不可 — 再試行。 |
| 500 | internal_error | 予期しないサーバーエラー。 |
ジョブエラー(status: failed)
ジョブが*非同期に*失敗した場合、GET /v1/jobs/{id} のポーリングは status: "failed" と error.code のコードを伴って HTTP 200 を返します。失敗ジョブで 5xx を期待しないでください — クエリ自体は成功しています。
| `error.code` | type | 発生条件 |
|---|---|---|
processing_failed | processing | 処理エンジンがタスクを完了できなかった。 |
processing_timeout | processing | ジョブが最大処理時間を超過した(クレジット返還)。 |
file_too_large | validation | 取得した source_url が 200 MB を超えた。 |
unsupported_format | validation | 取得した source_url の種別がツールに合致しなかった。 |
ssrf_blocked | validation | source_url が許可されない(プライベート/内部)アドレスに解決された。 |
insufficient_credits | billing | 確定予約の前に残高が消費された。 |
upload_incomplete | validation | アップロード済みオブジェクトが存在しないか不完全 — ジョブ作成前にファイルが完全に PUT されていなかった。 |
resolution_limit_exceeded | validation | 出力解像度がエンジン上限(長辺 4096・短辺 2160)を超過。課金なし。 |
再試行
service_unavailable や一時的な 5xx は再試行可能(できればバックオフ付き)として扱ってください。billing・auth・validation エラーは恒久的として扱い、再試行ではなくリクエストを修正してください。アカウント
API キーの管理
API キーは VanceAI アカウントのダッシュボードで作成・管理します。各キーはアカウントに属し、アカウントのクレジット残高から消費します。
キーを作成する
ダッシュボードで新しいキーを作成し、識別しやすい名前(例:my-app-prod)を付けます。sk_live_ で始まる完全なシークレットは、作成直後に一度だけ表示されます。
キーをすぐにコピーする
キーを表示する
ダッシュボードはキーを名前、ステータス、識別用の短いプレフィックス(例:sk_live_a1b2)、最終使用日時で一覧表示します。完全なシークレットは二度と表示されず、プレフィックスのみです。
キーを無効化する
キーの無効化は即座に有効になります — そのキーでの以降のリクエストは 401 invalid_api_key を返します。
- 無効化は恒久的です。再有効化はできません。代わりに新しいキーを作成してください。
- 管理できるのは自分のアカウントに属するキーのみです。
キーを安全にローテーションする
複数のアクティブキーを併用できるため、ローテーションはシームレスです:新しいキーを作成し、アプリを切り替え、トラフィックが移行したことを確認してから古いキーを無効化します。アプリや環境ごとに別のキーを使うと、漏洩時の影響範囲を限定できます。
リソース
バージョンと変更履歴
API は URL パスでバージョン管理されます。現行バージョンは v1 で、/api/v1 配下で提供されます。
v1 — 現行
最初の安定版には以下が含まれます:
- 画像・動画共通の統一ジョブ API —
POST /v1/jobs、GET /v1/jobs/{id}、GET /v1/jobs/{id}/result、POST /v1/jobs/{id}/cancel、DELETE /v1/jobs/{id}、GET /v1/credits。 - 8 つの画像ツールと3 つの動画ツール(アップスケール、HDR、顔補正)。
- 大きいファイル:画像の直接アップロードは最大 200 MB、動画は二段階直接アップロード、任意のメディアは
source_url経由(SSRF 対策付き)。 - 事前クレジットチェックとバックグラウンドワーカーによる非同期処理。
- 失敗・キャンセル時に全額返還されるクレジット予約。
- 安定したエラーコード、
Idempotency-Key対応、キーごとのレート制限とアカウントごとの同時実行制限。 - 動画の二段階直接アップロード —
POST /v1/uploadsが署名付き URL を発行し、動画をストレージへ直接アップロード(1 回のPUTで最大約 4.9 GB)してリクエストサイズ制限を回避します。 - 正確な動画課金 — サーバーが
ffprobeで解像度・長さ・フレームレートを計測し、出力解像度をエンジン上限に対して事前チェックします。