How a video works
Videos are asynchronous. When you callPOST /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:
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 thanwith_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:
Mode multiplier:
product_only→ 0.85× (15% discount)with_model→ 1.0× (no multiplier)
720p video in product_only mode costs:
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.
Response (completed)
video_url is a time-limited signed URL. Download and store the MP4 to your own storage as soon as you receive it.