Skip to main content
A shoot turns one or more product images into a set of professional photos in the style you choose. Create it, then poll until it’s completed.

Create a shoot

POST /v1/shoots
product_image_urls
string[]
required
1–8 public http(s) URLs of your product image(s). The first is treated as the hero.
style
string
required
One of: classic, minimal, luxury, loud_luxury, magazine, editorial, avant_garde, element, influencer, lifestyle.
mode
string
default:"product_only"
product_only for the product alone, or with_model to place it on an AI model.
model_url
string
Required when mode is with_model. A public image URL of the model (browse presets via GET /v1/models).
shots
integer
default:"4"
1, 4, or 6. 6 is available only for classic and minimal; for other styles it is clamped to 4 and the response includes shots_adjusted: true.
quality
string
default:"standard"
standard (1 credit/image), pro (2, 2K), or 4k (4, 4K).
aspect_ratio
string
default:"1:1"
e.g. 1:1, 4:5, 9:16, 16:9.
background_color
string
Optional background hint (supported for studio styles).
callback_url
string
Optional. Reserved for push delivery; poll in the meantime.
Credits are reserved when you create the shoot (credits_used in the response), so a create call that returns 201 has already secured the credits.

Poll a shoot

GET /v1/shoots/{id} status moves through pendinganalyzinggeneratingcompleted (or failed). When completed, images holds the results:
Poll every 3–5 seconds. A full set typically completes in well under a minute.