Animate Photo API
POST /animate_photo
About this tool
Static key art sells stories better with subtle motion loops, cinematic zooms, or faux parallax. `/animate_photo` ingests `photo_url` JPEG/PNG masters and outputs MP4, WebM, or GIF via `output_format`, letting marketing teams programmatically widen asset libraries. Control pacing with `duration` knobs and subtle `zoom_direction` (`none`, `in`, `out`). Everything posts as JSON referencing HTTPS stills—no multipart—and subscription API keys authorize each render just like heavyweight video jobs. Document brand-safe zoom ranges in design systems so motion never crops regulated disclaimers.
GIF exports trade quality for autoplay loops; MP4 excels for ads, while WebM suits internal Chrome-first previews. FFmpeg scripts honor color transforms documented beside this slug, yet banding still appears when 8-bit sRGB stills slam into ruthlessly quantized GIF palettes. Burst campaigns deserve prewarming because dozens of motions per minute fan out across shared FFmpeg clusters governed by subscription throttles that protect every tenant evenly.
Workflow integrations often originate from DAM webhooks: new hero still arrives, Lambda fires JSON, polled tasks drop derivatives back into buckets. Designers preview via the panel below without reading curl manuals, while coders templatize payloads in Terraform-reviewed repos. Consumers hunting “free meme animators” won’t find unmanaged usage here—FFmpeg minutes map to billed subscription units. CRM-driven merchandising teams reuse the exact JSON schema across storefront regions, stamping locale-specific `photo_url` values while freezing `zoom_direction`, which keeps motion branding consistent continent to continent. Embed checksums when syncing stills across CDNs so workers never animate stale thumbnails during flash sales.
Quality-control teams should clamp `duration` to platform limits—stories punish heavy files even if motion looks smooth. Logs include FFmpeg filter traces if zoom math clips edges unexpectedly, and automated golden-image diffing against prior releases helps catch accidental padding changes when CDN URLs rotate between marketing seasons.
Security remains mundane: sanitize `photo_url` domains, disallow private RFC1918 ranges if your wrappers allow operator input, and rotate API keys anytime contractors depart.
Try it now
How it works
Publish an HTTPS still
Upload the photo asset to reachable storage with stable TLS. Gather direct object URLs rather than ephemeral HTML wrappers.
Tune motion JSON
Select `output_format`, `duration`, and `zoom_direction` per creative brief—each influences FFmpeg graph construction before encode.
POST `/animate_photo`
Authenticate with subscription keys and await the async scaffolding response—binary never rides the POST.
Poll and distribute loops
Download finished MP4/WebM/GIF files, automate CDN invalidation, and embed them in storefronts.
Frequently asked questions
Which formats support transparency?
Behavior varies by codec. Read the anchored parameter guide before assuming GIF/WebM alpha equals MP4 chroma fidelity.
Does `zoom_direction` distort faces?
It applies centered scale transforms unless docs specify cropping. Extremely tall portraits might need pre-padding externally.
Why are tasks async?
Encoding loops can take seconds per megapixel. Async polling keeps gateways responsive for every customer workload.
Can I animate TIFF sequences?
Only formats listed in `/api-docs` apply. Raster stills behave best—vector inputs require conversion beforehand.
Are multipart uploads allowed?
No—Droid Apps standardizes HTTPS JSON ingestion across tools for simpler automation.
How do tiers cap GIF exports?
GIF CPU can dwarf MP4 equivalents; metering may classify them separately. Inspect billing FAQs before SLA promises.