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", // requires visuals:"ai"
"aiVideoClipPercentage": Number,
"imageAnimationPreset": "None" | "Mix:Subtle Flow" | "Mix" | "Mix:Dramatic",
"bgMusicVolume": Number,
"generateSfx": Boolean,
"addPauses": Boolean,
"subtitlePresetId": String,
"highlightSubtitles": Boolean,
"templateId": String,
"brandId": String, // applies your brand kit: logo watermark, intro/outro, colours and fonts
"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 and visuals set to ai. See valid values.-N/A
aiVideoClipPercentagenumberPercentage of scenes (0–100) to fill with AI video clips. Only applies when aiVideoModel is set and visuals is ai.-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. See Finding your IDs. 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
brandIdstringID of a brand kit to apply. Adds your logo watermark, intro and outro clips, and brand colours and fonts. See Branding.-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​

See Finding your IDs for every ID this endpoint accepts (voiceId, templateId, subtitlePresetId, and so on) and the two ways to get each: copy it from the app, or fetch it from an endpoint.

Branding​

Set brandId to apply one of your brand kits to every video the request creates. Get the ID from the brand kits endpoint, or copy it from the end of the kit's URL at app.fliki.ai/brand-kits.

Applying a kit does four things:

  • puts your logo watermark in the corner of every scene,
  • adds your intro clip as the first scene and your outro clip as the last,
  • recolours the video with your brand colours,
  • sets text in your brand fonts.

Whatever the kit is missing is simply skipped: a kit with only a logo adds only the watermark. The kit's voice is never applied here, so the voiceId you send always narrates the video. Note that intro and outro clips lengthen the video, which is reflected in the credits the export costs.

A brandId that names a kit you cannot use is rejected with Brand kit not found or deleted. rather than being ignored, so a typo never ships an unbranded video without telling you. Brand kits are available on Standard plans and above.

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). Requires visuals to be ai: only AI-generated images can be converted into clips, so a request that pairs aiVideoModel with visuals of stock or library (the default is stock) is rejected. 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