Rivya AI ドキュメント

生成を作成する

model、prompt、params、Idempotency-Key、公開応答フィールドを使って、非同期の Rivya API 生成ジョブを送信します。

2026/05/10 最終レビュー

非同期の画像、動画、音声生成ジョブを送信するには、POST /api/v1/generations を使います。

チャットモデルには Chat API を使ってください。POST /api/v1/generations はチャットセッションや assistant メッセージを作成しません。

エンドポイント

POST https://rivya.ai/api/v1/generations

必須ヘッダー:

Authorization: Bearer rvya_sk_...
Content-Type: application/json

推奨ヘッダー:

Idempotency-Key: your-unique-request-key

リクエスト body

{
  "model": "z-image",
  "prompt": "A clean editorial product image on a soft studio background",
  "params": {
    "aspect_ratio": "1:1"
  },
  "client_request_id": "order-123-preview"
}

フィールド:

  • model: 必須の公開モデル ID
  • prompt: プロンプトテキスト。多くのモデルで必須です
  • params: モデル固有のパラメータオブジェクト
  • client_request_id: あなたのシステム側の任意のトレース ID

モデル固有の params については モデル API リファレンス を読んでください。

参照ファイルを Params に入れる

アップロード済みの参照メディアを受け付けるモデルでは、最初に Files API を呼び出します。その後、アップロード結果をモデルの params 経由で渡してください。生成リクエストにトップレベルの files フィールドを追加しないでください。

新しい統合では params.referenceMediaItems を使います。

{
  "model": "nano-banana-2",
  "prompt": "Restyle this product photo for a clean editorial catalog page",
  "params": {
    "referenceMediaItems": [
      {
        "url": "https://...",
        "kind": "image",
        "name": "reference.png",
        "mimeType": "image/png"
      }
    ]
  }
}

音声または動画入力で長さの検証が必要な場合は、/api/v1/files が返す duration_token を、関連する referenceMediaItems エントリの durationToken として含めてください。

curl 例

curl https://rivya.ai/api/v1/generations \
  -H "Authorization: Bearer rvya_sk_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: product-preview-001" \
  -d '{
    "model": "z-image",
    "prompt": "A clean editorial product image on a soft studio background",
    "params": {
      "aspect_ratio": "1:1"
    }
  }'

JavaScript 例

const response = await fetch("https://rivya.ai/api/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RIVYA_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "product-preview-001"
  },
  body: JSON.stringify({
    model: "z-image",
    prompt: "A clean editorial product image on a soft studio background",
    params: { aspect_ratio: "1:1" }
  })
});

const generation = await response.json();
console.log(generation.id, generation.status);

Python 例

import os
import requests

response = requests.post(
    "https://rivya.ai/api/v1/generations",
    headers={
        "Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": "product-preview-001",
    },
    json={
        "model": "z-image",
        "prompt": "A clean editorial product image on a soft studio background",
        "params": {"aspect_ratio": "1:1"},
    },
    timeout=30,
)

generation = response.json()
print(generation["id"], generation["status"])

応答

{
  "id": "task_public_id",
  "status": "queued",
  "model": "z-image",
  "reserved_credits": 1,
  "final_credits": 0,
  "created_at": "2026-05-10T00:00:00.000Z",
  "updated_at": "2026-05-10T00:00:00.000Z",
  "result": null,
  "error": null
}

id を保存し、生成ステータス をポーリングしてください。API Webhooks を設定すると、タスクが終端状態に到達したときに、Rivya は署名付きの generation.succeeded または generation.failed イベントも送信できます。

冪等性

リトライには Idempotency-Key を使ってください。同じキーと同じリクエスト body が再実行された場合、Rivya は重複タスクを作成せず、保存済みの公開応答を返せます。

同じキーが異なる入力で再利用された場合、API は idempotency_conflict を返します。

関連ページ

目次