Skip to main content
Cherry Shot Videos animate one or more product images into punchy, ready-to-publish video ads. Feed in images — from a completed shoot or your own library — and get back a polished MP4 complete with motion, optional music, and a logo reveal. Like shoots, video generation is asynchronous: credits are charged up front and automatically refunded if generation fails.

How a video works

Videos are asynchronous. When you call POST /v1/videos, Cherry Shot immediately charges the credits for the job and returns a video object with status: pending. Generation then proceeds in the background through the following stages:
Poll GET /v1/videos/{id} until status reaches completed, at which point video_url holds the MP4 download link.
If generation fails for any reason, the full credit cost is refunded to your account automatically — you are never charged for a video you do not receive.

Create a video

POST /v1/videos
string[]
required
An array of public http(s) URLs of the source images to animate. The maximum number of images depends on the requested duration:Images from a completed Cherry Shot shoot work perfectly here — just pass the url values from the images array.
integer
required
The total length of the output video in seconds. Must be 5, 10, or 15.
string
required
Output resolution. Must be 480p, 720p, or 1080p. Higher resolutions cost more credits per second — see Pricing below.
string
default:"product_only"
Controls the visual treatment of the ad:
  • product_only — focuses on the product itself; 15% cheaper than with_model.
  • with_model — incorporates an AI model interacting with the product.
string
The output aspect ratio. Supported values: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.If you omit this field, Cherry Shot automatically selects the best ratio based on the dimensions of your source images.
string
Optional public URL of a logo image (PNG with transparency recommended). When provided, the logo is revealed as a branded end-card during the final moments of the ad.
boolean
default:"true"
Set to false to produce a silent video. When true, Cherry Shot selects a royalty-free background track appropriate for the ad’s style and pacing.
string
Optional plain-text creative direction passed to the generation model. Use this to describe mood, pacing, or specific visual motifs — for example, "fast cuts, energetic, highlight the label".
string
Optional. Reserved for future push-delivery support. For now, poll GET /v1/videos/{id} to check status.

Example request

Response (pending)


Pricing

Video credits are calculated as:
Credits per second by resolution: Mode multiplier:
  • product_only0.85× (15% discount)
  • with_model1.0× (no multiplier)
Example: A 10-second 720p video in product_only mode costs:
The same video in with_model mode would cost ceil(4 × 10 × 1.0) = 40 credits.

Poll a video

GET /v1/videos/{id} Poll this endpoint to track generation progress. The status field moves through the following stages: When status is completed, the video_url field holds a direct link to the MP4 file.
Video generation typically takes several minutes, so use a longer polling interval than you would for shoots — checking every 15–30 seconds is a good starting point.

Response (completed)

The video_url is a time-limited signed URL. Download and store the MP4 to your own storage as soon as you receive it.