APIリファレンス

すべてのエンドポイントと、そのリクエストおよびレスポンスの形状。すべてのルートは https://sketchie.ai/api を基準とする相対パスです。

規約

すべての /v1/* エンドポイントは Authorization: Bearer sk_... ヘッダーを必要とします。エラーは error フラグと message を持つ JSON として返ります:

エラーレスポンス
{
  "error": true,
  "message": "length must be a positive multiple of 30 seconds, at most 360"
}

生成エンドポイントは 1 分あたり 20 リクエストにレート制限されます。他のすべてのエンドポイントは 1 分あたり 200 の制限を共有します。

解説動画を作成する

POST https://sketchie.ai/api/v1/explainer

生成を開始し、キューに入ったレコードとともに 202 Accepted を返します。ready になるまで 解説動画を取得をポーリングします。

リクエストボディ
{
  "input": "Explain how DNS resolves a domain name",
  "length": "0:30",
  "aspect": "16:9",
  "voice": "sketchie:sulafat",
  "language": "en"
}
フィールド備考
input string 説明する内容。短いプロンプトまたは完全なドキュメントテキスト。source または sceneGraph が存在しない限り必須。エイリアス: prompt
length string or number "M:SS""0:30""1:00")または秒での目標の長さ。30 の正の倍数、最大 360。自動の長さにするには省略します。エイリアス: lengthSeconds(数値)。
voice string 任意。音声リファレンス。デフォルトは標準ナレーター(Nora)。音声を参照。
language string 任意。サポートされている言語コード(デフォルト en)。言語を参照。
aspect string 任意。16:9(デフォルト)、9:16、または 1:1
source string 任意。解説動画にするドキュメント、記事、または書き起こし。存在する場合、input は任意のガイダンスになります。
preset string 任意の描画スタイル: marker(デフォルト)、chalkboardpencilblueprintcrayonclean
fillMode string 任意のリベール塗りつぶし技法: ABC(デフォルト)、または D
sceneGraph object 任意。事前に作成された scene graph。ワーカーはグラフ生成をスキップして直接レンダリングしますが、このエンドポイントは依然として新しい解説動画を作成し、呼び出し元の通常の無料枠または有料プランのクォータを消費します。既存の解説動画を編集するには、解説動画を編集を使用します。

解説動画レコードを返します: idstatuspromptlengthSecondsvoicelanguageaspectvideoUrl(準備完了まで null)、sceneGraph(生成まで null)。source なしの空の input、不正な length、または無効な aspectpresetfillModelanguage の場合は 400 が返ります。

解説動画を取得する

GET https://sketchie.ai/api/v1/explainer/:id

完全なレコードを返します: 現在の statusready になったときの videoUrl、編集可能な sceneGraph、バージョン履歴(versions)、ヘッドバージョンのシーン chunks。存在しない id は 404 を返します。

解説動画を一覧する

GET https://sketchie.ai/api/v1/explainer?limit=50

呼び出しキーの解説動画を新しい順に一覧します。キーの所有者にスコープされます。limit は 1〜100 にクランプされます(デフォルト 50)。軽量な要約を返します(scene graph やバージョンなし)。完全なレコードには 解説動画を取得を使用します。

解説動画を編集する

POST https://sketchie.ai/api/v1/explainer/:id/edit

編集可能性のくさび。平易な言葉の指示をターゲットを絞った再レンダリングに変えます。影響を受けるシーンのみが再レンダリングされ、新しいバージョンが生成されます。キューに入ったバージョンとともに 202 を返します。ヘッドバージョンが ready になるまで 解説動画を取得をポーリングします。これは既存の動画に追加されるため、別の無料動画作成枠を消費しません。各動画の最初の再レンダリングは無料です。以降の再レンダリングは有料プランの分数を使用し、無料アカウントはプランの開始を求められます。解説動画はすでに ready でなければなりません(そうでない場合 409)。

リクエストボディ
{ "instruction": "Make the title scene shorter and warmer" }

バージョンに戻す

POST https://sketchie.ai/api/v1/explainer/:id/revert

ヘッドを以前の準備完了バージョンに再ポイントし、そのグラフと動画をレコードに反映します。ターゲットは動画を持つ ready バージョンでなければなりません(そうでない場合 409)。

リクエストボディ
{ "versionId": "..." }

ライブステータスストリーム

GET https://sketchie.ai/api/v1/explainer/events

Server-Sent Events ストリーム(text/event-stream)。1 つの接続を開くと、いずれかの解説動画のあらゆるステータス遷移が event: status フレームとして届くため、ポーリングの代わりにワーカーが完了した瞬間に「動画準備完了」状態を更新できます。ストリームはキーの所有者にスコープされます。

音声

GET https://sketchie.ai/api/v1/voices

ナレーション音声カタログ。任意の ?language=<code> はその言語をネイティブとする音声にフィルタします。voices(それぞれ分かりやすい namevoice として渡す idlanguageisDefault、再生可能な preview_url)とグローバルな default を返します。音声を参照。

言語

GET https://sketchie.ai/api/v1/languages

サポートされているナレーション言語を { code, label, native } として。すべての code は作成時の有効な language です。言語を参照。

アカウント状態

GET https://sketchie.ai/api/v1/account/state

videosGenerated(生涯)、アカウントの imageisAdmin を返します。認証が必要です。

請求ステータス

GET https://sketchie.ai/api/v1/billing/status

認証が必要で、無料アカウントと有料アカウントの両方で 200 を返します。無料アカウントは plan: "free"videoAllowancevideosUsedvideosRemaining を返します。有料アカウントはさらに planLabelbillingIntervaltrialStatusquotaMinutesminutesUsedThisPeriodminutesRemainingbonusMinutes を返します。

ランタイム設定とヘルス

GET https://sketchie.ai/api/config

パブリック。{ "authEnforced": true } を返します。生存確認は GET /health にあります。