Skip to main content

Video

Generate a video from a script, idea, or blog URL. Supports automatic visual selection, AI-generated visuals, voiceover, subtitles, and more.

Request

POSThttps://api.fliki.ai/v1/generate/video

Headers

{
"Content-type": "application/json",
"Authorization": "Bearer API_KEY"
}
KeyValueDescription
Content-Typeapplication/jsonSpecifies that the request body format is JSON, allowing the server to parse the data correctly.
AuthorizationBearer YOUR_API_KEYGenerate your API Key in the automation section and replace YOUR_API_KEY with your actual key. API access is available on request — contact support to enable it for your account.

Body

{
"file": String, // optional name for the folder created in your workspace
"payload": [
{
"workflowType": "script" | "idea" | "url",
"workflowFormat": "video",

// Input — required field depends on workflowType
"content": String, // required for "script" (script text) and "url" (blog/article URL)
"prompt": String, // required for "idea" (topic or idea)

"voiceId": String,
"aspectRatio": "16:9" | "9:16" | "1:1",
"resolution": "1080p" | "720p" | "480p" | "360p",
"extension": "mp4" | "mov" | "mp3" | "wav",
"duration": Number,
"visuals": "stock" | "ai" | "library",
"mediaUrls": [String], // public image URLs from your library; mixes with stock/ai, or set visuals:"library" for library only
"artStyle": String, // see Field values section for valid keys
"aiVideoModel": "runware-seedance-pro-fast" | "runware-p-video" | "runware-pixverse-v5-fast" | "runware-ltx-2-fast" | "runware-kling-2.5-turbo",
"aiVideoClipPercentage": Number,
"imageAnimationPreset": "None" | "Mix:Subtle Flow" | "Mix" | "Mix:Dramatic",
"bgMusicVolume": Number,
"generateSfx": Boolean,
"addPauses": Boolean,
"subtitlePresetId": String,
"highlightSubtitles": Boolean,
"templateId": String,
"sceneBreakdown": "auto" | "lineBreak" | "sentence",
"fileName": String,
"shouldExport": Boolean
}
]
}

Pass multiple objects in payload to generate several videos in one request.

Top-level fields:

KeyTypeDescriptionRequiredDefault
payloadarrayArray of video job objects (see below). Send one or many.YesN/A
filestringName for the folder created in your workspace.-N/A
folderIdstringID of an existing workspace folder to place files into. Find it by opening a folder in Fliki and copying the ID after ?folder= in the URL. If omitted, a new folder named by file is created.-N/A

Each object in payload:

KeyTypeDescriptionRequiredDefault
workflowTypestringType of video to generate. One of script, idea, or url.YesN/A
workflowFormatstringMust be video.YesN/A
contentstringThe script text (for script) or a blog/article URL (for url). Max 10000 characters.Yes (for script / url)N/A
promptstringThe topic or idea to generate a video about. Max 10000 characters.Yes (for idea)N/A
voiceIdstringThe identifier for the voice to be used for the voiceover.YesN/A
aspectRatiostringOutput aspect ratio. One of 16:9, 9:16, or 1:1.-16:9
resolutionstringExport resolution. One of 1080p, 720p, 480p, or 360p. Video only.-1080p
extensionstringExport format. mp4 or mov for video; mp3 or wav for audio.-mp4
durationnumberTarget video duration in minutes (1–15, subject to your plan's max export length).-N/A
visualsstringFill source. stock uses stock footage; ai generates visuals with AI; library uses only your mediaUrls.-stock
mediaUrlsarrayPublic image URLs (max 100) imported into your media library and used as scene visuals — your own media (the "My library" source). Combines with the visuals fill source; set visuals to library to use these only. Required when visuals is library.Yes (for library)N/A
artStylestringArt style for AI-generated visuals. Used when visuals is ai. See valid values.-cinematic
aiVideoModelstringAI video model for generating video clips instead of static images. Requires a paid plan. See valid values.-N/A
aiVideoClipPercentagenumberPercentage of scenes (0–100) to fill with AI video clips. Only applies when aiVideoModel is set.-20
imageAnimationPresetstringMotion preset applied to AI-generated images. See valid values.-N/A
bgMusicVolumenumberBackground music volume from 0 (muted) to 100 (full).-20
generateSfxbooleanAutomatically generate contextual sound effects for each scene.-true
addPausesbooleanInsert natural pauses between sentences in the voiceover.-false
subtitlePresetIdstringID of a subtitle preset. Get it from any project: open a file at app.fliki.ai/files → right panel → subtitle preset → copy icon. Only applies when templateId is not set.-N/A
highlightSubtitlesbooleanHighlight the currently spoken word in subtitles (karaoke style).-false
templateIdstringID of a Fliki template to apply to the video. See Finding IDs.-N/A
sceneBreakdownstringHow to split the script into scenes. See valid values.-auto
fileNamestringName for the created file shown in your Fliki workspace.-Untitled file
shouldExportbooleanAutomatically export the file after generation.-false

Finding voice and template IDs

Field values

artStyle — Art style for AI-generated images. Only applies when visuals is ai.

ValueLabel
cinematicCinematic
realisticRealistic
animeAnime
illustrationIllustration
comicBookComic book
threeDimensionModel3D model
fantasyArtFantasy art
waterColorWatercolor
lineArtLine art
modelingCompoundClay
whimsicalWhimsical
biblicalBiblical
filmNoirFilm Noir
tinyWorldTiny World
technicalIllustrationTechnical illustration

aiVideoModel — AI model used to generate video clips (paid plans only). Leave unset to skip AI video and use stock footage or static AI images instead.

ValueNameNotes
runware-seedance-pro-fastSeedance Pro FastFastest and most affordable; good for drafts and B-roll
runware-p-videoP-VideoAffordable everyday model for social and marketing clips
runware-pixverse-v5-fastPixVerse v5 FastBest for anime, sci-fi, and template-driven viral effects
runware-ltx-2-fastLTX-2 FastOpen-source model; supports clips up to 20 seconds
runware-kling-2.5-turboKling 2.5 TurboCinematic look with weighted physics; great for B-roll

imageAnimationPreset — Motion applied to AI-generated images. Has no effect when visuals is stock.

ValueDescription
NoneNo motion — images are static
Mix:Subtle FlowGentle Ken Burns-style movement
MixEnergetic short-form motion (TikTok style)
Mix:DramaticBold, high-impact motion

sceneBreakdown — Controls how the script is split into scenes.

ValueDescription
autoAI decides the best split points (recommended)
lineBreakSplit at every new line
sentenceSplit at every sentence

Response

{
"success": Boolean,
"data": {
"folderId": String,
"filesCreated": [String]
}
}
KeyTypeDescription
successbooleantrue when the jobs were scheduled successfully
data.folderIdstringIdentifier of the folder containing the generated files
data.filesCreatedstring[]Array of file IDs, one per object submitted in payload

Checking Status

Video generation is asynchronous. Poll the status endpoint every 10 seconds using a fileId from data.filesCreated.

GET https://api.fliki.ai/v1/generate/status?fileId=<fileId>
{
"fileId": String,
"status": "queued" | "processing" | "success" | "error" | "canceled",
"progress": Number,
"download": String // CDN URL — only present when status is "success"
}

Once status is success, the download field contains the MP4 URL.

Opening in Editor

To edit the generated video in Fliki, open:

https://app.fliki.ai/editor/<fileId>

Limits

  • Rate limit: 10 requests per 10 minutes per API key
  • Pending job cap: 20 queued or processing jobs at a time

Example

cURL Request
curl \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"payload": [{"workflowType": "script", "workflowFormat": "video", "content": "Your script here...", "voiceId": "..."}]}' \
-X POST https://api.fliki.ai/v1/generate/video