Cara kerja

Satu API untuk semua model video AI

Jika Anda mengenal OpenRouter untuk model bahasa, Revana adalah gagasan yang sama untuk generasi video dan gambar: satu kunci API, satu format permintaan, dan satu saldo prabayar untuk Seedance, Veo, Kling, Wan, Nano Banana Pro, GPT Image 2, dan sisa katalog, dengan fallback otomatis ketika rute upstream gagal.

Masalah memanggil setiap model secara langsung

Setiap pembuat model menjalankan API-nya sendiri, dengan akun, kunci, format permintaan, alur status job, dan penagihan sendiri. Membangun di atas tiga di antaranya berarti tiga integrasi yang harus dipelihara, tiga saldo yang harus diisi, dan tiga set kode error yang harus ditangani. Beberapa model ditawarkan oleh beberapa platform dengan harga berbeda, batas berbeda, dan kapasitas yang datang dan pergi.

Biayanya terasa ketika Anda ingin mencoba model baru, yang pada 2026 terjadi setiap beberapa bulan. Setiap model baru berarti satu integrasi lagi sebelum Anda bahkan bisa melihat apakah cocok untuk produk Anda.

Cara kerja Revana

  1. Satu kunci. Daftar dan buat kunci API di dasbor. Kunci ini berlaku untuk semua model di katalog.
  2. Satu permintaan. Kirim POST /v1/generations dengan id model dan objek input. Nama field sama untuk setiap model: prompt, image_url, end_image_url, image_urls, resolution, duration, aspect_ratio dan audio.
  3. Harga sebelum apa pun berjalan. Harga job berasal dari katalog dan ditahan dari saldo prabayar Anda. Field atau nilai yang tidak didukung model ditolak dengan 422 sebelum ada yang ditagih. Anda juga bisa mengatur max_cost_usd sebagai batas atas.
  4. Perutean. Router mengirim job ke rute termurah untuk model itu. Jika rute gagal atau timeout, job pindah ke rute berikutnya.
  5. Satu format hasil. Lakukan polling GET /v1/generations/{id}. Ketika statusnya succeeded, file ada di output.urls dan biaya ada di cost_usd. Jika job gagal, penahanan dilepas.

Job bersifat asinkron: gambar biasanya butuh hitungan detik, dan video butuh dari kurang dari semenit hingga beberapa menit. Dokumentasi memuat referensi field lengkap dan kode error.

Permintaan yang sama pada tiga model

Karena format permintaan dipakai bersama, membandingkan model hanyalah sebuah loop. Skrip ini mengirim satu prompt ke Seedance 2.0, Veo 3.1 Fast dan Wan 3.0, lalu mencetak setiap hasil dan biayanya. Setiap model mempertahankan opsinya sendiri, jadi pilih nilai yang diterima ketiganya; di sini yaitu 720p, 8 detik, dan 16:9.

Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

PROMPT = (
    "A paper boat sails down a rain-soaked street gutter at dusk, "
    "neon signs reflected in the water. Rain, distant traffic."
)
MODELS = ["seedance-2.0", "veo-3.1-fast", "wan-3.0"]

# Submit the same job to every model; each call returns 202 with an id.
jobs = {}
for model in MODELS:
    resp = requests.post(f"{API}/generations", headers=HEADERS, json={
        "model": model,
        "input": {
            "prompt": PROMPT,
            "resolution": "720p",
            "duration": 8,
            "aspect_ratio": "16:9",
            "audio": True,
        },
        "max_cost_usd": 1.5,
    })
    resp.raise_for_status()
    jobs[model] = resp.json()["id"]

# Poll each job until it finishes.
for model, job_id in jobs.items():
    while True:
        job = requests.get(f"{API}/generations/{job_id}", headers=HEADERS).json()
        if job["status"] in ("succeeded", "failed"):
            break
        time.sleep(5)
    if job["status"] == "succeeded":
        print(model, job["output"]["urls"][0], job["cost_usd"])
    else:
        print(model, "failed:", job["error"])

Pada harga katalog Oktober 2026, ketiga job berbiaya:

Harga permintaan yang sama pada tiga model
ModelPermintaanHarga
Seedance 2.0720p, 8 dtk, suara sudah termasuk dalam tarif$1.20
Veo 3.1 Fast720p, 8 dtk, dengan suara (harga terpisah)$0.80
Wan 3.0720p, 8 dtk, suara sudah termasuk dalam tarif$0.72

max_cost_usd sebesar 1.5 mencakup ketiganya. Job yang akan berbiaya lebih dari batas atasnya tidak dijalankan.

Fallback antar rute

Rute adalah satu sumber kapasitas upstream untuk sebuah model. Banyak model di Revana punya lebih dari satu, dan router memakainya secara berurutan:

  • Termurah lebih dulu. Setiap job diarahkan ke rute berbiaya terendah yang menerima opsinya.
  • Berikutnya saat gagal. Jika rute itu gagal atau timeout, job otomatis pindah ke rute berikutnya. Field attempts menunjukkan berapa yang dicoba.
  • Model sama, harga sama. Setiap rute melayani model yang Anda minta, pada harga yang tercantum. Router tidak pernah menukar dengan model yang berbeda.
  • Satu tagihan. Hanya rute yang berhasil yang ditagih. Jika semua rute gagal, job berakhir sebagai failed dan tidak berbiaya.
Jumlah rute untuk beberapa model populer
ModelJenisRute
Seedance 2.5videolima rute
Seedance 2.0videotiga rute
Kling 3.0videodua rute
Veo 3.1 Fastvideodua rute
Veo 3.1videodua rute
Wan 3.0videotiga rute
Nano Banana Proimagesatu rute
GPT Image 2imagedua rute

Model dengan satu rute tidak bisa melakukan fallback. Fallback meningkatkan peluang job selesai, tetapi bukan jaminan uptime: tangani job failed di kode Anda, misalnya dengan mencoba lagi nanti atau beralih sendiri ke model lain.

Harga dan kredit

Revana bayar sesuai pemakaian. Tidak ada langganan, tidak ada seat, dan tidak ada minimum bulanan: Anda membeli kredit prabayar dalam paket $10, $50, $100, $500, $1,000 atau $5,000 dan memakainya di model apa pun pada harga yang tercantum.

  • Sebagian besar model video dihargai per detik output, menurut resolusi dan, pada beberapa model, menurut apakah suara aktif.
  • Model gambar dihargai per gambar, menurut ukuran.
  • Harga ditahan saat Anda mengirim, ditagih ketika job berhasil, dan dilepas ketika gagal.

Halaman harga mencantumkan harga setiap model. Panduan kami menunjukkan biaya pekerjaan umum di Seedance 2.0, Veo 3.1 dan Kling 3.0.

Baca katalog lewat kode

Katalog lengkap adalah file JSON publik di https://revana.si/data/models.json. Field utama untuk setiap model:

Field di models.json
FieldIsinya
idstring yang dikirim sebagai model
name, makernama tampilan dan perusahaan yang membuat model
kindvideo or image
tasksapa yang diterima model, seperti text_to_video atau image_to_video
optionsresolusi, rasio aspek, durasi, suara, dan batas gambar input
pricesatuan (per detik, per gambar, atau per job) dan harga untuk setiap opsi
routesberapa banyak rute yang melayani model

Misalnya, untuk mencantumkan semua model yang bisa membuat video dari teks:

Shell
# Every model that can make a video from a text prompt
curl -s https://revana.si/data/models.json \
  | jq -r '.models[] | select(any(.tasks[]; . == "text_to_video")) | .id'

Pakai untuk membuat pemilih model, memeriksa opsi sebelum mengirim, atau memperkirakan harga job di antarmuka Anda sendiri. Data yang sama menjalankan halaman model.

Yang perlu diketahui sebelum beralih

  • Opsi berbeda menurut model. Nama field dipakai bersama, tetapi setiap model menerima nilainya sendiri. Kling 3.0, misalnya, tidak mencantumkan opsi rasio aspek. Periksa halaman model sebelum Anda mengubah string model.
  • Tautan output kedaluwarsa. Unduh file yang selesai dan simpan di penyimpanan Anda sendiri.
  • Model adalah pilihan Anda. Perutean mengubah tempat job berjalan, tidak pernah model yang menjalankannya. Beralih ke model lain adalah keputusan kode Anda.
  • Harga bisa berubah. Katalog selalu menampilkan harga saat ini, dan harga setiap job ditetapkan saat Anda mengirimnya.

Siap mencoba? Dapatkan kunci API, jelajahi model, atau mulai dengan quickstart.

Pertanyaan yang sering diajukan

Adakah satu API untuk semua model video AI?

Revana memberi Anda satu kunci API, satu format permintaan, dan satu saldo prabayar untuk model video dan gambar utama, termasuk Seedance, Veo, Kling, Wan, Hailuo, Grok Imagine, Nano Banana dan GPT Image. Setiap model mempertahankan opsi dan harganya sendiri.

Apa kesamaan Revana dengan OpenRouter?

OpenRouter memberi developer satu API untuk banyak model bahasa. Revana melakukan hal yang sama untuk model generasi video dan gambar: satu kunci, satu saldo, dan perutean ke beberapa sumber kapasitas untuk model yang sama.

Apa yang terjadi ketika rute upstream gagal?

Jika model punya lebih dari satu rute, router memindahkan job ke rute berikutnya dengan harga tercantum yang sama. Jika semua rute gagal, job berakhir sebagai gagal dan jumlah yang ditahan dilepas.

Apakah Revana akan beralih ke model lain jika model saya tidak tersedia?

Tidak. Router mengganti rute, bukan model. Jika Anda ingin beralih ke model lain, lakukan di kode Anda dengan mengirim permintaan baru dengan id model yang berbeda.

Bagaimana cara kerja penagihan?

Anda membeli kredit prabayar dalam paket dari $10 hingga $5,000, tanpa langganan. Setiap job dihargai dari katalog, ditahan saat Anda mengirim, dan hanya ditagih jika berhasil.

Bagaimana cara mendapatkan daftar model dan harga lewat kode?

Ambil https://revana.si/data/models.json. File ini mencantumkan setiap model beserta id, pembuat, tugas, opsi, harga, dan jumlah rutenya.

Satu kunci untuk seluruh katalog

Buat kunci, tambahkan kredit prabayar, dan panggil model video atau gambar mana pun dengan permintaan yang sama.