Creare una generazione
Invia job asincroni di generazione Rivya API con model, prompt, params, Idempotency-Key e campi di risposta pubblici.
Ultima revisione il 2026/05/10
Usa POST /api/v1/generations per inviare un job asincrono di generazione immagine, video o audio.
Per i modelli chat, usa Chat API. POST /api/v1/generations non crea sessioni chat o messaggi assistant.
Endpoint
POST https://rivya.ai/api/v1/generationsHeader richiesti:
Authorization: Bearer rvya_sk_...
Content-Type: application/jsonHeader consigliato:
Idempotency-Key: your-unique-request-keyBody della richiesta
{
"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"
}Campi:
model: ID pubblico del modello, obbligatorioprompt: testo del prompt, richiesto da molti modelliparams: oggetto di parametri specifico per modelloclient_request_id: ID di tracciamento opzionale dal tuo sistema
Leggi riferimento API dei modelli per i params specifici del modello.
File di riferimento nei params
Per i modelli che accettano media di riferimento caricati, chiama prima Files API. Poi passa il risultato dell'upload tramite i params del modello; non aggiungere un campo files al livello principale nella richiesta di generazione.
Usa params.referenceMediaItems per nuove integrazioni:
{
"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"
}
]
}
}Per input audio o video che richiedono verifica della durata, includi il duration_token restituito da /api/v1/files come durationToken nella voce referenceMediaItems correlata.
Esempio 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"
}
}'Esempio 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);Esempio 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"])Risposta
{
"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
}Salva l'id e fai polling di stato generazione. Se configuri API Webhooks, Rivya può anche inviare un evento firmato generation.succeeded o generation.failed quando il task raggiunge uno stato terminale.
Idempotenza
Usa Idempotency-Key per i retry. Se vengono riprodotti la stessa chiave e lo stesso body della richiesta, Rivya può restituire la risposta pubblica salvata invece di creare un task duplicato.
Se la stessa chiave viene riutilizzata con input diverso, l'API restituisce idempotency_conflict.
Pagine correlate
Stato generazione
Esegui polling dei job di generazione Rivya API tramite ID pubblico del task, leggi gli stati queued, processing, succeeded e failed, e usa gli URL dei risultati.
Riferimento API dei modelli
Consulta ID modelli Rivya API, disponibilità, modalità supportate, tabelle parametri, limiti prompt, regole per media di riferimento e link ai dettagli dei modelli.