Comment ça marche

Une seule API pour tous les modèles vidéo IA

Si vous connaissez OpenRouter pour les modèles de langage, Revana applique la même idée à la génération vidéo et image : une seule clé API, un seul format de requête et un seul solde prépayé pour Seedance, Veo, Kling, Wan, Nano Banana Pro, GPT Image 2 et le reste du catalogue, avec repli automatique quand une route en amont échoue.

Le problème de l'appel direct à chaque modèle

Chaque éditeur de modèle gère sa propre API, avec son propre compte, ses propres clés, son propre format de requête, son propre flux d'état des tâches et sa propre facturation. Construire sur trois d'entre eux, c'est trois intégrations à maintenir, trois soldes à recharger et trois jeux de codes d'erreur à gérer. Certains modèles sont proposés par plusieurs plateformes à des prix différents, avec des limites différentes et une capacité qui va et vient.

Le coût apparaît quand vous voulez essayer un nouveau modèle, ce qui, en 2026, arrive tous les quelques mois. Chaque nouveau modèle exige une intégration de plus avant même que vous puissiez voir s'il convient à votre produit.

Comment fonctionne Revana

  1. Une seule clé. Inscrivez-vous et créez une clé API dans le tableau de bord. Elle fonctionne pour tous les modèles du catalogue.
  2. Une seule requête. Envoyez POST /v1/generations avec un identifiant model et un objet input. Les noms de champs sont les mêmes pour tous les modèles : prompt, image_url, end_image_url, image_urls, resolution, duration, aspect_ratio et audio.
  3. Un prix avant toute exécution. Le prix de la tâche provient du catalogue et est bloqué sur votre solde prépayé. Un champ ou une valeur que le modèle ne prend pas en charge est rejeté avec un 422 avant toute facturation. Vous pouvez aussi définir max_cost_usd comme plafond.
  4. Routage. Le routeur envoie la tâche vers la route la moins chère pour ce modèle. Si la route échoue ou dépasse le délai, la tâche passe à la suivante.
  5. Un seul format de résultat. Interrogez GET /v1/generations/{id}. Quand le statut est succeeded, les fichiers sont dans output.urls et le montant facturé dans cost_usd. Si la tâche échoue, le blocage est libéré.

Les tâches sont asynchrones : les images prennent généralement quelques secondes, et la vidéo de moins d'une minute à plusieurs minutes. La documentation contient la référence complète des champs et les codes d'erreur.

La même requête sur trois modèles

Comme le format de requête est partagé, comparer des modèles se résume à une boucle. Ce script envoie un prompt à Seedance 2.0, Veo 3.1 Fast et Wan 3.0, puis affiche chaque résultat et son coût. Chaque modèle garde ses propres options : choisissez donc des valeurs que les trois acceptent ; ici, 720p, 8 secondes et 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"])

Aux prix du catalogue d'octobre 2026, les trois tâches coûtent :

Prix de la même requête sur trois modèles
ModèleRequêtePrix
Seedance 2.0720p, 8 s, son inclus dans le tarif$1.20
Veo 3.1 Fast720p, 8 s, avec son (tarifé séparément)$0.80
Wan 3.0720p, 8 s, son inclus dans le tarif$0.72

Le max_cost_usd de 1.5 couvre les trois. Une tâche qui coûterait plus que son plafond ne s'exécute pas.

Repli entre routes

Une route est une source de capacité en amont pour un modèle. De nombreux modèles de Revana en ont plus d'une, et le routeur les utilise dans l'ordre :

  • La moins chère d'abord. Chaque tâche part vers la route la moins chère qui accepte ses options.
  • La suivante en cas d'échec. Si cette route échoue ou dépasse le délai, la tâche passe automatiquement à la route suivante. Le champ attempts indique combien ont été essayées.
  • Même modèle, même prix. Chaque route sert le modèle que vous avez demandé, au prix listé. Le routeur ne le remplace jamais par un autre modèle.
  • Une seule facturation. Seule la route qui réussit est facturée. Si toutes les routes échouent, la tâche se termine en failed et ne coûte rien.
Nombre de routes pour quelques modèles populaires
ModèleTypeRoutes
Seedance 2.5videocinq routes
Seedance 2.0videotrois routes
Kling 3.0videodeux routes
Veo 3.1 Fastvideodeux routes
Veo 3.1videodeux routes
Wan 3.0videotrois routes
Nano Banana Proimageune route
GPT Image 2imagedeux routes

Un modèle avec une seule route ne peut pas basculer. Le repli augmente les chances qu'une tâche aboutisse, mais ce n'est pas une garantie de disponibilité : gérez les tâches failed dans votre code, par exemple en réessayant plus tard ou en basculant vous-même vers un autre modèle.

Tarifs et crédits

Revana fonctionne à l'usage. Il n'y a ni abonnement, ni sièges, ni minimum mensuel : vous achetez du crédit prépayé par packs de $10, $50, $100, $500, $1,000 ou $5,000 et le dépensez sur n'importe quel modèle à son prix listé.

  • La plupart des modèles vidéo sont tarifés à la seconde de sortie, selon la résolution et, pour certains modèles, selon que le son est activé ou non.
  • Les modèles d'image sont tarifés à l'image, selon la taille.
  • Le prix est bloqué à l'envoi, facturé quand la tâche réussit et libéré quand elle échoue.

La page des tarifs liste les prix de chaque modèle. Nos guides montrent ce que coûtent les travaux courants sur Seedance 2.0, Veo 3.1 et Kling 3.0.

Lire le catalogue dans le code

Le catalogue complet est un fichier JSON public à l'adresse https://revana.si/data/models.json. Les principaux champs de chaque modèle :

Champs de models.json
ChampCe qu'il contient
idla chaîne à envoyer dans model
name, makerle nom affiché et la société qui crée le modèle
kindvideo or image
tasksce que le modèle accepte, comme text_to_video ou image_to_video
optionsrésolutions, formats d'image, durées, son et limite d'images en entrée
pricel'unité (à la seconde, à l'image ou à la tâche) et le prix de chaque option
routescombien de routes servent le modèle

Par exemple, pour lister tous les modèles capables de produire une vidéo à partir d'un texte :

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'

Utilisez-le pour construire un sélecteur de modèle, vérifier les options avant d'envoyer, ou estimer le prix d'une tâche dans votre propre interface. Ces mêmes données alimentent la page des modèles.

Ce qu'il faut savoir avant de changer

  • Les options varient selon le modèle. Les noms de champs sont partagés, mais chaque modèle accepte ses propres valeurs. Kling 3.0, par exemple, ne liste aucune option de format d'image. Consultez la page du modèle avant de changer la chaîne model.
  • Les liens de sortie expirent. Téléchargez les fichiers terminés et conservez-les dans votre propre stockage.
  • Le modèle, c'est vous qui le choisissez. Le routage change l'endroit où une tâche s'exécute, jamais le modèle qui l'exécute. Basculer vers un autre modèle est une décision qui revient à votre code.
  • Les prix peuvent changer. Le catalogue affiche toujours les prix actuels, et le prix de chaque tâche est fixé au moment où vous l'envoyez.

Prêt à essayer ? Obtenez une clé API, parcourez les modèles, ou commencez par le démarrage rapide.

Questions fréquentes

Existe-t-il une seule API pour tous les modèles vidéo IA ?

Revana vous donne une seule clé API, un seul format de requête et un seul solde prépayé pour les principaux modèles vidéo et image, dont Seedance, Veo, Kling, Wan, Hailuo, Grok Imagine, Nano Banana et GPT Image. Chaque modèle garde ses propres options et son propre prix.

En quoi Revana ressemble-t-elle à OpenRouter ?

OpenRouter donne aux développeurs une seule API pour de nombreux modèles de langage. Revana fait la même chose pour les modèles de génération vidéo et image : une clé, un solde, et un routage entre plusieurs sources de capacité pour un même modèle.

Que se passe-t-il quand une route en amont échoue ?

Si le modèle a plus d'une route, le routeur fait passer la tâche à la route suivante au même prix listé. Si toutes les routes échouent, la tâche se termine en échec et le montant bloqué est libéré.

Revana basculera-t-elle vers un autre modèle si le mien est indisponible ?

Non. Le routeur change la route, jamais le modèle. Si vous voulez basculer vers un autre modèle, faites-le dans votre code en envoyant une nouvelle requête avec un autre identifiant de modèle.

Comment fonctionne la facturation ?

Vous achetez du crédit prépayé par packs de $10 à $5,000, sans abonnement. Chaque tâche est tarifée d'après le catalogue, bloquée à l'envoi, et facturée uniquement si elle réussit.

Comment obtenir la liste des modèles et des prix dans le code ?

Récupérez https://revana.si/data/models.json. Il liste chaque modèle avec son identifiant, son éditeur, ses tâches, ses options, ses prix et son nombre de routes.

Une seule clé pour tout le catalogue

Créez une clé, ajoutez du crédit prépayé et appelez n'importe quel modèle vidéo ou image avec la même requête.