30-second ads & narratives ↗
Create ads and narratives up to 30 seconds with Seedance 2.5 or WAN 3.0.
BETTERTOKEN · AI VIDEO API
One API key. Four model families. Pay per second. Choose Seedance, Kling, MiniMax H3 or WAN and build with the same asynchronous API.
Compare all ten on-sale SKUs. Prices are the lowest output rate for each SKU, separate from the sample settings.
| Model | Seconds per clip | Resolution | Supported inputs | Audio | Best for | ||
|---|---|---|---|---|---|---|---|
Seedance 2.5 ↗seedance-2.5-cn | $0.176 / s480p | 4–30 s | 480p / 720p / 1080p1080p | Text · first/first+last frames · ≤30 images · video/audio references | Native audio · on / off | 30-second narratives | Inputs & audio
|
Seedance 2.0 ↗seedance-2.0-cn | $0.097 / s480p | 4–15 s | 480p / 720p / 1080p / 4K4K | Text · first/first+last frames · ≤9 images · Video/audio references; audio references require an image or video. | Native audio · on / off | 4K output | Inputs & audio
|
Seedance Fast ↗seedance-2.0-fast-cn | $0.078 / s480p | 4–15 s | 480p / 720p720p | Text · first/first+last frames · ≤9 images · Video/audio references; audio references require an image or video. | Native audio · on / off | Lower-resolution drafts | Inputs & audio
|
Seedance Mini ↗seedance-2.0-mini-cn | $0.048 / s480p | 4–15 s | 480p / 720p720p | Text · first/first+last frames · ≤9 images · Video/audio references; audio references require an image or video. | Native audio · on / off | Lower-cost drafts | Inputs & audio
|
Kling 3.0 ↗kling-3.0 | $0.099 / sStandard 720p · Audio off | 3–15 s | Standard 720p / Pro 1080p / 4K4K | Text · first/first+last frames · ≤6 custom shots | Native audio · on / off | Structured storyboards | Inputs & audio
|
MiniMax H3 ↗minimax-h3 | $0.050 / s768p | 4–15 s | 768p / 2K2K | Text · first / last / both · ≤9 images · video/audio references | Included (always on) | 2K · independent last frame | Inputs & audio
|
WAN 3.0 ↗wan-3.0 | $0.047 / s480p | 2–30 s | 480p / 720p / 1080p1080p | Text · first/first+last frames · ≤10 images · video/audio references | Native audio · on / off | 30-second reference-led clips | Inputs & audio
|
WAN 3.0 Prime ↗wan-3.0-prime | $0.067 / s480p | 2–30 s | 480p / 720p / 1080p1080p | Text · first/first+last frames · ≤10 images · video/audio references | Native audio · on / off | Vendor high-speed positioning | Inputs & audio
|
WAN 2.7 T2V ↗wan-2.7-t2v | $0.094 / s720p | 2–15 s | 720p / 1080p1080p | Text · optional driving audio · five fixed ratios | Included (always on) | Fixed text-to-video workflow | Inputs & audio
|
WAN 2.7 I2V ↗wan-2.7-i2v | $0.098 / s720p | 2–15 s | 720p / 1080p1080p | First / first+last frames · optional driving audio · follows input ratio | Included (always on) | Fixed image-to-video workflow | Inputs & audio
|
Starting prices use the lowest resolution; Kling starts with audio off.
Match each model’s supported capabilities to your use case.
Create ads and narratives up to 30 seconds with Seedance 2.5 or WAN 3.0.
Build up to six Kling 3.0 shots, each with its own prompt and duration.
Create 4K final output with Seedance 2.0 or Kling 3.0.
Draft at 480p with Seedance Mini or WAN 3.0.
Guide subjects and style with up to 30 images in Seedance 2.5, 10 in WAN 3.0, or 9 in H3.
Create 2K video with native audio from text, a first frame, a last frame, or both in MiniMax H3.
DEVELOPER QUICKSTART
Quote → create → poll → download.202 means accepted, not completed. Keep the same idempotency key and body after uncertain acceptance. Download only after completed.These are minimal examples — in production, persist the Idempotency-Key and task ID so you can resume after a restart.
Integrate the BetterToken video API in the user's application.
Read BETTERTOKEN_API_KEY only from the environment; never log or send it to analytics.
Base: https://bettertoken.ai/v1
Request JSON (replace the I2V source with your own accessible image):
{
"model": "wan-3.0",
"operation": "text_to_video",
"prompt": "A rainy city street at night, slow forward camera move",
"duration": {
"mode": "fixed",
"seconds": 5
},
"output": {
"format": "mp4",
"resolution": "480p",
"aspect_ratio": "16:9"
},
"audio": {
"mode": "on"
}
}
H3 and WAN 2.7 generate native audio by default with no on/off switch. When switching model, adapt resolution, operation, aspect ratio, media and audio. Kling uses provider_options.kling.mode, without output.resolution. H3 image_to_video requires adaptive; reference_to_video allows adaptive or a fixed ratio. WAN 2.7 I2V requires a first frame and omits aspect_ratio.
POST /videos/quote with the same JSON for a non-reserving estimate; requires authentication and may probe input media. It is not a public guest API.
BEFORE POST /videos persist an Idempotency-Key and exact body outside the process; load that saved state after a restart. Persist the task ID after acceptance and resume that task. After a timeout/503 or uncertain acceptance, reuse BOTH; never create a replacement task. Handle 409 video_idempotency_conflict / video_acceptance_pending, 402 balance and 422 validation errors.
202 means accepted only; response has root id/status. GET /videos/{id} every 5 seconds: queued, in_progress, completed, failed, canceled. Uncertain acceptance stays in_progress with stage=reconciliation. On 429 honor the full Retry-After seconds or HTTP date. Poll up to 360 times, waiting 5 seconds between requests; network delays and rate-limit backoff can extend the total observation time. Preserve the task ID when stopping; stopping does not cancel or recreate the task.
Only after completed, GET /videos/{id}/content with an authorized owner key. 410 video_artifact_expired is a delivery expiry, not a generation failure. Keep content private.
Inspect billing separately: confirmed failed/canceled generation releases/refunds the original funding source through financial processing; status alone does not prove the refund is committed. Uncertain acceptance and post-generation delivery failures need separate handling. Do not invent a public cancel endpoint.# Minimal example: persist the Idempotency-Key and task ID in production.
# Requires curl, jq and BETTERTOKEN_API_KEY in your environment.
BASE=https://bettertoken.ai/v1
IDEM="$(uuidgen)"
cat > request.json <<'JSON'
{
"model": "wan-3.0",
"operation": "text_to_video",
"prompt": "A rainy city street at night, slow forward camera move",
"duration": {
"mode": "fixed",
"seconds": 5
},
"output": {
"format": "mp4",
"resolution": "480p",
"aspect_ratio": "16:9"
},
"audio": {
"mode": "on"
}
}
JSON
curl --fail-with-body "$BASE/videos/quote" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
-H 'Content-Type: application/json' --data-binary @request.json || exit 1
TASK=$(curl --fail-with-body "$BASE/videos" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
-H "Idempotency-Key: $IDEM" \
-H 'Content-Type: application/json' --data-binary @request.json) || exit 1
ID=$(printf '%s' "$TASK" | jq -er '.id') || exit 1
# Poll up to 360 times, waiting 5 seconds between requests.
# Network delays can extend the total time.
for attempt in $(seq 1 360); do
TASK=$(curl --fail-with-body "$BASE/videos/$ID" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY") || exit 1
STATUS=$(printf '%s' "$TASK" | jq -r '.status')
case "$STATUS" in
completed) break ;;
failed|canceled) printf '%s\n' "$TASK"; exit 1 ;;
esac
sleep 5
done
[ "$STATUS" = completed ] || { echo "Resume polling task: $ID"; exit 1; }
curl --fail-with-body "$BASE/videos/$ID/content" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY" -o video.mp4The flow stays the same. Each model has its own supported JSON fields. The code follows your calculator selection below.
| Parameter | Value & limits |
|---|---|
Shared routes | POST /v1/videos/quote → POST /v1/videos → GET /v1/videos/{id} → GET /v1/videos/{id}/content. Bearer key, JSON body; keep Idempotency-Key on create. |
Seedance 2.5 / 2.0 / Fast / Mini | 4–30 / 4–15 / 4–15 / 4–15 s. Resolution (output.resolution): up to 1080p / 4K / 720p / 720p. Audio: on/off (audio). Max 30 / 9 / 9 / 9 reference images. For 2.0 / Fast / Mini only: audio references require an image or video. |
Kling 3.0 | 3–15 s. Output mode (provider_options.kling.mode): Standard 720p / Pro 1080p / 4K (std / pro / 4k); no output.resolution. Audio: on/off (audio). Text ratios: 16:9 / 9:16 / 1:1; frames follow input. Max 6 shots (shots); no end frame with shots. |
MiniMax H3 | 4–15 s · 768p / 2K. Native audio by default, with no on/off switch. Omit audio or use {mode:"provider_default"}. Text: fixed ratio; image: adaptive (output.aspect_ratio). Independent last frame. Max 9 reference images, 3 videos (contract limit; full combinations not yet verified) and 3 audio clips; 2–15 s each, max 15 s per type, 12 files total. |
WAN 3.0 / Prime | 2–30 s · 480p / 720p / 1080p. Audio: on/off (audio). Max 10 reference images, 5 videos (contract limit; full combinations not yet verified) and 5 audio clips; 1–15 s each, max 15 s per type, 20 files total. Input video + output: max 30 s. Endpoint frames and references use separate modes. |
WAN 2.7 T2V | 2–15 s · 720p / 1080p. Text to video (text_to_video). Ratios: 16:9 / 9:16 / 1:1 / 4:3 / 3:4. Native audio by default, with no on/off switch. Omit audio or use {mode:"provider_default"}. Optional driving audio (driving_audio): 1 clip. |
WAN 2.7 I2V | 2–15 s · 720p / 1080p. Image to video (image_to_video). First frame required, last frame optional (media: each item must have a unique id and include type, role and source). Ratio follows image (no output.aspect_ratio). Native audio by default, with no on/off switch. Omit audio or use {mode:"provider_default"}. Optional driving audio (driving_audio): 1 clip. |
PRICING
Choose a model and settings for your budget.
Billed on actual output seconds; video references use the selected resolution rate.
Ten on-sale SKUs · one key and one balance
Price snapshot · 2026-11-09Choose model, resolution, duration and clips.
Output-only estimate; reference inputs may add fees
WAN 3.0 · 480p · Estimate at the selected settings
| Balance credit | You pay | Discount | Video seconds · estimate | Top up |
|---|---|---|---|---|
| $5.00First top-up | $3.00 | $2.00 | ≈ 106 s | Top up → |
| $50.00 | $48.00 | $2.00 | ≈ 1,063 s | Top up → |
| $100.00 | $95.00 | $5.00 | ≈ 2,127 s | Top up → |
| $200.00 | $185.00 | $15.00 | ≈ 4,255 s | Top up → |
| $500.00 | $450.00 | $50.00 | ≈ 10,638 s | Top up → |
First-top-up and tier offers are separate. Checkout confirms the applicable offer. Available methods are confirmed at checkout.
VIDEO MODELS
Compare samples from the same prompt and explore each model.
English original · generation prompt
Night city street after rain, seen from a slow forward dolly shot at low height: wet asphalt reflecting colorful lights, light trails from passing cars, soft steam rising from a street grate, light drizzle. Generic modern architecture. No people, no readable text, signs, logos, license plates, flags or recognizable landmarks. Cinematic, realistic.
FAQ
Use Seedance 2.5 or WAN 3.0 for 30-second clips, Kling for up to six structured shots, Seedance 2.0 or Kling for 4K, Mini or WAN 480p for lower output costs, and H3 for an independent last frame or 2K with default native sound.
View API examplesYes. One BetterToken relay key and balance can access the on-sale models, subject to permissions and funds. BetterToken is a third-party provider, not affiliated with the model vendors.
View API examplesPer actual output second. Input video references can add input-second fees, and H3 images beyond five add a per-image fee. Kling temporarily reserves about one extra second for output-length tolerance, then releases unused funds at settlement; it is not a flat extra charge.
View API examplesConfirmed failed generations are not charged. Confirmed failure or cancellation releases or refunds the original funding source through financial processing; task status alone does not prove a refund is committed. Uncertain acceptance must be reconciled. Delivery failure or an expired file after successful generation is a separate case.
View API examplesPay by card through Stripe or with USDT. Available methods are confirmed at checkout.
View API examplesDuration, output resolution, input modes and native-audio control. Seedance 2.5 supports 30 reference images, WAN 3.0 ten, and H3 nine. Kling supports six structured shots. H3 and WAN 2.7 generate audio by default with no switch. Compare exact SKU limits above.
View API examplesUse the same quote → create → poll → download routes, then adapt operation, resolution or Kling mode, duration, aspect ratio, media and audio to the new model. Changing model alone is not enough. The examples update with the calculator.
View API examplesSign up or sign in to BetterToken, prepare or reuse your API key in Workspace, add balance and call the API from your own application. This is a BetterToken relay key; access depends on permissions and funds. Quote your request, create with a persistent idempotency key, poll until completed, then download with owner authorization.
View API examplesBETTERTOKEN · VIDEO GENERATION API
First top-up: pay $3.00, get $5.00 balance