Skip to main content
A photoshoot generates new images for one of your products. Use a template when you want a reusable set of shots. Use Quick Shoot when you want to give direct creative direction. Generation runs asynchronously. Each requested output consumes one credit.

Before you start

You need:
  • an API key with photoshoots:generate
  • a product with at least one image
  • enough credits for every requested output
For template photoshoots, the product and template must belong to the same brand.

Upload a local reference image

Quick Shoot and template requests accept image URLs. If a reference is only on your computer, upload it first:
The response contains a durable url:
Use that url in quick_shoot.direction.image_urls or a template’s image_urls. Upload one image per request. JPG, PNG, WebP, HEIC, and HEIF are supported up to 10 MB. Base64 and JSON data URLs are not supported. Existing public HTTPS image URLs can still be used directly; LocalAds copies accepted images into its own storage.

Create a template

Create a reusable template pack from one or more HTTPS image URLs. The product_id determines which brand can use the template.
The response returns 201 Created and the template. LocalAds keeps a stable copy of each supplied image, so the template does not depend on the original URLs remaining available. Each shot keeps the same aspect ratio as its source image. You can use its id in a template photoshoot request.

Generate from a template

1. Choose a template

List the photoshoot templates available to the product’s brand:
Retrieve one template to inspect its ordered shots and output dimensions:

2. Start the photoshoot

Do not include quick_shoot when you provide template_id.

Create a Quick Shoot

Quick Shoot mirrors the controls in the LocalAds workspace. You can choose a look and output count, then optionally add direction as text, images, or both.
direction is optional. When included, it must contain text or at least one image URL. You can attach up to eight HTTPS images. For third-party URLs, the images must work without cookies or authorization headers. count can be 1, 3, 5, 8, or 15. It defaults to 1; look defaults to standard. Do not include template_id when you provide quick_shoot.

The retro look

retro is a generative look. Instead of applying a fixed treatment to the product, it reads the product first, then invents a different printed scene for every output in the shoot: mid-century Indian print culture, souvenir and advertising cards, halftone and faded ink. Three things behave differently from the other looks:
  • Output is a print-ready card. Every image is 1200x1800 at 300 DPI, which is 4 x 6 inches: the artwork mounted on aged paper with the card’s line set in italics underneath it. Send it to a printer as it arrives.
  • direction.image_urls are ignored. The look composes each scene from the product itself. direction.text is still read and used as guidance.
  • The first image takes longer. The look derives a brief and renders one shared reference packshot before any output starts, which adds roughly a minute to the shoot. Later outputs arrive at the usual pace.
Ask for more than one output when you use it. Each card is a distinct format, so a shoot of 5 or 8 shows the range; a shoot of 1 shows one card and none of the variety the look exists for.
For production integrations, you can optionally include an Idempotency-Key header. If a network failure makes you retry a request, reuse the same key to avoid creating and charging for a duplicate photoshoot:
Omitting the header creates a new photoshoot on every request. LocalAds returns 202 Accepted with the durable photoshoot resource: The example below is a template photoshoot. Quick Shoot responses use the same shape with template_id set to null.

Retrieve results

Poll the URL in the Location response header:
Completed outputs appear while the remaining shots continue:
Stop polling when the photoshoot status is completed, failed, or canceled. Use backoff between requests rather than polling continuously. caption carries the line printed in italics under the artwork. Only the retro look writes one; every other look and every template shot returns null.

Retrieve a product’s photoshoot creatives

You can later retrieve every completed photoshoot image for the product without remembering individual photoshoot IDs:
Last modified on August 12, 2026