Getting started
Quickstart
Create an API key, add credits and generate your first AI video with cURL, Python or JavaScript in under two minutes.
This guide takes you from zero to a finished video with Seedance 2.0 Fast. The same steps work for every model — only the endpoint and input fields change.
Create an account and an API key
Sign in with Google or email, then open Dashboard → API keys and create a key. It looks like
cg_live_…and is shown only once — copy it somewhere safe.Add credits
Cheaper Gen. is prepaid. Add credits in Dashboard → Billing (any amount from $5). The example below costs $0.328 — $0.605 at the official list price. Failed generations are refunded automatically. See Billing & credits.
Set your API key
Keep the key out of your code. Every example in these docs reads it from an environment variable:
export CHEAPERGEN_API_KEY="cg_live_..."Submit a generation
Send the model's inputs to
POST /api/v1/run/bytedance/seedance-2.0-fast/text-to-video. The scripts below submit the job, poll until it finishes and print the video URL.curl -X POST https://cheapergen.com/api/v1/run/bytedance/seedance-2.0-fast/text-to-video \ -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "A slow dolly-in on a ceramicist shaping a vase at golden hour, dust in the light, shallow depth of field", "aspect_ratio": "16:9", "resolution": "720p", "duration": 5 }'The API answers immediately with 202 Accepted and a generation in the
queuedstate. The price shown incost.amount_usdis held from your balance while the job runs.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": "A slow dolly-in on a ceramicist shaping a vase at golden hour, dust in the light, shallow depth of field", "aspect_ratio": "16:9", "resolution": "720p", "duration": 5, "generate_audio": true }, "output": null, "error": null, "cost": { "amount_usd": 0.3278, "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" } }Get the result
Poll the generation until
statusissucceededorfailed. Video jobs usually take one to a few minutes; images take seconds.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": "A slow dolly-in on a ceramicist shaping a vase at golden hour, dust in the light, shallow depth of field", "aspect_ratio": "16:9", "resolution": "720p", "duration": 5, "generate_audio": true }, "output": { "video": { "url": "https://cdn.cheapergen.ai/outputs/gen_8c2QmX1nq0k4Lw7Z.mp4", "content_type": "video/mp4" } }, "error": null, "cost": { "amount_usd": 0.3278, "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 }Skip polling with webhooks
Add"webhook_url": "https://your-app.com/hooks/cheapergen"to the request body and we'll POST the finished generation to you. See Webhooks.
Next steps#
- Understand the generation lifecycle — statuses, polling intervals, cancellation and outputs.
- Pick a model — every endpoint ID with its price per second or per image.
- Handle errors — which responses to retry and which to fix.
- Seedance 2.0 Fast API reference — every input field, its type and default.
Something unclear or missing? Email support@cheapergen.com — we read everything.