CheaperGen

Premiers pas

Démarrage rapide

Créez une clé API, ajoutez des crédits et générez votre première vidéo IA avec JavaScript, Python ou cURL en moins de deux minutes.

Ce guide vous accompagne de zéro jusqu’à votre première vidéo générée avec Seedance 2.0 Fast. Les mêmes étapes fonctionnent pour tous les modèles : seuls le point de terminaison et les champs d’entrée changent.

Vous utilisez un agent de programmation ?

Collez ceci dans Claude Code, Cursor, Codex ou tout autre agent de programmation. Il ajoute l’API à votre projet, conserve la clé dans CHEAPERGEN_API_KEY et teste le devis gratuit avant toute dépense.

Add Seedance 2.0 Fast (CheaperGen endpoint bytedance/seedance-2.0-fast/text-to-video) to this project by following https://cheapergen.com/agents/integrate.md
Ce que votre agent lit
  1. Créer un compte et une clé API

    Connectez-vous avec Google ou par e-mail, puis ouvrez Tableau de bord → Clés API et créez une clé. Elle ressemble à cg_live_… et ne s’affiche qu’une seule fois : copiez-la et conservez-la en lieu sûr.

  2. Ajouter des crédits

    CheaperGen fonctionne avec des crédits prépayés. Ajoutez des crédits dans Tableau de bord → Facturation. L’exemple ci-dessous coûte $0.45 — $0,605 à the official priceLes générations échouées sont automatiquement remboursées. Voir Facturation et crédits.

  3. Définir votre clé API

    Ne placez pas la clé dans votre code. Tous les exemples de cette documentation la lisent depuis une variable d’environnement :

    export CHEAPERGEN_API_KEY="cg_live_..."
  4. Envoyer une génération

    Envoyez les entrées du modèle à POST /api/v1/run/bytedance/seedance-2.0-fast/text-to-video. Les scripts ci-dessous envoient la tâche, interrogent son état jusqu’à ce qu’elle se termine et affichent l’URL de la vidéo.

    const API = "https://cheapergen.com/api/v1";
    const headers = {
      Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    // 1. Submit the job
    let job = await fetch(`${API}/run/bytedance/seedance-2.0-fast/text-to-video`, {
      method: "POST",
      headers,
      body: JSON.stringify({
        "prompt": "Travelling avant lent sur un céramiste qui façonne un vase à l’heure dorée, poussière dans la lumière, faible profondeur de champ",
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "duration": 5
      }),
    }).then((r) => r.json());
    
    // 2. Poll until it finishes (or pass webhook_url and skip polling)
    while (job.status === "queued" || job.status === "running") {
      await new Promise((r) => setTimeout(r, 3000));
      job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
    }
    
    console.log(job.status === "succeeded" ? job.output.video.url : job.error);

    L’API répond immédiatement avec 202 Accepted et une génération à l’état queued. Le prix indiqué dans cost.amount_usd est réservé sur votre solde pendant l’exécution de la tâche.

    202 Accepted
    {
      "id": "gen_8c2QmX1nq0k4Lw7Z",
      "object": "generation",
      "model": "bytedance/seedance-2.0-fast",
      "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
      "mode": "text-to-video",
      "status": "queued",
      "input": {
        "prompt": "Travelling avant lent sur un céramiste qui façonne un vase à l’heure dorée, poussière dans la lumière, faible profondeur de champ",
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "duration": 5,
        "generate_audio": true
      },
      "output": null,
      "error": null,
      "cost": {
        "amount_usd": 0.4494,
        "currency": "usd",
        "estimated": true
      },
      "source": "api",
      "created_at": "2026-10-15T09:21:04.512Z",
      "started_at": null,
      "completed_at": null,
      "retention": "1d",
      "expires_at": null,
      "purged_at": null,
      "urls": {
        "get": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z",
        "cancel": "https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z/cancel"
      }
    }
  5. Récupérer le résultat

    Interrogez la génération jusqu’à ce que status atteigne l’état succeeded ou failed. Les tâches vidéo prennent généralement une à quelques minutes ; les images, quelques secondes.

    curl https://cheapergen.com/api/v1/generations/gen_8c2QmX1nq0k4Lw7Z \
      -H "Authorization: Bearer $CHEAPERGEN_API_KEY"
    200 OK
    {
      "id": "gen_8c2QmX1nq0k4Lw7Z",
      "object": "generation",
      "model": "bytedance/seedance-2.0-fast",
      "endpoint": "bytedance/seedance-2.0-fast/text-to-video",
      "mode": "text-to-video",
      "status": "succeeded",
      "input": {
        "prompt": "Travelling avant lent sur un céramiste qui façonne un vase à l’heure dorée, poussière dans la lumière, faible profondeur de champ",
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "duration": 5,
        "generate_audio": true
      },
      "output": {
        "video": {
          "url": "https://cdn.cheapergen.com/outputs/gen_8c2QmX1nq0k4Lw7Z.mp4",
          "content_type": "video/mp4"
        }
      },
      "error": null,
      "cost": {
        "amount_usd": 0.4494,
        "currency": "usd",
        "estimated": false
      },
      "source": "api",
      "created_at": "2026-10-15T09:21:04.512Z",
      "started_at": "2026-10-15T09:21:09.031Z",
      "completed_at": "2026-10-15T09:22:31.870Z",
      "retention": "1d",
      "expires_at": "2026-10-16T09:22:31.870Z",
      "purged_at": null
    }

    Éviter les interrogations avec les webhooks

    Ajoutez "webhook_url": "https://your-app.com/hooks/cheapergen" au corps de la requête et nous vous enverrons la génération terminée par POST. Voir Webhooks.

Étapes suivantes#

Quelque chose n’est pas clair ou manque ? Écrivez à support@cheapergen.com : nous lisons tous les messages.