Skip to main content

Video Creation API

Creates a full video with multiple sequences. Each sequence can contain media (images or videos) animated according to the specified animation type. You can add an intro, an outro, transitions between sequences, a logo, and before/after effects.

Authentication

All requests must include the header:
  • x-api-key: YOUR_API_KEY

Headers

string
required
Your IACrea API key
string
required
Must be application/json

Request Body

object
required
Video object containing all sequences and parameters
string
required
Video format: "landscape" | "portrait" | "square"
string
Video template. Default: "SaleProperty". Optional.
string
Background music URL. Optional.
string
Font (e.g. "Inter"). Default: "Inter". Optional.
array
required
Array of two colors [background, text] (e.g. ["#1a1a2e", "#ffffff"]). First color is background, second is text color.
Enables logo display on video/image sequences (top right corner, 100 px). Logo on intro/outro is controlled separately via sequence.data.displayLogo.
string
Logo URL. Required if displayLogo=true or if you want to show the logo on intros/outros. Optional.

Sequences

array
required
Ordered array of video sequences. Each sequence represents a clip in the final video. Sequences are composed in the order of their order field.
number
required
Display order of the sequence in the video (starts at 0). Intro must be first (0), outro last.
number
required
Sequence duration in seconds. - "video" sequences: max 5 seconds (capped automatically) - "intro" sequences: 2 to 5 seconds (recommended : 3) - "outro" sequences: 3 to 5 seconds (recommended: 5) - "image" sequences: unlimited
string
required
Sequence type: - "intro" — Introduction screen (logo + intro text) - "outro" — End screen (logo + contact or text) - "video" — Animated video sequence (triggers AI generation) - "image" — Static image sequence - "beforeAfter" — Before/after sequence (static comparison slide)
string
required
Animation type. Possible values:Camera movements:
  • "CAMERA_PUSH_IN" — Zoom in
  • "CAMERA_PUSH_OUT" — Zoom out
  • "CAMERA_MOVE_RIGHT" — Move right
  • "CAMERA_CRANE_UP" — Move up
  • "CAMERA_ORBIT_LEFT" — Rotate left
Automatic AI effects:
  • "AUTO_EFFECTS" — Automatic animation (AI-generated prompt)
  • "AUTO_REVERSE" — Reversed automatic animation
Special effects:
  • "REALTOR_SMILING" — Real estate agent portrait animation
Before/After (require 2 images):
  • "BEFORE_AFTER_INTERIOR" — Interior transformation (progressive staging)
  • "BEFORE_AFTER_EXTERIOR" — Exterior transformation (landscaping)
  • "BEFORE_AFTER_DECLUTTER" — Declutter (furniture disappearing)
  • "BEFORE_AFTER_RENOVATION" — Renovation (timelapse with renovation team)
No animation:
  • "none" — No animation
  • "fade" — Simple fade

Media

array
required
Array of media for this sequence. At least one media required for "video" and "image" types. "intro" and "outro" sequences do not need media (empty array []).
string
required
Source image or video URL. For BEFORE_AFTER effects, this is the “before” image.
number
required
Media start time in the sequence (in seconds). Usually 0.
number
required
Media end time in the sequence (in seconds). Must match duration.
number
Media order in the sequence. Optional. Default: 0.
boolean
Active media in the sequence. Set true for the main media. Optional.

Sequence data

object
Additional data for the sequence. Content varies by sequence type.

Intro data (type: "intro")

string
Text displayed under the logo (e.g. "presents", "For sale").
Show logo (from video.logoUrl) on intro. Default: true.
string
Custom background color for intro (e.g. "#1a1a2e"). Default: first color from video.colors.

Outro data (type: "outro")

string
Profile photo URL (agent, advisor). Displayed as a circle.
boolean
Show avatar on outro. Default: true.
string
Name displayed on outro (e.g. "John Doe").
string
Email displayed on outro.
string
Phone displayed on outro.
boolean
Show logo (from video.logoUrl) on outro. Default: true.
string
Custom background color for outro.
For Interview and Sample (generic) templates:
string
Title displayed on outro.
string
Description displayed under the title.

Before/After data

string
Required for BEFORE_AFTER effects. URL of the “after” transformation image. The “before” image is provided via medias[0].url.

Transitions

Transitions define how a sequence enters relative to the previous one. The transition is defined in the data.transition field of the target sequence.
object
Entry transition configuration for this sequence.
string
Transition type: - "fade" — Crossfade (default) - "wipe" — Horizontal wipe - "slide" — Slide - "flip" — Flip - "clock-wipe" — Clock wipe - "iris" — Circular opening - "none" — No transition
number
Transition duration in frames (1 to 120). At 30 fps: - 15 ≈ 0.5 second - 20 ≈ 0.67 second (default) - 30 ≈ 1 second - 60 ≈ 2 seconds

Logo — Detailed behavior

The logo is controlled at two levels:
  1. Video level (video.displayLogo + video.logoUrl):
    • Enables logo display in top right corner (100 px) on "video" and "image" type sequences.
  2. Sequence level (sequence.data.displayLogo):
    • On "intro" and "outro": the logo from video.logoUrl is displayed centered (200 px for intro, 150 px for outro).
    • Controlled individually by sequence.data.displayLogo (default true).
    • To hide the logo on a specific intro/outro, pass "displayLogo": false in its data.

Webhook

string
Webhook URL to receive a notification when the video is complete. Optional.

Responses

201 — Created successfully

string
Unique identifier of the generated video. Use with GET /api/video-editor/generate/video/{id} to track progress.
array
List of generated content (one item per "video" type sequence). Each item contains: - id: Generation id - url: Source image URL - effect: Animation type - format: Video format - status: Status ("pending" | "success" | "error")
number
Remaining credits
number
Credits used for this generation

400 — Validation error

Returned if the request body is invalid (missing sequence, invalid format, etc.).

401 — Unauthorized

Returned if x-api-key is missing or invalid.

500 — Server Error

Internal server error.

Examples

Example 2 — Video with transitions between sequences

Example 3 — BEFORE_AFTER effect with two images

Example 4 — Logo hidden on intro but visible on sequences

Sample Response

Important Notes

  • "video" sequences automatically trigger AI animation generation from the provided image. Each video sequence consumes 1 credit.
  • Maximum duration for a "video" sequence is 5 seconds (capped automatically).
  • "intro" and "outro" sequences do not consume credits (no AI generation).
  • Use the returned id with GET /api/video-editor/generate/video/{id} to track progress.
  • If a webhook is provided, you will receive a notification when the final video is ready.

Intro / Outro Summary

Transitions Summary

Transitions are optional. Without a defined transition, the switch between sequences uses the template default transition (fade of ~20 frames). To customize, add data.transition on each desired sequence.

Before/After Summary

Logo Summary