KREATORFLOWAPI

Build

Manage

Learn

Start building

Pay as you go with prepaid tokens. No subscription.

Create accountLog in
KREATORFLOWAPI
Log in

Docs

Everything to integrate images, video and audio: models, endpoints, fields, errors and webhooks. Last updated 19 October 2026.

Agent guideOpenAPI

Get started

IntroductionQuickstartAuthenticationTokens & billing

Models

All modelsSeedance 2.5Seedance 2.0Seedance 2.0 FastSeedance 2.0 MiniWan 3.0Wan 3.0 PrimeKling 4.0Kling 3.0Kling 3.0 OmniKling 3.0 TurboSeedream 5.0 ProSeedream 4.5Seedream 5.0 FlashSeedream 5.0 LiteWan 2.7 Image ProWan 2.6Seed Speech v3Seed AudioSeedream 5.5

Generate

ImagesVideosVideo editsAudioLip SyncCharacters

Files & results

UploadsJobs & pollingWebhooksStorage

Reference

ErrorsRate limits & retriesMCP serverAI agents
DocsGet startedIntroduction

Introduction

One REST API for ByteDance's Seedance video, Seedream images and Seed speech and sound. You pay per request from a prepaid token balance; there is no subscription.

Base URL
https://kreatorflow.ai
Auth
Authorization: Bearer <key>
Format
JSON in, JSON out: { success, data } or { success: false, code, error }
Billing
Prepaid tokens, 1 token = $0.05
Results
Async jobs: poll or receive a webhook

Everything you create is a job. Create it, keep its id, then poll GET /v1/jobs/{id} or wait for a webhook. Images take seconds, videos one to several minutes, audio returns finished in the same call.

NextQuickstart
DocsGet startedQuickstart

Quickstart

  1. Step 1

    Add tokens

    Top up under . You need a balance to create a key.
  2. Step 2

    Create a key

    Under . It is shown once; keep it on your server.
  3. Step 3

    Make a request

    Create a job, then poll it until it finishes.

1. Create an image

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-image-001" \
  -d '{"model":"kreator-image-pro","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"4:5"}'

2. Wait for it and download it

curl https://kreatorflow.ai/v1/jobs/$JOB_ID \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY"

# when status is "completed":
curl -L -o result.mp4 https://kreatorflow.ai/v1/jobs/$JOB_ID/output \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY"

Prefer to try first? The runs any model in the browser on your balance and gives you the exact code.

PreviousIntroductionNextAuthentication
DocsGet startedAuthentication

Authentication

Send your key on every request except GET /v1/models: Authorization: Bearer kf_live_…. The x-api-key header also works.

  • Keys are shown once and stored hashed. Create a new one if you lose it, and revoke old ones under .
  • Up to 10 active keys per account. Creating a key needs a positive token balance.

Keep keys on the server

Call the API from a server or script only. Never ship a key in browser or mobile code, and never paste it into a chat with an AI assistant.
ScopeAllows
models:readGET /v1/voices, GET /v1/storage
uploads:createUploads: create, complete, delete
images:createPOST /v1/images and /v1/characters
videos:createPOST /v1/videos, /v1/video-edits and /v1/lip-sync
audio:createPOST /v1/audio
jobs:readGET /v1/jobs/{id} and its output

New keys get every scope.

PreviousQuickstartNextTokens & billing
DocsGet startedTokens & billing

Tokens & billing

1 token = $0.05. Every create response returns quoted_token_cost and your balance_tokens. Exact prices per model are on .

  1. Quote. The price is worked out from model, resolution and length before anything runs.
  2. Reserve. Those tokens are held. Without enough balance you get 402 insufficient_balance and nothing runs.
  3. Settle. A completed job is charged finalTokenCost. A failed, canceled or blocked job is not charged; the hold is released.

Video input costs extra

A job that takes video in (reference clips or an edit's source) is billed on input plus output seconds, input at 60% of the per-second rate. The quote is then a maximum (quoted_token_cost_is_maximum: true); the real charge is finalTokenCost. Image and audio references are free.
PreviousAuthenticationNextAll models
DocsModelsAll models

Models

Send a model alias as model. Each model has its own page with capabilities, limits, prices and real example outputs. GET /v1/models returns the live list without a key.

Seedance 2.5kreator-video-seedance-2-5from $0.143/svideoSeedance 2.0kreator-video-pro · kreator-video-seedance-2from $0.076/svideoSeedance 2.0 Fastkreator-video-fast · kreator-video-seedance-2-fastfrom $0.058/svideoSeedance 2.0 Minikreator-video-mini · kreator-video-seedance-2-minifrom $0.058/svideoWan 3.0kreator-video-wan-3from $0.07/svideoWan 3.0 Primekreator-video-wan-3-primefrom $0.09/svideoKling 4.0kreator-video-kling-4from $0.18/svideoKling 3.0kreator-video-kling-3from $0.07/svideoKling 3.0 Omnikreator-video-kling-3-omnifrom $0.07/svideoKling 3.0 Turbokreator-video-kling-3-turbofrom $0.09/svideoSeedream 5.0 Prokreator-image-seedream-5-pro$0.10/imageimageSeedream 4.5kreator-image-pro$0.10/imageimageSeedream 5.0 Flashkreator-image-seedream-5-flash$0.05/imageimageSeedream 5.0 Litekreator-image-fast$0.05/imageimageWan 2.7 Image Prokreator-image-wan-2-7-pro$0.08/imageimageWan 2.6kreator-image-wan-2-6$0.04/imageimageSeed Speech v3kreator-speech2 tokens / 1,000 charactersaudioSeed Audiokreator-sound2 tokens min / clipaudioSeedream 5.5kreator-image-seedream-5-5$0.06/imageimage
PreviousTokens & billingNextSeedance 2.5
DocsModelsSeedance 2.5

Seedance 2.5

videoNewfrom $0.143/s

Newest Seedance. Clips up to 30 seconds with image, video and audio references.

kreator-video-seedance-2-5

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 9)
  • Reference video clips (up to 3)
  • Reference audio (up to 3, 15 s combined)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
480p, 720p, 1080p, 4K
Durations
4s, 5s, 6s, 8s, 10s, 12s, 15s, 20s, 25s, 30s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive
References
9 images · 3 videos · 3 audio
Prompt
up to 16,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip30s clip
480p$0.143 · 2.85 tokens12 tokens86 tokens
720p$0.207 · 4.14 tokens17 tokens125 tokens
1080p$0.444 · 8.88 tokens36 tokens267 tokens
4K$0.999 · 19.98 tokens80 tokens600 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Talking to camera, text only

720p5s16:9

Prompt

A young woman with long straight blonde hair and a white t-shirt stands outdoors in a sunny green park, talking to the camera and gesturing with her hands. Clear daylight, trees and grass behind her. Single person, head and shoulders visible.

Shown without sound.

Multi-shot 2D anime with hard cuts

720p15s16:9

Prompt (excerpt)

2D anime, vibrant, dynamic camera. A 6 shot sequence with a hard cut between every shot, no dissolves and no long single take; every shot is a different framing. Shot 1 (0-2s): Extreme close up, a thumb smashes a glowing GENERATE button on a phone, speed lines burst across the screen, his blue eyes wide. …

First 7 seconds of a 15-second clip.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-seedance-2-5-001" \
  -d '{"model":"kreator-video-seedance-2-5","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousAll modelsNextSeedance 2.0
DocsModelsSeedance 2.0

Seedance 2.0

videofrom $0.076/s

Cinematic motion, reference-led shots and source-video edits, up to 4K.

kreator-video-prokreator-video-seedance-2

All aliases reach the same model at the same price.

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 9)
  • Reference video clips (up to 3)
  • Reference audio (up to 3, 15 s combined)
  • Saved characters (character_ids)
  • Video edits: transform, restyle, extend

Specs

Endpoint
POST /v1/videos
Resolutions
480p, 720p, 1080p, 4K
Durations
4s, 5s, 6s, 8s, 10s, 12s, 15s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive
References
9 images · 3 videos · 3 audio
Prompt
up to 16,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip15s clip
480p$0.076 · 1.52 tokens7 tokens23 tokens
720p$0.11 · 2.2 tokens9 tokens33 tokens
1080p$0.24 · 4.8 tokens20 tokens72 tokens
4K$0.58 · 11.6 tokens47 tokens174 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Fast drone flythrough, 1080p

1080p5s16:9

Prompt

Cinematic aerial flythrough of a futuristic neon city at night, flying between towering skyscrapers covered in glowing signs, rain-slick streets reflecting blue and magenta light, dense atmosphere and light fog, smooth fast drone camera move, ultra detailed, filmic color grade

Shown without sound, scaled down for the web.

Slow push-in, atmospheric light

480p5s16:9

Prompt

A samurai in dark robes drawing a katana in a bamboo forest, leaves spiralling down around him, shafts of morning light through the mist, camera slowly pushing in

Orbiting camera move

480p5s16:9

Prompt

A knight in shining armour raising a sword to the sky on a cliff top at sunrise, red cape whipping in the wind, a castle and a river valley far below, camera slowly circling him

Tracking shot with physics

480p5s16:9

Prompt

An astronaut in a white space suit bounding across the surface of the Moon toward a lunar rover, the Earth huge in the black sky, dust kicking up with every step, camera following from the side

Short prompt, vertical

720p5s9:16

Prompt

a cat falling into a paint can full of pink paint then it jumps out covered in the paint

Shown without sound.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-pro-001" \
  -d '{"model":"kreator-video-pro","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedance 2.5NextSeedance 2.0 Fast
DocsModelsSeedance 2.0 Fast

Seedance 2.0 Fast

videoFastfrom $0.058/s

Quick Seedance 2.0 clips for UGC hooks, motion tests and batch variants.

kreator-video-fastkreator-video-seedance-2-fast

All aliases reach the same model at the same price.

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 9)
  • Reference video clips (up to 3)
  • Reference audio (up to 3, 15 s combined)
  • Saved characters (character_ids)
  • Video edits: transform, restyle, extend

Specs

Endpoint
POST /v1/videos
Resolutions
480p, 720p, 1080p
Durations
4s, 5s, 6s, 8s, 10s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, adaptive
References
9 images · 3 videos · 3 audio
Prompt
up to 8,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip10s clip
480p$0.058 · 1.16 tokens5 tokens12 tokens
720p$0.084 · 1.69 tokens7 tokens17 tokens
1080p$0.183 · 3.66 tokens15 tokens37 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-fast-001" \
  -d '{"model":"kreator-video-fast","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedance 2.0NextSeedance 2.0 Mini
DocsModelsSeedance 2.0 Mini

Seedance 2.0 Mini

videoFastfrom $0.058/s

Lowest-cost Seedance 2.0 for drafts, A/B variants and volume pipelines.

kreator-video-minikreator-video-seedance-2-mini

All aliases reach the same model at the same price.

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 9)
  • Reference video clips (up to 3)
  • Reference audio (up to 3, 15 s combined)
  • Saved characters (character_ids)
  • Video edits: transform, restyle, extend

Specs

Endpoint
POST /v1/videos
Resolutions
480p, 720p, 1080p
Durations
4s, 5s, 6s, 8s, 10s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, adaptive
References
9 images · 3 videos · 3 audio
Prompt
up to 8,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip10s clip
480p$0.058 · 1.16 tokens5 tokens12 tokens
720p$0.067 · 1.35 tokens6 tokens14 tokens
1080p$0.135 · 2.7 tokens11 tokens27 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Four words, vertical

720p4s9:16

Prompt

a cat doing a backflip

Shown without sound.

From a character-sheet reference image

1080p5s9:16

Prompt

use the character sheet with a human tiger and make it do a cinematic fight

Made with one reference image (a character sheet, not shown). Shown without sound, scaled down for the web.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-mini-001" \
  -d '{"model":"kreator-video-mini","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedance 2.0 FastNextWan 3.0
DocsModelsWan 3.0

Wan 3.0

videoNewfrom $0.07/s

Low-cost text-to-video, frames, characters, clip and audio references, with generated sound, up to 1080p.

kreator-video-wan-3

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 10)
  • Reference video clips (up to 5)
  • Reference audio (up to 5, 15 s combined)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p
Durations
4s, 5s, 6s, 8s, 10s, 12s, 15s, 20s, 25s, 30s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, 21:9
References
10 images · 5 videos · 5 audio
Prompt
up to 4,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip30s clip
720p$0.07 · 1.4 tokens6 tokens42 tokens
1080p$0.14 · 2.8 tokens12 tokens84 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Calm atmosphere shot

720p5s16:9

Prompt

A cosy rainy-day cafe window: raindrops race down the glass, a steaming latte with heart latte art sits on the wooden sill, blurred city lights glow outside, the camera slowly drifts closer. Warm, calm, cinematic. Sound: rain on glass, soft cafe murmur, a cup clink.

Made with generated sound; shown here without sound.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-wan-3-001" \
  -d '{"model":"kreator-video-wan-3","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedance 2.0 MiniNextWan 3.0 Prime
DocsModelsWan 3.0 Prime

Wan 3.0 Prime

videoNewFastfrom $0.09/s

Wan 3.0 in fast mode: text-to-video, frames, characters, clip and audio references, with sound, up to 1080p.

kreator-video-wan-3-prime

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 10)
  • Reference video clips (up to 5)
  • Reference audio (up to 5, 15 s combined)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p
Durations
4s, 5s, 6s, 8s, 10s, 12s, 15s, 20s, 25s, 30s
Aspect ratios
16:9, 9:16, 1:1, 4:3, 3:4, 21:9
References
10 images · 5 videos · 5 audio
Prompt
up to 4,000 characters
Output
MP4 video

Pricing

ResolutionPer second4s clip30s clip
720p$0.09 · 1.8 tokens8 tokens54 tokens
1080p$0.19 · 3.8 tokens16 tokens114 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

3D animated character with a spoken line

1080p8s16:9

Prompt

3D animated film style: a small round robot with big glowing blue eyes sits on a workbench in a cosy workshop, notices a paper butterfly landing on its hand, tilts its head, and says in a cheerful little voice: "Oh! Hello there." Warm lamp light, dust in the air, soft depth of field, Pixar-like charm and detail. Sound: the robot's soft servo whirr, its voice, gentle ambient workshop hum.

Made at 1080p with generated sound; shown here at 720p without sound.

Anime action with a whip pan

1080p8s16:9

Prompt

Anime style action scene: a swordswoman with flowing silver hair in a dark kimono stands in a moonlit bamboo forest, then dashes forward and draws her katana in one blinding slash, a crescent of blue light cuts through the falling leaves. Dynamic camera whip pan, high-end anime film quality, crisp line art, glowing particles. Sound: wind through bamboo, the sharp ring of a sword being drawn, a whoosh of the slash.

Made at 1080p with generated sound; shown here at 720p without sound.

Claymation with dialogue

1080p8s16:9

Prompt

Stop-motion claymation style: a tiny clay fox in a knitted scarf sits by a crackling campfire under a starry sky, roasts a marshmallow on a stick, looks up at the camera and says in a warm little voice: "Best night ever." Handmade textures, fingerprint details in the clay, cosy warm firelight, gentle camera push in. Sound: crackling fire, crickets, the fox's voice.

Made at 1080p with generated sound; shown here at 720p without sound.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-wan-3-prime-001" \
  -d '{"model":"kreator-video-wan-3-prime","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousWan 3.0NextKling 4.0
DocsModelsKling 4.0

Kling 4.0

videoNewfrom $0.18/s

Newest Kling: clips up to 30 seconds with sound, frames, reference images and reference clips, at 1080p.

kreator-video-kling-4

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 10)
  • Reference video clips (up to 5)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p
Durations
3s, 4s, 5s, 6s, 8s, 10s, 12s, 15s, 20s, 25s, 30s
Aspect ratios
21:9, 16:9, 9:16, 1:1
References
10 images · 5 videos
Prompt
up to 26,000 characters
Output
MP4 video

Pricing

ResolutionPer second3s clip30s clip
720p$0.18 · 3.6 tokens11 tokens108 tokens
1080p$0.19 · 3.8 tokens12 tokens114 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-kling-4-001" \
  -d '{"model":"kreator-video-kling-4","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousWan 3.0 PrimeNextKling 3.0
DocsModelsKling 3.0

Kling 3.0

videoNewfrom $0.07/s

Text or first and last frame to video, a shot list, optional sound, up to 4K.

kreator-video-kling-3

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 2)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p, 4K
Durations
3s, 4s, 5s, 6s, 8s, 10s, 12s, 15s
Aspect ratios
16:9, 9:16, 1:1
References
2 images
Prompt
up to 3,072 characters
Output
MP4 video

Pricing

ResolutionPer second3s clip15s clip
720p$0.10 · 2 tokens6 tokens30 tokens
1080p$0.12 · 2.4 tokens8 tokens36 tokens
4K$0.14 · 2.8 tokens9 tokens42 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-kling-3-001" \
  -d '{"model":"kreator-video-kling-3","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousKling 4.0NextKling 3.0 Omni
DocsModelsKling 3.0 Omni

Kling 3.0 Omni

videoNewfrom $0.07/s

Frames plus up to 7 reference images or characters, a reference clip or a clip to edit, a shot list, up to 4K.

kreator-video-kling-3-omni

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 7)
  • Reference video clips (up to 1)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p, 4K
Durations
3s, 4s, 5s, 6s, 8s, 10s, 12s, 15s
Aspect ratios
16:9, 9:16, 1:1
References
7 images · 1 videos
Prompt
up to 3,072 characters
Output
MP4 video

Pricing

ResolutionPer second3s clip15s clip
720p$0.09 · 1.8 tokens6 tokens27 tokens
1080p$0.10 · 2 tokens6 tokens30 tokens
4K$0.12 · 2.4 tokens8 tokens36 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-kling-3-omni-001" \
  -d '{"model":"kreator-video-kling-3-omni","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousKling 3.0NextKling 3.0 Turbo
DocsModelsKling 3.0 Turbo

Kling 3.0 Turbo

videoNewFastfrom $0.09/s

Fast Kling 3.0 clips with sound from text or a first frame, up to 1080p.

kreator-video-kling-3-turbo

Capabilities

  • Text to video
  • Image to video with a first and/or last frame
  • Reference images (up to 1)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/videos
Resolutions
720p, 1080p
Durations
3s, 4s, 5s, 6s, 8s, 10s, 12s, 15s
Aspect ratios
16:9, 9:16, 1:1
References
1 images
Prompt
up to 3,072 characters
Output
MP4 video

Pricing

ResolutionPer second3s clip15s clip
720p$0.09 · 1.8 tokens6 tokens27 tokens
1080p$0.10 · 2 tokens6 tokens30 tokens

Billed per whole request (rate × seconds, rounded up to a whole token). Reference clips add input seconds; see Tokens & billing.

Quick request

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-video-kling-3-turbo-001" \
  -d '{"model":"kreator-video-kling-3-turbo","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousKling 3.0 OmniNextSeedream 5.0 Pro
DocsModelsSeedream 5.0 Pro

Seedream 5.0 Pro

imageNew$0.10/image

Most detailed stills with up to 10 references.

kreator-image-seedream-5-pro

Capabilities

  • Text to image
  • Reference images (up to 10)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:5, 3:4, 9:16, 16:9, 21:9
Resolution
standard
References
10 images
Prompt
up to 8,000 characters
Output
One image per request

Pricing

$0.10/image · 2 tokens per image

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Macro detail

Macro detail

16:9

Prompt

Cinematic editorial cover photograph: extreme macro of a hummingbird hovering by a flower, every feather razor sharp with iridescent detail, the left half rendered slightly softer and the right half ultra crisp, dark background, studio lighting, ultra detailed, premium magazine look. No text, no logos, no watermark.

Product shot

Product shot

16:9

Prompt

Cinematic editorial cover photograph: a luxury perfume bottle floating above black water, splashes frozen mid-air around it, a single dramatic spotlight, gold and amber reflections, high-end commercial product advertising look, shallow depth of field, ultra detailed. No text, no logos, no brand names, no watermark.

Consistent character turnaround

Consistent character turnaround

16:9

Prompt (excerpt)

Three identical stylised 3D fox character figurines on small turntables in a dark studio, the same character shown from the front, side and three-quarter view, consistent design and colours, soft blue rim light, character turnaround sheet feel without any text.

Action still

Action still

16:9

Prompt (excerpt)

A small racing FPV drone diving low through a narrow red-rock canyon at blue hour, strong motion blur on the canyon walls, glowing blue propeller trails, dynamic low angle, cinematic action still.

Light and materials

Light and materials

16:9

Prompt

Cinematic editorial cover photograph: a glowing glass prism on a black surface splitting a beam of white light into a vivid spectrum that paints a miniature surreal landscape on the table, studio lighting, ultra detailed, premium magazine look, elegant and minimal. No text, no logos, no watermark.

2D illustration

2D illustration

16:9

Prompt

Bright colourful 2D cartoon illustration for an editorial cover: a cheerful cartoon fox and a small round robot sitting on a hill under a giant play-button shaped sun, rolling green hills and fluffy clouds, bold clean outlines, rich saturated colours, polished animation studio quality, wide 16:9 composition. No text, no logos, no watermark.

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-seedream-5-pro-001" \
  -d '{"model":"kreator-image-seedream-5-pro","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousKling 3.0 TurboNextSeedream 4.5
DocsModelsSeedream 4.5

Seedream 4.5

image$0.10/image

Product shots, character references and production stills, up to 14 references.

kreator-image-pro

Capabilities

  • Text to image
  • Reference images (up to 14)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:5, 3:4, 9:16, 16:9, 21:9
Resolution
high
References
14 images
Prompt
up to 8,000 characters
Output
One image per request

Pricing

$0.10/image · 2 tokens per image

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Cinematic scene

Cinematic scene

standard16:9

Prompt

A hyperrealistic bioluminescent jellyfish drifting in the deep dark ocean, glowing cyan and magenta tendrils, volumetric god rays, tiny glowing particles, cinematic, ultra detailed

Short prompt, photo look

Short prompt, photo look

standard1:1

Prompt

A golden retriever puppy sitting in a sunny meadow, soft morning light, shallow depth of field

3D mascot

3D mascot

standard1:1

Prompt

a stylised 3D cartoon character of a cheerful robot mascot, full body, standing, plain background

Character on a plain background

Character on a plain background

standard1:1

Prompt

a stylised 3D cartoon character of a friendly astronaut, full body, standing pose, plain studio background

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-pro-001" \
  -d '{"model":"kreator-image-pro","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedream 5.0 ProNextSeedream 5.0 Flash
DocsModelsSeedream 5.0 Flash

Seedream 5.0 Flash

imageNewFast$0.05/image

Low-cost, low-latency drafts and high-volume variants.

kreator-image-seedream-5-flash

Capabilities

  • Text to image
  • Reference images (up to 10)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:5, 3:4, 9:16, 16:9
Resolution
standard
References
10 images
Prompt
up to 4,000 characters
Output
One image per request

Pricing

$0.05/image · 1 token per image

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-seedream-5-flash-001" \
  -d '{"model":"kreator-image-seedream-5-flash","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedream 4.5NextSeedream 5.0 Lite
DocsModelsSeedream 5.0 Lite

Seedream 5.0 Lite

imageFast$0.05/image

Fast drafts, social visuals and template previews.

kreator-image-fast

Capabilities

  • Text to image
  • Reference images (up to 4)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:5, 3:4, 9:16, 16:9
Resolution
standard
References
4 images
Prompt
up to 4,000 characters
Output
One image per request

Pricing

$0.05/image · 1 token per image

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-fast-001" \
  -d '{"model":"kreator-image-fast","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedream 5.0 FlashNextWan 2.7 Image Pro
DocsModelsWan 2.7 Image Pro

Wan 2.7 Image Pro

imageNew$0.08/image

Generate or edit images by instruction with up to 9 references, up to 4K.

kreator-image-wan-2-7-pro

Capabilities

  • Text to image
  • Reference images (up to 9)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:3, 3:4, 3:2, 2:3, 9:16, 16:9, 21:9
Resolution
2k, 1k, 4k
References
9 images
Prompt
up to 5,000 characters
Output
One image per request

Pricing

$0.08/image · 1.6 tokens per image

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-wan-2-7-pro-001" \
  -d '{"model":"kreator-image-wan-2-7-pro","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeedream 5.0 LiteNextWan 2.6
DocsModelsWan 2.6

Wan 2.6

imageNewFast$0.04/image

Low-cost text to image at about 1.3K.

kreator-image-wan-2-6

Capabilities

  • Text to image
  • Reference images (up to 0)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:3, 3:4, 3:2, 2:3, 9:16, 16:9, 21:9
Resolution
standard
References
—
Prompt
up to 2,000 characters
Output
One image per request

Pricing

$0.04/image · 0.8 tokens per image

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-wan-2-6-001" \
  -d '{"model":"kreator-image-wan-2-6","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousWan 2.7 Image ProNextSeed Speech v3
DocsModelsSeed Speech v3

Seed Speech v3

audioFast2 tokens / 1,000 characters

Text to speech with preset and cloned voices.

kreator-speech

Capabilities

  • Text to speech
  • Voices from GET /v1/voices
  • Finished in the same call

Specs

Endpoint
POST /v1/audio
Input
text + voice
Prompt
up to 5,000 characters
Output
Audio file, returned finished

Pricing

2 tokens / 1,000 characters · 2 tokens / 1,000 characters

Quick request

curl -X POST https://kreatorflow.ai/v1/audio \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-speech-001" \
  -d '{"model":"kreator-speech","voice":"<voice id from GET /v1/voices>","text":"Welcome to KreatorFlow."}'

Note

The response already contains the finished job with providerOutputUrl. No polling needed.
PreviousWan 2.6NextSeed Audio
DocsModelsSeed Audio

Seed Audio

audioFast2 tokens min / clip

Sound effects, ambient beds and music from a prompt.

kreator-sound

Capabilities

  • Sound effects and music from a prompt
  • Finished in the same call

Specs

Endpoint
POST /v1/audio
Input
prompt
Prompt
up to 3,000 characters
Output
Audio file, returned finished

Pricing

2 tokens min / clip · 2 tokens / clip minimum, then by output length

Examples

Real outputs from this model, made on KreatorFlow. Each shows the prompt and the request that sets up the same job.

Narrated line

Prompt

A cheerful female narrator says: Welcome to KreatorFlow audio.

Quick request

curl -X POST https://kreatorflow.ai/v1/audio \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-sound-001" \
  -d '{"model":"kreator-sound","prompt":"Soft rain on a tin roof with distant thunder"}'

Note

The response already contains the finished job with providerOutputUrl. No polling needed.
PreviousSeed Speech v3NextSeedream 5.5
DocsModelsSeedream 5.5

Seedream 5.5

imageNew$0.06/image

Precise multi-round edits, realistic multi-image blends, small and multilingual text

kreator-image-seedream-5-5

Capabilities

  • Text to image
  • Reference images (up to 10)
  • Saved characters (character_ids)

Specs

Endpoint
POST /v1/images
Aspect ratios
1:1, 4:5, 3:4, 9:16, 16:9, 21:9
Resolution
standard
References
10 images
Prompt
up to 8,000 characters
Output
One image per request

Pricing

$0.06/image · 1.2 tokens per image (was $0.10, 40% off until 11 December)

Quick request

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: kreator-image-seedream-5-5-001" \
  -d '{"model":"kreator-image-seedream-5-5","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"16:9"}'

Note

The response is a job. Poll GET /v1/jobs/{id} every few seconds, or send webhook_url.
PreviousSeed AudioNextImages
DocsGenerateImages

Images

POST/v1/images

curl -X POST https://kreatorflow.ai/v1/images \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: image-001" \
  -d '{"model":"kreator-image-pro","prompt":"studio product photo of red boots on wet asphalt","aspect_ratio":"4:5"}'

Errors

CodeHTTPWhat to do
invalid_api_key401Send Authorization: Bearer <key>. Create a new key if it was revoked.
insufficient_balance402Top up under Billing. data.top_up_url links there.
prompt_required400Add a prompt.
prompt_too_long400Shorten it; GET /v1/models lists maxPromptChars.
model_not_found400Use an id from GET /v1/models.
aspect_ratio_not_supported400Send one of the model's aspect ratios.
reference_upload_not_found404Re-upload the file and use the new upload_id.
character_pending409Wait retry_after seconds, then retry.
rate_limited429Wait the seconds in the Retry-After header.

References can be public HTTPS links or upload_ids from Uploads. For a face you reuse, register a character.

PreviousSeedream 5.5NextVideos
DocsGenerateVideos

Videos

POST/v1/videos

curl -X POST https://kreatorflow.ai/v1/videos \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: video-001" \
  -d '{"model":"kreator-video-fast","prompt":"a paper boat drifting across a calm pond at sunrise","duration":5,"aspect_ratio":"16:9","resolution":"720p"}'

Errors

CodeHTTPWhat to do
invalid_api_key401Send Authorization: Bearer <key>. Create a new key if it was revoked.
insufficient_balance402Top up under Billing. data.top_up_url links there.
prompt_required400Add a prompt.
model_not_found400Use an id from GET /v1/models.
duration_not_supported400Send one of the model's durations.
aspect_ratio_not_supported400Send one of the model's aspect ratios.
resolution_not_supported400Send one of the model's resolutions.
reference_combination_not_supported400Send one kind per request.
character_pending409Wait retry_after seconds, then retry.
rate_limited429Wait the seconds in the Retry-After header.
  • Send only durations, aspect ratios and resolutions the model lists; anything else returns a 400 instead of a silent default.
  • Start/end frames (first_frame_*, last_frame_*) can't be combined with reference images or character_ids in one request.
  • Audio references may total 15 seconds across all of them. Keep video references short: input seconds are billed (see Tokens & billing).

Reference clips: fallback or strict

With video_reference_mode: "fallback" (default) a clip reference may be dropped to get you an output; the job then has referenceDropped: true. Send "strict" when the clip must be used.
PreviousImagesNextVideo edits
DocsGenerateVideo edits

Video edits

Transform, restyle or extend an existing clip with Seedance 2. The source is used strictly and framing defaults to adaptive.

POST/v1/video-edits

curl -X POST https://kreatorflow.ai/v1/video-edits \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: edit-001" \
  -d '{"model":"kreator-video-seedance-2","edit_mode":"restyle","source_video_upload_id":"tos:kreatorflow/uploads/…/clip.mp4","prompt":"turn the scene into a rainy neon night","resolution":"720p"}'

The same edit also works on POST /v1/videos with intent: "video_edit". Upload the source with upload_type: "VIDEO"; MP4/MOV (H.264/AAC) under 50 MB works best.

Errors

CodeHTTPWhat to do
insufficient_balance402Top up under Billing. data.top_up_url links there.
video_edit_model_not_supported400Use kreator-video-seedance-2, kreator-video-fast or kreator-video-mini.
video_edit_source_required400Send source_video_upload_id or video.
video_edit_source_not_found404Upload the clip with upload_type VIDEO.
resolution_not_supported400Send one of the model's resolutions.
rate_limited429Wait the seconds in the Retry-After header.
PreviousVideosNextAudio
DocsGenerateAudio

Audio

Text to speech (kreator-speech) and sound or music from a prompt (kreator-sound). The call returns the job already finished, with providerOutputUrl.

POST/v1/audio

curl -X POST https://kreatorflow.ai/v1/audio \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: speech-001" \
  -d '{"model":"kreator-speech","voice":"<voice id>","text":"Welcome to KreatorFlow."}'
GET/v1/voices

curl https://kreatorflow.ai/v1/voices \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY"

Errors

CodeHTTPWhat to do
invalid_api_key401Send Authorization: Bearer <key>. Create a new key if it was revoked.
insufficient_balance402Top up under Billing. data.top_up_url links there.
prompt_required400Add a prompt.
voice_required400Use an id from GET /v1/voices.
rate_limited429Wait the seconds in the Retry-After header.
PreviousVideo editsNextLip Sync
DocsGenerateLip Sync

Lip Sync

One photo and one voice track become a video of that person speaking it (kreator-lipsync, OmniHuman 2.0). The video is as long as the audio, 4 seconds to 5 minutes. Upload the photo (upload_type: "IMAGE") and the audio (upload_type: "AUDIO", MP3 or WAV) first, or pass a finished /v1/audio job as audio_job_id.

POST/v1/lip-sync

curl -X POST https://kreatorflow.ai/v1/lip-sync \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lipsync-001" \
  -d '{"image_upload_id":"tos:kreatorflow/uploads/…/presenter.png","audio_upload_id":"tos:kreatorflow/uploads/…/voiceover.mp3","prompt":"smiles and nods while talking, steady camera","resolution":"720p"}'

Consent and paid accounts

Only use photos of yourself or of people who agreed, as the Terms and Acceptable Use Policy require. Lip Sync needs a paid account (a card top-up). The photo is screened and the audio is measured before anything is reserved.

4 tokens per started second of audio at 720p, 6 at 1080p. The response returns billed_seconds. Lip Sync renders one job at a time: while it is busy your job stays queued with its tokens held and starts when a slot frees, so keep polling the job.

Errors

CodeHTTPWhat to do
paid_account_required403Top up with a card under Billing.
paid_check_unavailable503Send the same request again in a moment.
insufficient_balance402Top up under Billing. data.top_up_url links there.
image_upload_not_found404Upload the photo with upload_type IMAGE and use the new upload_id.
audio_upload_not_found404Upload the track with upload_type AUDIO, or use a completed audio job id.
audio_too_short400Send 4 seconds to 5 minutes of audio.
audio_too_long400Trim it to 5 minutes or less.
audio_unreadable400Use an MP3 or WAV under 15 MB.
image_rejected422Use a different photo.
rate_limited429Wait the seconds in the Retry-After header.
PreviousAudioNextCharacters
DocsGenerateCharacters

Characters

Register a face or character once and reuse it by id. It is reviewed once (about 20 seconds for an image); after that, jobs use it directly with no per-job review.

  1. Step 1

    Upload the image

    Use the upload flow.
  2. Step 2

    Register it

    POST /v1/characters with mode: "register" and the upload_id.
  3. Step 3

    Wait, then use it

    Poll until status is ready, then pass character_ids.
POST/v1/characters

curl -X POST https://kreatorflow.ai/v1/characters \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"register","name":"Mira","upload_id":"tos:kreatorflow/uploads/…/mira.png"}'

Real people in references

Photos and clips of real people you have the rights and consent to use work as references. A new reference is reviewed once on its first use (about 20 seconds for an image, up to about 2.5 minutes for a video clip); reuse the same upload_id and later jobs skip the review. For a face you use often, register it here as a character. Celebrity, public-figure and impersonation requests, and prompts that ask to match someone's identity, are refused.
GET/v1/characters

GET/v1/characters/{character_id}

DELETE/v1/characters/{character_id}

WhenYou getDo this
status: pendingStill in reviewPoll GET /v1/characters/{id}
409 character_pendingUsed before ready; nothing reservedWait retry_after seconds, retry
422 character_registration_failedThe image didn't pass reviewRegister again with another image
PreviousLip SyncNextUploads
DocsFiles & resultsUploads

Uploads

Private reference files go through a three-step upload. Public HTTPS links can skip this and go straight into the reference fields.

# 1. Reserve an upload
curl -X POST https://kreatorflow.ai/v1/uploads \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_name":"ref.png","mime_type":"image/png","file_size":482133,"upload_type":"IMAGE"}'

# 2. PUT the bytes to direct_upload_url with exactly direct_upload_headers
curl -X PUT "$DIRECT_UPLOAD_URL" -H "Content-Type: image/png" --data-binary @ref.png

# 3. Finish it
curl -X POST https://kreatorflow.ai/v1/uploads/complete \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"upload_id":"'"$UPLOAD_ID"'"}'
POST/v1/uploads

Response
{
  "success": true,
  "data": {
    "upload_id": "tos:kreatorflow/uploads/workspace-id/1700000000000-reference.png",
    "direct_upload_url": "https://…signed-storage-url…",
    "direct_upload_headers": {
      "Content-Type": "image/png"
    },
    "direct_upload_expires_at": "2026-10-17T12:10:00.000Z",
    "complete_url": "https://kreatorflow.ai/v1/uploads/complete",
    "upload_method": "PUT",
    "upload_mode": "direct"
  }
}
POST/v1/uploads/complete

DELETE/v1/uploads/{upload_id}

Errors

CodeHTTPWhat to do
upload_invalid400Send file_name, mime_type, file_size and upload_type.
upload_too_large413Images 50 MB, video 200 MB, audio 15 MB.
upload_larger_than_declared413Create a new upload with the real file_size and PUT the file again.
storage_quota_exceeded402Delete old uploads or add a Storage Pack.
upload_not_found404Create the upload again.
upload_in_use409Delete it after the job finishes.
Typeupload_typeMax size
ImageIMAGE50 MB
VideoVIDEO200 MB
AudioAUDIO15 MB

Send exactly direct_upload_headers on the PUT; the signed URL lasts about 5 minutes (10 with signed_size: true). A new reference is reviewed on its first use (about 20 s for an image, up to about 2.5 min for a clip); reuse the same upload_id and later jobs skip it.

PreviousCharactersNextJobs & polling
DocsFiles & resultsJobs & polling

Jobs & polling

StatusMeaning
created · queued · processingStill running. Poll every 3 seconds.
completedDone. Download providerOutputUrl with your key.
failedRead errorCode and errorMessage. Not charged.
canceled · blockedStopped (blocked = e.g. no balance). Not charged.
GET/v1/jobs/{job_id}

curl https://kreatorflow.ai/v1/jobs/3f0c0e0a-0000-4000-8000-000000000000 \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY"

The job object

Response fields

idstring

Job id. Poll GET /v1/jobs/{id} with it.

mediaTypestring

image, video or audio.

modelIdstring

The model alias you sent.

statusstring

created, queued, processing, completed, failed, canceled or blocked.

quotedTokenCostnumber

Tokens quoted (and reserved) when the job was created.

finalTokenCostnumber

Tokens charged. 0 until the job completes, and for any job that does not complete.

providerOutputUrlstring | null

When completed: the output link. Download it with your key.

providerOutputExpiresAtstring | null

When the output link stops working. Keep your own copy.

errorCodestring | null

Why the job failed (see Errors).

errorMessagestring | null

A readable explanation of the failure.

errorDataobject

Extra detail for some errors, e.g. retry_after for reference_asset_pending.

referenceDroppedboolean

Video, fallback mode only: true when a reference clip could not be used.

warningsarray

Non-fatal notes about the request, when there are any.

createdAt · updatedAt · completedAtstring

ISO timestamps.

GET/HEAD/v1/jobs/{job_id}/output

Output links need the same Authorization header and expire (providerOutputExpiresAt). Save a copy to your own storage.

PreviousUploadsNextWebhooks
DocsFiles & resultsWebhooks

Webhooks

Add webhook_url (HTTPS) to any create request. When the job ends we POST the event below. Your signing secret is under . Keep polling as a fallback.

Events
job.completed · job.failed · job.canceled · job.blocked
Delivery
3 attempts, 4 s timeout each
Headers
X-KreatorFlow-Event-Id, -Event-Type, -Job-Id, -Timestamp, -Signature
Signature
t=<unix>,v1=hex(HMAC-SHA256(secret, `${t}.${rawBody}`))
Event body
{
  "object": "kreatorflow.developer_webhook_event",
  "id": "evt_<job_id>_completed",
  "type": "job.completed",
  "created": "2026-10-17T12:01:10.000Z",
  "data": {
    "job": {
      "id": "<job_id>",
      "status": "completed",
      "providerOutputUrl": "https://kreatorflow.ai/v1/jobs/<job_id>/output"
    }
  }
}

Verify the signature

import { createHmac, timingSafeEqual } from "node:crypto";

// rawBody: the request body exactly as received (a string, before JSON.parse)
export function verifyKreatorFlowWebhook(rawBody, signatureHeader, secret) {
  const parts = Object.fromEntries(signatureHeader.split(",").map((part) => part.split("=")));
  const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
  const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300; // reject replays older than 5 min
  return fresh && expected.length === parts.v1?.length && timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}
PreviousJobs & pollingNextStorage
DocsFiles & resultsStorage

Storage

Your uploads count toward a storage allowance: 5 GB free, more with a Storage Pack (see ). Generated outputs are stored but never count. Delete an upload to free its space.

GET/v1/storage

curl https://kreatorflow.ai/v1/storage \
  -H "Authorization: Bearer $KREATORFLOW_API_KEY"
FieldMeaning
quota_used_bytesYour uploads: what counts against the allowance
included_bytesYour allowance (pack or free)
outputs_bytesGenerated outputs (shown, not counted)
used_bytesEverything stored
has_pack · tierWhether a Storage Pack is active, and which

Over the allowance, new uploads return 402 storage_quota_exceeded.

PreviousWebhooksNextErrors
DocsReferenceErrors

Errors

Every error has a stable code; branch on that, not the message. Some include extra fields in data (e.g. retry_after, top_up_url).

402 response
{
  "success": false,
  "code": "insufficient_balance",
  "error": "Not enough tokens: this job needs 21 and 4 are available. Add developer tokens before submitting generation jobs."
}

Request errors

CodeHTTPMeaningWhat to do
invalid_api_key401The key is missing, wrong or revoked.Send Authorization: Bearer <key>. Create a new key if it was revoked.
insufficient_balance402Not enough tokens for the quoted cost.Top up under Billing. data.top_up_url links there.
storage_quota_exceeded402The upload would go over your storage allowance.Delete old uploads or add a Storage Pack.
account_not_active403The developer account is suspended.Contact support.
scope_missing403The key lacks the scope this endpoint needs.Use a key with that scope.
job_not_found404No job with that id for this key's account.Check the id; jobs are private to the account.
character_not_found404The character id or slug doesn't exist.List characters with GET /v1/characters.
upload_not_found404The upload_id doesn't exist in this workspace.Create the upload again.
reference_upload_not_developer400The upload_id is a file uploaded on the website, not through the API.Upload this file with /v1/uploads first.
reference_image_wrong_type400A reference image or frame is a video, audio or document file (data.field names it).Send JPEG, PNG or WebP; send clips as reference_video_upload_ids.
reference_upload_not_found404A reference upload_id doesn't exist in this workspace.Re-upload the file and use the new upload_id.
video_edit_source_not_found404The source_video_upload_id doesn't exist.Upload the clip with upload_type VIDEO.
upload_in_use409A queued or processing job still uses this upload.Delete it after the job finishes.
character_pending409The character is still being reviewed. Nothing was reserved.Wait retry_after seconds, then retry.
upload_too_large413The file is over the size limit for its type.Images 50 MB, video 200 MB, audio 15 MB.
upload_larger_than_declared413The stored file is more than 10% larger than the file_size you declared. It was deleted.Create a new upload with the real file_size and PUT the file again.
character_registration_failed422The character image did not pass review.Register the character again with another image.
rate_limited429Too many requests in the window.Wait the seconds in the Retry-After header.
prompt_required400No prompt (or text for speech) was sent.Add a prompt.
prompt_too_long400The prompt is over the model's limit.Shorten it; GET /v1/models lists maxPromptChars.
model_not_found400Unknown model alias.Use an id from GET /v1/models.
duration_not_supported400The model doesn't offer that length.Send one of the model's durations.
aspect_ratio_not_supported400The model doesn't offer that aspect ratio.Send one of the model's aspect ratios.
resolution_not_supported400The model doesn't offer that resolution.Send one of the model's resolutions.
reference_combination_not_supported400These references can't be combined, e.g. start/end frames with reference images.Send one kind per request.
upload_invalid400The upload request is missing a field or has a bad type.Send file_name, mime_type, file_size and upload_type.
video_edit_model_not_supported400Video edits need a Seedance 2.0 family model (2.0, Fast or Mini).Use kreator-video-seedance-2, kreator-video-fast or kreator-video-mini.
video_edit_source_required400A video edit needs a source clip.Send source_video_upload_id or video.
voice_required400Speech needs a voice.Use an id from GET /v1/voices.
paid_account_required403Lip Sync needs a paid account. Nothing was charged.Top up with a card under Billing.
paid_check_unavailable503The account's payment status could not be read just now. Nothing was charged.Send the same request again in a moment.
audio_reference_too_long400The audio references add up to more than the model accepts in total (15 s on Seedance 2.0, 30 s on 2.5). Nothing was charged.Trim or remove audio so all audio references combined fit.
image_upload_not_found404The image_upload_id isn't in this workspace.Upload the photo with upload_type IMAGE and use the new upload_id.
audio_upload_not_found404The audio_upload_id isn't in this workspace (or audio_job_id isn't a completed /v1/audio job).Upload the track with upload_type AUDIO, or use a completed audio job id.
audio_too_short400The voice track is under 4 seconds. Nothing was charged.Send 4 seconds to 5 minutes of audio.
audio_too_long400The voice track is over 5 minutes. Nothing was charged.Trim it to 5 minutes or less.
audio_unreadable400The audio couldn't be read. Nothing was charged.Use an MP3 or WAV under 15 MB.
image_rejected422The photo didn't pass the safety check. Nothing was charged.Use a different photo.
internal_error500Something failed on our side.Retry with the same Idempotency-Key.
dispatch_disabled503Generation is paused for this environment.Retry later.

Job errors

The job ends failed with this errorCode. Reserved tokens are released.

errorCodeMeaningWhat to do
reference_rejectedA reference did not pass screening.For a real person you have consent to use, register the face as a character (reviewed once, then reused), or use another image.
reference_asset_pendingA new reference is still being reviewed.Wait errorData.retry_after seconds, resubmit with the same upload_id and a new Idempotency-Key.
reference_asset_failedThe reference did not pass review.Use a different file.
generation_rejectedThe request was declined (prompt, reference or options).Change the prompt, reference or options, then retry.
generation_timeoutThe job did not finish in time; reserved tokens are released.Retry with a new Idempotency-Key.
generation_unavailableThe model is temporarily unavailable.Retry later or pick another model.
generation_failedThe generation failed.Retry; change the prompt or references if it repeats.
PreviousStorageNextRate limits & retries
DocsReferenceRate limits & retries

Rate limits & retries

Over a limit you get 429 rate_limited with a Retry-After header in seconds.

When a model is busy, a new job waits in line (queued, tokens reserved) and starts when a slot frees. One account can have up to 5 Seedance 2.5 jobs and up to 2 Lip Sync jobs waiting at once. Past that the create request also answers 429 rate_limited and nothing is reserved. Jobs already rendering do not count.

Idempotency

Send a unique Idempotency-Key header with every create. If a request times out, retry with the same key: you get the original job back (idempotent_replay: true) instead of paying twice. Use a new key for a new job, including after a failure.

PreviousErrorsNextMCP server
DocsReferenceMCP server

MCP server

Let an AI client call the API as tools. Tools run through the same jobs and token balance as HTTP.

Local files: create_upload returns an upload_id and a ready curl command; run it, call confirm_upload, then pass the upload_id as reference_image_upload_ids, first_frame_upload_id, reference_video_upload_ids or image_upload_id. Same limits as POST /v1/uploads; uploading is free.

Endpoint
https://kreatorflow.ai/v1/mcp
Transport
Streamable HTTP
Auth
Authorization: Bearer <key>
list_modelscreate_uploadconfirm_uploadgenerate_imagegenerate_videoedit_videolip_synclist_voicesgenerate_speechgenerate_soundget_jobget_balance
# Claude Code
claude mcp add --transport http kreatorflow https://kreatorflow.ai/v1/mcp \
  --header "Authorization: Bearer $KREATORFLOW_API_KEY"

Using KreatorFlow with your plan credits instead of API tokens? Connect https://kreatorflow.ai/api/mcp with OAuth; setup guide.

PreviousRate limits & retriesNextAI agents
DocsReferenceAI agents

AI agents

Build with ChatGPT, Claude, Cursor or Codex

One guide your assistant can follow. Save your key as KREATORFLOW_API_KEY where the code runs (never paste it into a chat), give the assistant the guide, then say what to build.

Download .md

Custom GPT or agent framework? Import the OpenAPI link and choose API key auth, type Bearer.

docs.jsonOpenAPIRead the guide
PreviousMCP server

Last updated 19 October 2026