Photo to video

One photo in. A cinematic clip out.

Animate a single room or exterior photo into a smooth 5- or 10-second clip — orbit, pan, push in, dolly out, shift the daylight or add subtle people. Stills become scroll-stopping motion.

POST/v1/studio/video/walkthroughasync · ~25s
The same living room virtually staged in luxury style
slow_zoom_in · 5s
Motion
  • 5s or 10s
  • 9:16 · 16:9 · 1:1
  • 8 camera motions
Use cases

Motion for every placement

01

Reels & Shorts

Vertical 9:16 clips from listing photos — no filming required.

02

Listing hero video

A slow push-in on the best exterior for the top of your listing page.

03

Ads

Motion outperforms stills in feeds; turn your top photos into short video ads.

API

One request. That’s the integration.

Authenticate with x-api-key or Authorization: Bearer — the same key as the Listings API.

POST/v1/studio/video/walkthroughAsync · ~25s
01POST a photo URL, a camera motion and a duration. You get a job_id right away.
02Poll GET /v1/studio/jobs/:job_id, stream progress over SSE, or wait for your webhook.
03Download the MP4 and poster frame from the CDN.
Body parameters6
photo_urlstringrequired
Public URL of the photo to animate.
motionenumrequired
orbit_left · orbit_right · pan_left · pan_right · slow_zoom_in · dolly_out · shifting_daylight · add_subtle_people
duration_secondsnumberrequired
5 or 10.
custom_motion_promptstring
Direct the camera in your own words.
aspect_ratioenum
9:16 · 16:9 · 1:1
webhook_urlstring
Called with the finished job when processing completes.
terminal
curl -X POST https://mlsapi.dev/v1/studio/video/walkthrough \
-H "x-api-key: $MLSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"photo_url": "https://cdn.mlsapi.dev/photos/A12079565/02.webp",
"motion": "slow_zoom_in",
"duration_seconds": 5,
"custom_motion_prompt": "Slow cinematic push toward the window, soft warm light shift.",
"aspect_ratio": "9:16"
}'
202 Accepted
POST /v1/studio/video/walkthrough
{
"job_id": "job_studio_01JA0XQ4M9ZK7T",
"type": "video_walkthrough",
"status": "processing",
"progress_percentage": 10,
"current_step": "initializing_pipeline",
"estimated_completion_seconds": 25,
"created_at": "2026-09-29T14:02:11.000Z",
"status_url": "/v1/studio/jobs/job_studio_01JA0XQ4M9ZK7T"
}

Try Photo to Video in Studio.

Sign up or log in at studio.mlsapi.dev to run it on your own photos — then call the same endpoint from your code.