Skip to main content
POST
Animates a mockup into a short clip. There are two ways to give it a first frame: send mockup_uuid with smart_objects to build one from your mockup, or send image_url to animate an image you already have. The 202 body names the model that will produce the clip, its outcome_tier quality label, and the estimated_credits, duration_seconds and audio the job was priced at; poll Retrieve a single job with the returned job_id for the finished video URL.
duration_seconds is checked against the lengths the chosen model offers, and a value outside that set comes back with allowed_durations to pick from. Setting motion to showcase turns audio on.

Authorizations

x-api-key
string
header
required

API key with sm_ prefix. Get your key at https://sudomock.com/dashboard/api-keys

Body

application/json

Request body for POST /api/v1/renders/video.

Supply exactly one of two input modes. Render mode (mockup_uuid and smart_objects, optionally export_options) mirrors a still render: the still is produced first, then animated. Raw-image mode (image_url) animates a public https png or jpg directly with no render step, and the render fields are ignored.

Both modes take the video animation options and an optional completion webhook. The call always queues a job; poll GET /api/v1/jobs/{job_id} for the result. Sending both modes, or neither, returns 400.

mockup_uuid
string | null

RENDER MODE: UUID of the mockup to animate (from GET /api/v1/psd-mockups or POST /api/v1/psd/upload). Required in render mode; omit in raw-image mode.

Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
smart_objects
SmartObjectInput · object[] | null

RENDER MODE: smart objects with their assets, identical to a still render (at least 1 required). Required in render mode; omit in raw-image mode.

Minimum array length: 1
export_options
ExportOptions · object

RENDER MODE: still-render export configuration (the i2v input frame). Format/size/quality. Ignored in raw-image mode.

Example:
image_url
string | null

RAW-IMAGE MODE: a public https png/jpg URL to animate directly (general image-to-video, no render). Supply this OR (mockup_uuid + smart_objects), never both.

video
VideoOptions · object

Animation options (duration, audio, motion, optional advanced_model override).

webhook
object | null

Completion events (video.succeeded, video.failed) are delivered to the webhook endpoints on your account that subscribe to them. GET /api/v1/jobs/{job_id} stays the source of truth.

Response

202 - application/json

Successful Response

Acknowledgement that a video mockup was accepted and is being produced.

job_id
string
required

Identifier of the accepted job, used to poll its status.

Example:

"5f1c0b2a-7d43-4e9a-8c16-0b5d3f7a2e94"

kind
string
required

The kind of work accepted, which is always a video.

Allowed value: "video"
status
enum<string>
required

State of the job when this response was returned.

Available options:
queued,
dispatched,
running,
succeeded,
failed,
cancelled
status_url
string
required

Path to poll for this job's status.

Example:

"/api/v1/jobs/5f1c0b2a-7d43-4e9a-8c16-0b5d3f7a2e94"

model
string
required

The video model chosen for this clip.

outcome_tier
string
required

The quality level this clip is produced at.

Example:

"standard"

duration_seconds
integer
required

Length of the clip in seconds.

Example:

4

audio
boolean
required

Whether the clip is produced with sound.

Example:

false

estimated_credits
integer | null

Credits this clip costs, which is null only when an accepted job's original quote is no longer known.

Example:

38