Skip to main content

Plan a creative video

POST /api/render/creative-plan/api-key

Build a free, plan-aware art-direction plan before authoring project JSON. The response includes scene roles and timing, style/layout directions, creative-library and stock-media queries, variation seeds, recent-asset exclusions, and the fallback workflow used when no complete template fits.

This endpoint does not enqueue a render or consume credits.

Authentication​

x-api-key: YOUR_API_KEY (header). API key for authentication. Create one in your dashboard.

Create API keys at app.zvid.io/api-keys. Keep credentials on your server.

Parameters​

This operation has no path, query, or additional header parameters.

Request​

The shell examples read credentials from ZVID_API_KEY (or ZVID_ACCESS_TOKEN for Bearer authentication). Set that variable in your environment. Replace sample project, template, job, and asset identifiers with values from your own account.

A request body is required.

application/json​

Unknown properties are rejected. Required properties: brief.

FieldTypeRequiredDescription and constraints
body.briefstringYesWhat the video should communicate, for whom, and the desired outcome. Minimum length: 3. Maximum length: 4000.
body.variationMode"consistent" / "fresh" / "explore"NoStable repeatable output, one new direction, or 2-5 materially different directions. Default: "fresh".
body.variationSeedstring OR integerNoOptional reproducible creative seed. Exactly one of the listed alternatives must match.
body.exploreCountintegerNoDefault: 3. Minimum: 2. Maximum: 5.
body.aspectRatio"16:9" / "9:16" / "1:1" / "4:5" / "custom"NoDefault: "16:9".
body.durationnumberNoDesired final duration. The response caps it to the caller's plan. Default: 15. Minimum: 0.1. Maximum: 86400.
body.stylestringNoBuilt-in style-pack id or auto. Default: "auto". Maximum length: 100.
body.motionIntensity"restrained" / "balanced" / "energetic"No
body.preferredMedia"image" / "video" / "mixed"NoDefault: "mixed".
body.recentAssetSlugsarray of stringNoRecently used creative-library slugs to exclude from fresh or explore work. Maximum items: 20.
body.brandCreativeBrandKitNo

Nested field: body.variationSeed

Optional reproducible creative seed.

Exactly one of the listed alternatives must match.

oneOf alternative 1

Minimum length: 1. Maximum length: 128.

Type: string.

oneOf alternative 2

Type: integer.

Nested field: body.recentAssetSlugs

Recently used creative-library slugs to exclude from fresh or explore work.

Maximum items: 20.

Array item: body.recentAssetSlugs[]

Maximum length: 255.

Type: string.

Request example: Example​

curl --request POST 'https://api.zvid.io/api/render/creative-plan/api-key' \
--header "x-api-key: $ZVID_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"brief": "Launch an AI analytics product for SaaS teams",
"variationMode": "explore",
"exploreCount": 3,
"aspectRatio": "9:16",
"duration": 20,
"style": "modern-saas",
"recentAssetSlugs": [
"saas-launch-one",
"gradient-hero"
],
"brand": {
"name": "Acme",
"primaryColor": "#6633FF",
"headlineFont": "Sora"
}
}'

Responses​

HTTP 200​

Creative plan generated

Content type: application/json.

Required properties: creativePlanVersion, request, variation, directions, creativeWorkflow, nextActions.

FieldTypeRequiredDescription and constraints
response.creativePlanVersionstringYes
response.schemaVersionstringNo
response.sourceOfTruthstringNo
response.planLimitsobjectNo
response.requestobjectYes
response.variationobjectYes
response.searchQueriesobjectNo
response.exclusionsarray of stringNo
response.directionsarray of objectYesOne direction for consistent/fresh or 2-5 materially different directions for explore.
response.creativeWorkflowobjectYesTemplate selection, no-exact-match fallback, anti-repetition, build-order and quality-gate rules.
response.nextActionsarray of stringYes
response.warningsarray of stringNo

Nested field: response.exclusions

Array item: response.exclusions[]

Type: string.

Nested field: response.directions

One direction for consistent/fresh or 2-5 materially different directions for explore.

Array item: response.directions[]

Type: object.

Nested field: response.nextActions

Array item: response.nextActions[]

Type: string.

Nested field: response.warnings

Array item: response.warnings[]

Type: string.

HTTP 400​

Invalid creative brief or options

Content type: application/json.

Required properties: error.

FieldTypeRequiredDescription and constraints
response.errorstringYesError type
response.messagestringNoHuman-readable error message

HTTP 401​

Unauthorized

Content type: application/json.

Unknown properties are rejected. Required properties: error.

FieldTypeRequiredDescription and constraints
response.errorstringYesError type
response.messagestringNoHuman-readable error message

HTTP 500​

Internal server error

Content type: application/json.

Required properties: error.

FieldTypeRequiredDescription and constraints
response.errorstringYesError type
response.messagestringNoHuman-readable error message

Schema definitions​

The following definitions describe the fields referenced above. Expand a definition to inspect its complete contract.

CreativePlanRequest

Unknown properties are rejected. Required properties: brief.

FieldTypeRequiredDescription and constraints
CreativePlanRequest.briefstringYesWhat the video should communicate, for whom, and the desired outcome. Minimum length: 3. Maximum length: 4000.
CreativePlanRequest.variationMode"consistent" / "fresh" / "explore"NoStable repeatable output, one new direction, or 2-5 materially different directions. Default: "fresh".
CreativePlanRequest.variationSeedstring OR integerNoOptional reproducible creative seed. Exactly one of the listed alternatives must match.
CreativePlanRequest.exploreCountintegerNoDefault: 3. Minimum: 2. Maximum: 5.
CreativePlanRequest.aspectRatio"16:9" / "9:16" / "1:1" / "4:5" / "custom"NoDefault: "16:9".
CreativePlanRequest.durationnumberNoDesired final duration. The response caps it to the caller's plan. Default: 15. Minimum: 0.1. Maximum: 86400.
CreativePlanRequest.stylestringNoBuilt-in style-pack id or auto. Default: "auto". Maximum length: 100.
CreativePlanRequest.motionIntensity"restrained" / "balanced" / "energetic"No
CreativePlanRequest.preferredMedia"image" / "video" / "mixed"NoDefault: "mixed".
CreativePlanRequest.recentAssetSlugsarray of stringNoRecently used creative-library slugs to exclude from fresh or explore work. Maximum items: 20.
CreativePlanRequest.brandCreativeBrandKitNo

Nested field: CreativePlanRequest.variationSeed

Optional reproducible creative seed.

Exactly one of the listed alternatives must match.

oneOf alternative 1

Minimum length: 1. Maximum length: 128.

Type: string.

oneOf alternative 2

Type: integer.

Nested field: CreativePlanRequest.recentAssetSlugs

Recently used creative-library slugs to exclude from fresh or explore work.

Maximum items: 20.

Array item: CreativePlanRequest.recentAssetSlugs[]

Maximum length: 255.

Type: string.

CreativeBrandKit

Unknown properties are rejected.

FieldTypeRequiredDescription and constraints
CreativeBrandKit.namestringNoMaximum length: 200.
CreativeBrandKit.primaryColorstringNoPattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$.
CreativeBrandKit.secondaryColorstringNoPattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$.
CreativeBrandKit.accentColorstringNoPattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$.
CreativeBrandKit.headlineFontstringNoMaximum length: 100.
CreativeBrandKit.bodyFontstringNoMaximum length: 100.
CreativeBrandKit.logoUrlstringNoMaximum length: 2048. Format: uri.
CreativePlanResponse

Required properties: creativePlanVersion, request, variation, directions, creativeWorkflow, nextActions.

FieldTypeRequiredDescription and constraints
CreativePlanResponse.creativePlanVersionstringYes
CreativePlanResponse.schemaVersionstringNo
CreativePlanResponse.sourceOfTruthstringNo
CreativePlanResponse.planLimitsobjectNo
CreativePlanResponse.requestobjectYes
CreativePlanResponse.variationobjectYes
CreativePlanResponse.searchQueriesobjectNo
CreativePlanResponse.exclusionsarray of stringNo
CreativePlanResponse.directionsarray of objectYesOne direction for consistent/fresh or 2-5 materially different directions for explore.
CreativePlanResponse.creativeWorkflowobjectYesTemplate selection, no-exact-match fallback, anti-repetition, build-order and quality-gate rules.
CreativePlanResponse.nextActionsarray of stringYes
CreativePlanResponse.warningsarray of stringNo

Nested field: CreativePlanResponse.exclusions

Array item: CreativePlanResponse.exclusions[]

Type: string.

Nested field: CreativePlanResponse.directions

One direction for consistent/fresh or 2-5 materially different directions for explore.

Array item: CreativePlanResponse.directions[]

Type: object.

Nested field: CreativePlanResponse.nextActions

Array item: CreativePlanResponse.nextActions[]

Type: string.

Nested field: CreativePlanResponse.warnings

Array item: CreativePlanResponse.warnings[]

Type: string.

Error

Required properties: error.

FieldTypeRequiredDescription and constraints
Error.errorstringYesError type
Error.messagestringNoHuman-readable error message
AuthenticationError

Unknown properties are rejected. Required properties: error.

FieldTypeRequiredDescription and constraints
AuthenticationError.errorstringYesError type
AuthenticationError.messagestringNoHuman-readable error message