Parameters
UUID of the product design. Must belong to the session org for session-token callers.
What to make. Individual shots — product_front, product_back, print_front, print_back, fabric_details, model_front, model_side, model_back, lifestyle_model, lifestyle_product — or groups of them: "flat" (both product photos), "detail_closeup" (every close-up this design supports), "vto" (all three model views), "lifestyle". Defaults to ["flat"]. Shots that need another image (a model photo needs the product photo of that side) pull it in and it is quoted too. A shot or group that cannot be made for this design is refused with the reason; call with dry_run=true to see every shot's availability.
Required for model and lifestyle-model shots — the audience whose virtual model wears the design (see brand_dna.get for keys). Call virtual_model.generate first if no model exists.
Optional model gender ("men" or "women") — useful for unisex products that support both. Must be a gender the audience and product share and that has a CREATED model. Omit to use the first such gender. One gender per call, matching the studio.
"pro" (AI-enhanced product photos) is the recommended default. Keep Pro unless the user explicitly requests Standard or basic, non-AI product flats. "standard" is the basic free-tier quality, using provider or native flats without AI enhancement. Do not choose it merely to reduce a quote or because the user asks to see front/back images. Applies to product photos, including prerequisite flats for print close-ups. To show existing artwork, use the saved design's images without generating mockups.
Use an environment_options id from the quote: automatic for saved Brand DNA, a preset, or an adopted custom environment. Defaults to the brand's selected environment, then its Brand DNA. Existing product sets keep their frozen scene. Never changes the saved brand default.
Return the quote without creating or generating anything: every shot's availability (with a reason when unavailable), which images already exist and are reused free, which prerequisite images are added, and the credit total.
Refuse, without generating anything, if the quote exceeds this. Pass the credits from a dry run to never pay more than you reviewed.
Send the same key when retrying this exact call. A completed request replays for 24 hours without running or billing again.
An https URL that receives a signed completion event when the work finishes, so you can skip polling. See Webhooks.
Returns
Pass to mockup.get_generation. null when every requested mockup already existed (status complete) — their ids are in mockup_ids, so no polling is needed. Call mockup.show once with those IDs to display the saved images. Absent on a dry run.
The mockup uuids this call covers (dispatched or already existing).
Mockups dispatched. 0 on a no-op or dry run.
Credits quoted for the new images. The worker bills each image only when it renders successfully, so failures aren't charged.
Per-shot lines (shots), new_images, existing_images, model and environment.
Describes the mockup.get_generation(..., wait_sec=...) contract.