本文へスキップ

公式 SDK

5 言語に対応した公式 SDK

パッケージを 1 つインストールすれば、自分のサーバーから画像・動画・音声モデルを呼び出せます。認証と結果の待機は SDK が引き受けるので、リクエストを書いて答えを読むだけです。

SDK が代わりにやってくれること

書くのは関数の呼び出し 1 回だけ。リクエストの署名、ファイルのアップロード、結果の待機は SDK が行い、結果は型付きのデータで返ります。

  1. あなたのコード関数を 1 回呼ぶだけ
  2. 公式 SDK署名、アップロード、結果の待機を担当
  3. 画像・動画・音声モデルウェブサイトと同じモデル、同じ料金
SDK がなくても、同じリクエストを HTTPS で自分で送れます。SDK は定型処理を省くためのものです。

こんなときに

  • バックエンドサービス自社の API やジョブキューの中でメディアを生成できます。
  • スクリプトとバッチ処理スプレッドシートや定期ジョブから、まとめてタスクを作成できます。
  • サーバーのあるアプリキーはサーバーに置いたまま、完成したファイルだけをユーザーに届けられます。

3 ステップで始める

  1. ステップ 1

    API キーを作成

    コンソールで作成し、サーバーに SPICY_API_KEY として保存します。

  2. ステップ 2

    パッケージをインストール

    下から使う言語を選んで、インストールのコマンドを実行します。

  3. ステップ 3

    タスクを作成して結果を受け取る

    プロンプトを送り、タスクの完了を待って、返ってきたファイルを保存します。

言語を選ぶ

どの SDK も各言語の主要なレジストリで公開されていて、同じ API につながります。タブを切り替えると、インストール方法と完全なリクエスト例を確認できます。

TypeScript

@spicyapi/sdk

Node.js 22.13+ が必要です

サーバー側でタスクを作成し結果を保存します。インストール、キーをエクスポート、実行。

インストール · bash
npm install @spicyapi/sdk
export SPICY_API_KEY="injected from your secret manager"
タスクを作成して結果を受け取る · ts
import { randomUUID } from "node:crypto";
import { SpicyClient } from "@spicyapi/sdk";

const client = new SpicyClient();
const model = await client.getModel("MODEL_ID_FROM_CATALOG");
const task = await client.run(
  { model: model.model, input: { prompt: "A cinematic night portrait" } },
  { idempotencyKey: randomUUID() },
);
console.log(task.state, task.output?.assets?.[0]?.url);

送信したあとの流れ

画像・動画の生成は、作成の呼び出しが返ったあとも続きます。タスク ID を保存しておき、完了は Webhook か、回数を区切ったステータス確認で受け取ってください。

  1. createTask冪等キー付きで送れば、同じ生成が二重に受理されることはありません。
  2. taskId応答はすぐ返り、タスクは裏で走り続けます。
  3. Webhook / recordInfoまず署名付き Webhook。ポーリングは復旧手段です。
  4. output.assetsそのまま使える URL が返ります。残すものは自分側に保存してください。

ブラウザやモバイルアプリから呼ぶ場合

クライアントアプリに入れたキーは、公開されたキーと同じです。キーはサーバーに置きましょう。@spicyapi/proxy がフロントエンドからのリクエストに認証情報を付けるので、アプリ側にキーが渡ることはありません。

  • アプリの中にキー誰でも読み取れて、残高を使われてしまいます。
    1. キーを内蔵したアプリ
    2. SpicyAPI
  • サーバーにキーアプリはサーバーと通信し、プロキシがキーを付けます。
    1. ブラウザまたはスマホ
    2. 自分のサーバー + プロキシ
    3. SpicyAPI
@spicyapi/proxy
npm install @spicyapi/proxy
next.js
// app/api/spicy/proxy/route.ts
export { GET, POST } from "@spicyapi/proxy/nextjs";
export const runtime = "nodejs";

公開前のチェックリスト

  • 01モデルが現在利用可能か確認します。
  • 02モデルページの正確な項目で検証します。
  • 03API キーをサーバーだけに置きます。
  • 04送信前に見積もりを表示します。
  • 05taskId をブラウザー外に保存します。
  • 06Webhook 署名または状態確認の上限を検証します。
  • 07受理後はキャンセル不可として扱います。

よくあるエラーの直し方

最初のつまずきは、たいていこの 3 つのどれかです。カードには、表示される内容と直すポイントを 1 つずつ載せています。

  • 401

    API キーが無効です

    キーがないか、違うキーが API に届いています。コードを実行する環境と同じ場所で SPICY_API_KEY を設定してください。

  • 待機

    タスクがまだ実行中です

    動画は数分かかることがあります。待機には制限時間を付けるか、Webhook を使いましょう。同じ Idempotency-Key を付けずに再送信すると、課金される 2 つ目のタスクができてしまいます。

  • リンク

    結果のリンクが期限切れです

    ダウンロードリンクの有効期間は短めです。古いリンクを保存せず、タスクから新しいリンクを取得してください。

よくある質問