Rivya AI ডকস

Create Generation

model, prompt, params, Idempotency-Key এবং public response fields সহ asynchronous Rivya API generation jobs submit করুন।

শেষ review 2026/05/10

asynchronous image, video বা audio generation job submit করতে POST /api/v1/generations ব্যবহার করুন।

chat models-এর জন্য Chat API ব্যবহার করুন। POST /api/v1/generations chat sessions বা assistant messages create করে না।

Endpoint

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

Required headers:

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

Recommended header:

Idempotency-Key: your-unique-request-key

Request 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"
}

Fields:

  • model: required public model ID
  • prompt: prompt text, অনেক models-এর জন্য required
  • params: model-specific parameter object
  • client_request_id: আপনার system থেকে optional trace ID

model-specific params-এর জন্য Model API Reference পড়ুন।

Reference Files In Params

uploaded reference media accept করে এমন models-এর জন্য আগে Files API call করুন। তারপর upload result model params দিয়ে pass করুন; generation request-এ top-level files field যোগ করবেন না।

new integrations-এর জন্য 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"
      }
    ]
  }
}

duration verification দরকার এমন audio বা video inputs-এর জন্য /api/v1/files থেকে returned duration_token সংশ্লিষ্ট referenceMediaItems entry-তে durationToken হিসেবে include করুন।

curl Example

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 Example

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 Example

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"])

Response

{
  "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 save করুন এবং Generation Status poll করুন। API Webhooks configure করলে task terminal state-এ পৌঁছালে Rivya signed generation.succeeded বা generation.failed event-ও পাঠাতে পারে।

Idempotency

retries-এর জন্য Idempotency-Key ব্যবহার করুন। একই key এবং একই request body replay হলে Rivya duplicate task create না করে stored public response return করতে পারে।

একই key ভিন্ন input দিয়ে reuse করলে API idempotency_conflict return করে।

Table of Contents