How a shoot works
Shoots are asynchronous. When you callPOST /v1/shoots, Cherry Shot immediately reserves the required credits and returns a shoot object with status: pending. The shoot then moves through a short pipeline before your images are delivered:
GET /v1/shoots/{id} until status is completed, then read the images array for the finished URLs.
Create a shoot
POST /v1/shoots
string[]
required
An array of 1–8 public
http(s) URLs pointing to your product images. The first URL is treated as the hero image and receives the most prominent placement. All URLs must be publicly accessible at request time.string
required
The visual treatment applied to your shoot. Must be one of:
string
default:"product_only"
Controls whether the product is shot alone or placed on an AI model.
product_only— the product is the sole subject.with_model— the product is worn or held by an AI model. Requiresmodel_url.
string
Required when
mode is with_model. Provide a public image URL of the model you want to use. Browse available presets via GET /v1/models.integer
default:"4"
The number of output images to generate. Accepted values:
1, 4, or 6.6 shots is only available for the classic and minimal styles. For all other styles, a request for 6 is automatically clamped to 4 and the response will include shots_adjusted: true.string
default:"standard"
Output resolution and credit cost per image:
string
default:"1:1"
The output aspect ratio. Common values include
1:1, 4:5, 9:16, and 16:9. Use 4:5 or 9:16 for portrait-oriented social placements, and 16:9 for widescreen or banner use.string
An optional background color hint (e.g.
"#F5F0EB" or "ivory"). Supported for studio-style shoots such as classic and minimal. Has no effect on styles that use complex scene environments.string
Optional. Reserved for future push-delivery support. For now, poll
GET /v1/shoots/{id} to check status.Example request
Response (pending)
Credits are reserved at creation time. If the shoot later fails, credits are refunded to your balance automatically.
Poll a shoot
GET /v1/shoots/{id}
Call this endpoint repeatedly to track progress. The status field moves through the following stages:
Response (completed)
images includes a full-resolution url and a thumbnail_url suitable for previews. Individual images can have a status of fulfilled or failed — a shoot can complete even if one or more individual shots fail, and credits for any failed shots are returned.