CheaperGen

Primeros pasos

Inicio rápido

Crea una clave de API, añade créditos y genera tu primer video con IA en menos de dos minutos, usando JavaScript, Python o cURL.

Esta guía te lleva desde cero hasta un video terminado con Seedance 2.0 Fast. Los mismos pasos sirven para todos los modelos; solo cambian el endpoint y los campos de entrada.

¿Usas un agente de programación?

Pega esto en Claude Code, Cursor, Codex o cualquier agente de programación. Añade la API a tu proyecto, guarda la clave en CHEAPERGEN_API_KEY y prueba con una cotización gratuita antes de gastar nada.

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
Qué lee tu agente
  1. Crea una cuenta y una clave de API

    Inicia sesión con Google o correo electrónico; luego abre Panel → Claves de API y crea una clave. Tiene el formato cg_live_… y solo se muestra una vez, así que guárdala en un lugar seguro.

  2. Añade saldo

    CheaperGen es un servicio prepagado. Añade saldo en Panel → Facturación. El ejemplo de abajo cuesta $0.45 — $0,605 a the official price. Las generaciones fallidas se reembolsan automáticamente. Consulta Facturación y créditos.

  3. Configura tu clave de API

    No incluyas la clave en tu código. Todos los ejemplos de esta documentación la leen de una variable de entorno:

    export CHEAPERGEN_API_KEY="cg_live_..."
  4. Enviar una generación

    Envía los datos de entrada del modelo a POST /api/v1/run/bytedance/seedance-2.0-fast/text-to-video. Los scripts siguientes envían la tarea, consultan el estado hasta que termina e imprimen la URL del video.

    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 lento hacia un ceramista que da forma a un jarrón a la hora dorada; polvo en la luz y poca profundidad de campo",
        "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);

    La API responde de inmediato con 202 Accepted y una generación en estado queued. El precio que aparece en cost.amount_usd se reserva de tu saldo mientras se ejecuta la tarea.

    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 lento hacia un ceramista que da forma a un jarrón a la hora dorada; polvo en la luz y poca profundidad de campo",
        "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. Obtén el resultado

    Consulta la generación hasta que status esté succeeded o failed. Las tareas de video suelen tardar entre uno y varios minutos; las imágenes, solo unos segundos.

    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 lento hacia un ceramista que da forma a un jarrón a la hora dorada; polvo en la luz y poca profundidad de campo",
        "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
    }

    Omite las consultas con webhooks

    Añade "webhook_url": "https://your-app.com/hooks/cheapergen" al cuerpo de la solicitud y te enviaremos la generación terminada mediante una solicitud POST. Consulta Webhooks.

Próximos pasos#

¿Algo no está claro o falta información? Escribe a support@cheapergen.com; leemos todos los mensajes.